(ייתכן וזה לא הפורום המתאים לפוסט, חשבתי שאולי יעניין משקיעים נוספים - לכן שמתי אותו כאן)
שלום לכולם
אני עובד בימים אלו על מערכת מסחר אוטומטית - כזו, שבאידיאל, תשלח הוראות ביצוע לשרת של IB באופן עצמאי,
על בסיס מודל כזה או אחר, שנבנה על סמך נתונים שאגרד (scrape) מהאינטרנט - נתונים שיגורדו באופן אוטומטי גם כן.
אולי הרעיון שאפתני, יומרני, ומועד לכישלון, אבל המטרה היא בעיקר ללמוד, לצבור ניסיון, להנות, ליצור פרוייקט יפה למראיינים עתידיים, ואולי, עם קצת חוצפה (ומזל כמובן), לעשות איזה גרוש.
אני סטודנט למדמ"ח, שנה אחרונה, בעל ניסיון תעשייתי קצר בפיתוח בפייתון.
אשמח אם אתם - בעיקר מתכנתים מנוסים (אבל לא רק) - תוכלו להכווין אותי, להעיר, לשאול אותי שאלות מנחות, בכדי שאעשה כמה שפחות טעויות של טירונים, ואבצע את הדברים, לפחות ברמה הטכנית, ב"צורה הכי נכונה" שאוכל.
אנסה לתאר את ה design של המערכת.
אני מניח שיש פה סלט שלם, גם כי מה אני מבין מהחיים,
וגם כי אולי ה end goal לא הכי ברור לי עדיין, וחלק מהדברים יאלצו להיקבע on the way.
בכל אופן, בוא ננסה:

הגעתם עד לפה? מגיעה לכם מדליה.
שוב, אשמח להע(א)רות שלכם - אילו טעויות אני עושה היום שיעלו לי בהרבה כאב ראש בעתיד.
גם פידבקים / רעיונות שאינם בצד הטכני - ייתקבלו בשמחה.
תודה רבה, ורק בריאות
אסף
שלום לכולם
אני עובד בימים אלו על מערכת מסחר אוטומטית - כזו, שבאידיאל, תשלח הוראות ביצוע לשרת של IB באופן עצמאי,
על בסיס מודל כזה או אחר, שנבנה על סמך נתונים שאגרד (scrape) מהאינטרנט - נתונים שיגורדו באופן אוטומטי גם כן.
אולי הרעיון שאפתני, יומרני, ומועד לכישלון, אבל המטרה היא בעיקר ללמוד, לצבור ניסיון, להנות, ליצור פרוייקט יפה למראיינים עתידיים, ואולי, עם קצת חוצפה (ומזל כמובן), לעשות איזה גרוש.
אני סטודנט למדמ"ח, שנה אחרונה, בעל ניסיון תעשייתי קצר בפיתוח בפייתון.
אשמח אם אתם - בעיקר מתכנתים מנוסים (אבל לא רק) - תוכלו להכווין אותי, להעיר, לשאול אותי שאלות מנחות, בכדי שאעשה כמה שפחות טעויות של טירונים, ואבצע את הדברים, לפחות ברמה הטכנית, ב"צורה הכי נכונה" שאוכל.
אנסה לתאר את ה design של המערכת.
אני מניח שיש פה סלט שלם, גם כי מה אני מבין מהחיים,
וגם כי אולי ה end goal לא הכי ברור לי עדיין, וחלק מהדברים יאלצו להיקבע on the way.
בכל אופן, בוא ננסה:

- spider - נועד לשלוף מידע מהרשת, לנקות אותו ולהכניס אותו ל DB.
מידע מולו יעבוד - נתונים פונדמנטליים (fred למשל), מחירים היסטוריים (יאהו למשל), twitter, מזג אוויר.
שולף את המידע מהאינטרנט באופן אוטומטי - אולי יצריך מימוש של scheduler כזה או אחר.
מכיר את העניין של be nice ולא להעמיס עם יותר מדיי בקשות בזמן קצר.
עובד באופן סינכרוני. למה שארצה אסינכרוני? כמה מורכב למימוש?
logging - ליצור אחד בmain module של הspider ולהוריד אותו בכל קריאה ל scrparים? תוהה איך לממש את זה נכון.
יש אתרים שמשתמשים הרבה ב javascript, יש דרך נעימה לשלוף מהם מידע? selenium זה לא התשובה אני חושב, אבל תקנו אותי אם אני טועה.
משתמש ב SQLalchemy להעברת נתונים ל DB. יש סיבה לא לעשות זאת? - DB
כרגע משתמש ב postgreSQL. למה? כי מכיר מהלימודים. למה לא?
כרגע המידע הוא טבלאי.
אני פשוט יוצר טבלאות בדאטאבייס, ודוחף להן מידע מה spider. אין, לפחות כרגע, קשר בין הטבלאות. טעות? ומה אם בעתיד יהיה קשר? כדאי לעצור, ללמוד יותר לעומק את מבנה הטבלאות העתידי, ואז להמשיך?
כשאממש scraper ל twitter, אצטרך NOSQL? אין לי הכרות עם זה, תוהה לעצמי כמה זה קריטי, ולמה זה חשוב. דעות? כשאגיע לשם, לעצור ולהבין יותר לעומק מה זה NOSQL? או להמשיך כרגיל עם SQL? - IB pythonic client - ממשק פייתוני עם אפליקציית TWS של IB.
עובד כרגע עליו - למה? הוא כנראה הכי קריטי, ה-מרכיב בכל ה pipeline.
משתמש ב API הרשמי של IB. נראה כמו חיה מורכבת למדיי.
אליו יגיעו בקשות, למשל מה spider, לייבוא מידע פיננסי כזה או אחר.
ה spider ייתמודד עם ההודעה/שגיאה שחוזרת, ועם ההכנסה לDB.
לclient גם יגיעו פקודות קניה/מכירה מהמודל (אולי לא ישירות ממנו, כי אני רוצה לקבל "אוקיי" שפקודה נכנסת, ומה למודל ולהתמודדות עם האוקיי הזה. אניוויי will see). - מודל - not much to say. עוד רחוק משם. נגיע לגשר ונחצה אותו.
- המערכת לא אמורה לעבוד ב real time, או יותר נכון בקצבים של real time.
- המטרה שהמערכת תחיה ותנשום גם בעוד (למשל) חצי שנה מהיום.
עשיתי כל מיני משחקים קטנים, אנליזות קטנות על שוק ההון.
כל האנליזות האלה נמצאות איי שם על מדף גבוה, צוברות אבק.
הייתי רוצה שהפרוייקט הזה, לשם שינוי, יחיה גם בעוד חצי שנה, מבלי שאצטרך לעשות דבר,
ושגם אם אחליט לחזור אליו בעוד חצי שנה, אצליח להבין מה לעזזל עשיתי.
מניח שזה סובב בעיקר סביב משמעת של תיעוד וכיוב, אבל אשמח לשמוע עצות אם יש.
- ייתכן ויעלה לשרות cloud בשלב כלשהו, כנראה שיותר לצורכי למידת התחום מאשר צורך אמיתי.
- אני מניח שה design נראה חובבני למדיי. הבנה טובה של המערכת היא פונקציה של ניסיון?
או שיש למשל איזה קורס / סרטון שמעביר בצורה טובה איך לתכנן מערכות כאלו?
הגעתם עד לפה? מגיעה לכם מדליה.
שוב, אשמח להע(א)רות שלכם - אילו טעויות אני עושה היום שיעלו לי בהרבה כאב ראש בעתיד.
גם פידבקים / רעיונות שאינם בצד הטכני - ייתקבלו בשמחה.
תודה רבה, ורק בריאות
אסף
נערך לאחרונה ב: