יום שני, 30 באפריל 2012

אופטימיזציה - לא מה שחשבתם (חלק ג' ואחרון)

בשני הפוסטים האחרונים סקרנו את החסרונות באופטימזיציה "עיוורת" אשר אינה מותאמת לתנאי השוק המשתנים חדשים לבקרים, והתוודענו לטכניקת ה-WFA - Walk Forward Analysisאשר מנתחת את יכולת השרידות והריווחיות של סיסטם לאורך זמן ע"י הרצת איטרציות רבות של אופטימיזציה על פני תקופות עוקבות, כאשר לכל איטרציה מחושב סט פרמטרים אופטימלי משלה אשר נבדק בתקופה העוקבת לשם "הוכחת יכולת".    

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

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

ולעצם העניין. הסיסטם הבא הוא סיסטם יומי, "עוקב מגמה" (trend follower), המבוסס על המשכיות המומנטום של היום האחרון, בהנתן מומנטום אשר "פורץ" ערך סף כלשהו. הרעיון שעומד מאחורי הסיסטם הוא שכאשר מתרחשת תנועת מחיר חריגה לכיוון מסויים, המומנטם ימשך לפחות עוד מספר ימים לפני דעיכתו.   

הסיסטם:
1.      כניסה לפוזיציית לונג – אם טווח המסחר ביום האחרון (מחיר הסגירה פחות מחיר הפתיחה) היה גדול יותר מ- x פיפס, והיה זה יום חיובי (מחיר הסגירה גבוה ממחיר הפתיחה).
2.      כניסה לפוזיציית שורט – אם טווח המסחר ביום האחרון (מחיר הסגירה פחות מחיר הפתיחה) היה גדול יותר מ- x פיפס, והיה זה יום שלילי (מחיר הסגירה נמוך ממחיר הפתיחה).
3.      סגירת פוזיציה פתוחה – לאחרy  ימים בהם הפוזיציה פתוחה.
מגבלות והנחות:
·         פוזיציה אחת פתוחה בו זמנית.
·         הרצה על גרף יומי.
·         בדיקת המחיר תתבצע על מחיר הפתיחה בלבד (אין מסחר תוך יומי)
·         גודל פוזיציה קבוע – 0.1 לוט, חשבון מיני עם Equity התחלתי של 1000$ (מינוף 1:1)

כפי שניתן לראות, מדובר על סיסטם פשוט ביותר, המבוסס על שני פרמטרים דינמיים בלבד: טווח המסחר אותו יש לפרוץ – x, ומספר הימים לפוזיציה פתוחה – y.

בגרף הבא ניתן לראות את הסיסטם בפעולה, כאשר x (טווח הפריצה) שווה 100 פיפס, ו-y (תקופת האחזקה) שווה 20 יום:


ניתן לראות שלושה טריידים, שניים מוצלחים והשלישי מופסד. בטרייד הראשון, לאחר יום עם טווח מסחר חיובי של 115 פיפס נכנסנו ללונג, ויצאנו לאחר 20 יום עם רווח של 390 פיפס. בטרייד השני נכנסנו לשורט לאחר נר שלילי של 105 פיפס ויצאנו לאחר 20 יום עם רווח של כ-50 פיפס. בטרייד השלישי, עסקת שורט שבוצעה לאחר נר שלילי של 125 פיפס, הפסידה לאחר 20 יום כ-80 פיפס.

תהליך ה-
WFA:  
הסיסטם נבדק על הצמד EURUSD מתחילת שנת 2007 ועד אפריל 2012, כלומר על פני 5 שנים, עם תקופת אופטימיזציה של 30 יום, ותקופת בדיקה של 8 יום.
התהליך כלל:
1.       אופטימיזציה של הפרמטר x מ- 50 פיפס עד 500 פיפס בקפיצות של 10 פיפס.
2.       אופטימיזציה של הפרמטר y, מיום ועד 50 יום, בקפיצות של יום.
התוצאות:
הגרף הבא מתאר את עקומת הרווח לאורך 5 שנות הבדיקה, בשימוש בפרמטרים מתקופות הבדיקה העוקבות שחושבו בתהליך ה-WFA. הסיסטם הניב 210% לאורך חמש שנים, או 42% בממוצע לשנה. ניתן לראות כי בשורה התחתונה הסיסטם ריווחי, וכי ניתן לתחזקו לאורך זמן ע"י אופטימיזציות חוזרות ונשנות.



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

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



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

אבל הדבר המעניין יותר, היא האופציה לטייב את הסיסטם ע"י ניתוח התפלגות הרווח כפונקציה של x ו-y.
לדוגמא, הבא ונבחן את התפלגות הרווח בכל תקופה לפי המשתנה x – טווח המסחר לפריצה:



הגרף מראה את התפלגות העסקאות (פר תקופת בדיקה), על פי הפרמטר x. כיוון שהרצנו את תהליך ה-WFA עבור x מ-50 ל-200, כל העסקאות נופלות בטווח הנ"ל. בבחינה קצת יותר מעמיקה של הגרף ניתן לראות כי כאשר x גדול מ-100, ישנן יותר עסקאות מפסידות מאשר מרוויחות, הן בכמות והן בערך הרווח/הפסד עצמו. באמצעות נתון זה ניתן לטייב את הסיסטם מיידית ע"י פילטור של כל העסקאות בהן x גדול מ-100.
שימו לב לגרף הרווח/הפסד לאחר האופטימיזציה הנ"ל:



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

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

יניב.


-----------------------------------------------------------------------------------------------------------------------

לא רוצים לפספס את כתבת ההמשך? הירשו לבלוג וקבלו עדכון מיידי על פוסטים חדשים. ניתן לקבל עידכונים במייל, בפייסבוק, בטוויטר, או באמצעות RSS. ההרשמה באמצעות הטופס בתחילת העמוד -  "Subscribe Now".


 



ShareThis