הכירו את רטרולייזר

פקודות הקניה\מכירה הראשונות שאי פעם עשיתי היו בביטקוין. בשיא בועת הביטקוין, כשהוא היה באזור ה-1000$ אמרתי שאני חייב לקנות אחד, ומיד אחרי זה התחלתי לשחק עם קניה ומכירה שלו בבורסות הישראליות המקומיות והאמריקאיות.

דבר אחד הוביל לאחר ופיתחתי תשתית לניתוח אסטרטגיות וסימולציה של הבורסות בזמן אמת. עד כדי כך הכניסה שלי לעולם ההשקעות היתה לא שגרתית שעד שהגעתי להשקעות בעולם האמיתי, הייתי בהלם מהעובדה שציטוטי המחירים אינם רציפים, שיש פערים עצומים בגרפים עקב קפיצות מחירים בין הסגירה לפתיחה, ושאי אפשר לעקוב אחר המחיר ולבצע פקודות כשהמחיר מתחיל לזוז ב-2 וחצי בלילה (כפי שעשיתי לא פעם עם ביטקוין).

אבל זה היה מזמן, ומאז נגמלתי. נשארתי אבל עם תשתית מעניינת שמאז המשכתי לסירוגין לפתח אותה ולהוסיף לה תמיכה לניתוח אסטרטגיות השקעה בניירות ערך רגילים ואף הרצה של האסטרטגיות הללו בזמן אמת על מידע חי.

בהתחלה המיקוד היה על אסטרטגיות קצרות טווח ולאחרונה הוספתי תמיכה לניתוח אסטרטגיות השקעה פסיביות.

אז למה בכלל להתעסק עם קוד?

יש לא מעט כלים אונליין שמאפשרים לנתח אסטרטגיות השקעה בדיעבד. עבור תיקים פסיביים, Portfolio Visualizer הוא כנראה הכלי הכי נח שיש, אבל עד כמה שהוא נח, הוא מבוסס על אינספור הנחות שאין מציאותיות ואינן משקפות את המצב בפועל כאשר מבצעים את ההשקעה, למשל היעדר כל התחשבות במיסוי.

ישנם גם כלים כמו Quantopian שמאפשרים לכל אחד לכתוב עם קוד פייטון backtests. למרות שהפלטפורמה נראית מאד מרשימה, בחרתי לא להתבסס עליה למחקרים שלי כיוון שאני אוהב ללמוד ע”י עשיה. כלומר, אני לא רוצה לסמוך על צד ג’ בשביל לדעת שהניתוח שלי הוא תקף, אני רוצה לבנות את הניתוח בעצמי מאפס ולהכיר כל פיפס בפעילות הפנימית שלו ולשלוט ב-100% על אופן החישוב.

Retrolyzer

מאז ועד היום נכתב לא מעט קוד בפרוייקט והחלטתי לפתוח אותו כפרוייקט בקוד פתוח כדי שאחרים יוכלו להנות מהתשתית ובתקווה לתרום לה.

אחד הדגשים העיקריים בבניה שלו הוא ריאליזם אבסולוטי. אני רוצה להיות מסוגל לקבל תוצאות שמייצגות ככל הניתן את מה שמשקיע היה מקבל אם היה מיישם את האסטרטגיה במציאות, לכן בין היכולות שלו יש:

– תמיכה במודלי מיסוי שונים. כרגע תומך ב”אפס מס” לשם השוואה לכלים סטנדרטיים כגון Portfolio Visualiser ובמיסוי ישראלי על השקעות בברוקר זר, כלומר ניכוי של 25% מס על דיבידנדים במקור וחיוב במס נומינלי של 25% בסוף שנה על רווחי הון, עם דחיית מס עד אז. אוסיף תמיכה גם במיסוי ישאלי בברוקר\בנק ישראלי.
– מודל ריאליסטי שבניתי להערכה של Slipage ע”ב פערי Bid-Ask שמחושבים עם נפח מסחר ושעת המסחר של היום.
– תמיכה במודלי עמלות שונים.
– משיכה חצי אוטומטית של מידע יומי על כל מניה\קרן מיאהו פיננס.
– תמיכה ב-Margin וחיוב אוטומטי של ריבית עליו ע”ב הריבית ההיסטורית בארה”ב (לפי מודל העלויות של Interactive Brokers, ואפשר להוסיף גם אחרים).
– תמיכה ב-Lot selection algorithms, כגון FIFO ו-maximum loss.
– הפקדות ומשיכות תקופתיות, מתואמות אינפלציה היסטורית של ארה”ב.
– מספר אסטרטגיות שכבר קיימות: אסטרטגיית קנה-החזק, אסטרטגיית איזונים (עם מגוון אפשרויות לאופן האיזון, טריגרים לאיזון, איזון מלא, חלקי וכד’), אסטרטגיית mean reversion וכמה נוספות ששיחקתי עימן בעבר.
– תמיכה ב-portfolios מוגדרים מראש כמו עוגת דובדבנים, 60\40 קלאסי, הארי בראון וכד’ והגדרה של תיקים נוספים.
– תמיכה בהרצת מספר מרובה של הרצות במקביל, עם הכפלה של כל הפרמוטציות של הגדרות הקלט כגון: אסטרטגיות \ ני”ע ספציפיים או תיקים ממושקלים שלמים \ מודלי מס \ מודלי עמלות \ מודלי בחירת Lots \ תקופות זמן \ חשבונות התחלה \ פעולות משיכה והפקדה וכד’, כאשר כל אחד בלתי תלוי באחרים.
– שלל סטטיסטיקות כתוצרים של כל הרצה: תשואה ברוטו, נטו אחרי מס, תשואה ריאלית, סטיית תקן, max drawdown, sharp, ניצול מזומן ומינוף, עלויות (מסחר, מס דיבידנדים, מס רווחי הון בזמן חיי האסטרטגיה, ומס רווחי הון בהנזלה מלאה של הנכסים, עלויות מארג’ין), וגם קבצי CSV להצגת גרפים (דרך אקסל או כלי אחר) על שווי האסטרטגיות, הנכסים, ה-drawdown, ה-drift בין נכסים, תשואות דיבידנדים, פירוק לשנים, עלויות מיסוי וחבות מס לא ממומשת ועוד רבים נוספים.
– האסטרטגיות בנויות באופן שבו הן לא מודעות לאם מריצים אותן בזמן אמת על מידע חי או בדיעבד על מידע היסטורי. הן מגיבות לאירועים כגון פתיחת יום מסחר, סוף יום מסחר, עדכון טיקר, דיבידנד שהתקבל, משיכה\הפקדה ועוד ונותנות הוראות לביצוע פקודות קניה מכירה בהתאם. בהרצת backtest זה מזין את מנגנון איסוף הסטיסטיקות על ביצועי האסטרטגיה. בהרצה בזמן אמת ההוראות יכולות להשלח ל-UI, או למייל של המתשמש או אפילו להתחבר למערכת מסחר ולהתבצע על אמת (אם כי אלו לא נתמכים עדיין).

בסה”כ, התשתית היא עדיין דבר חי ומתפתח. בקרוב אפרסם שאלות, ניתוחים ומסקנות שונות שהגעתי עליהם בנושאים שונים של השקעות פסיביות במדדים עם הרצה מעל התשתית. בנתיים מי שמעוניין יכול להציץ בקוד מקור, לשאול שאלות, להציע רעיונות ולהריץ סימולציות.

Retrolyzer on Bitbucket

* הכותב אינו בעל רשיון ייעוץ השקעות. המגיבים גם הם ללא רשיון ייעוץ השקעות. הכותב אינו מייעץ לקנות או למכור או להחזיק או כל פעולה אחרת ביחס לניירות הערך או נכסים אחרים כלשהם המוזכרים באתר. כל אדם צריך לפנות ליועץ השקעות מוסמך לפני שיבצע פעולות בתיק ההשקעות שלו, בכדי לקבל ייעוץ אישי המתאים לצרכיו ולאופיו. אתר זה אינו משמש כאתר ייעוץ השקעות ואינו מתאים את עצמו לאף משקיע באופן כזה או אחר. הכותב אינו משכנע, מייעץ או משדל או כל פעולה אחרת העשויה להשפיע באופן כלשהו על מי מקוראי האתר לבצע פעולה כלשהי בניירות ערך כלשהם, בין אם מוזכרים באתר ובין אם לא. מטרת האתר הינה תיעוד אישי של רשמים ודיעות בנוגע לכל תחום, ובפרט השקעות, ולא לשמש כמקור מידע להשקעות או בתור ייעוץ השקעות. על כל קורא לבדוק בעצמו כל עובדה וכל מילה שנאמרה באתר יחד עם בעל מקצוע – עורך דין, רואה חשבון ויועץ השקעות. הדיונים באתר אינפורמטיביים ותו לא ומציגים אך ורק את דעתו של הכותב. יתכן מאוד שדיעות הכותב אינן אובייקטיביות והכותב מחזיק בפוזיציה על המניה. יתכן שהמידע המוצג באתר שגוי, מוטעה, אינו שלם, אינו מקיף, חסר או מסתמך על מקורות לא אמינים. יש לקחת אותו בערבון מוגבל.

3 thoughts on “הכירו את רטרולייזר

  1. לא כל כך הבנתי איך משתמשים בזה – איך מריצים את זה? נכנסתי ללינק וכתוב access denied

    • אכן הרפוסיטורי למטה בנתיים. אני אעלה אותו בחזרה ברגע שאוכל.

  2. היי, התחלתי להשתמש בכלי בעזרת הדוגמאות והוא נראה מעניין. ניסיתי לאחרונה להסתכל על הריפו אבל הוא עדיין לא זמין. האם יש תכנון לפתוח אותו מתישהו?

Leave a Reply to חופש כלכלי Cancel reply

Your email address will not be published.