אסטרטגיות מסחר ב-Pine Script: פיתוח ובדיקות לאחור

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

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1376
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1350
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    798
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1093
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1035
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1132

פיתוח Pine Script: מדוע האסטרטגיה לא עובדת

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

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

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

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

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

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

מה נותנת אסטרטגיה שנבדקה על היסטוריה ועל נתונים חדשים

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

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

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

השוואת גישות: אינדיקטור, רובוט, תיק אסטרטגיות

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

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

אפשרויות והמגבלות שלהן

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

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

פיתוח Pine Script: שלבים מתרשים ועד מסירה

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

  1. ניסוח ההשערה. מקבעים שוק, מסגרת זמן, תנאי כניסה ויציאה, כלל סיכון ורגע ביטול האות. קריטריונים כמו "מגמה חזקה" מחליפים במדידים: שיפוע ממוצע נע, מרחק מרמה, נפח.
  2. תרשים הלוגיקה. מתארים מצבי פוזיציה: כניסה, החזקה, היפוך, סגירה חלקית. בנפרד — התנהגות בגבול הסשן: שם לרוב מתפצלים הציפיות והתוצאה.
  3. מימוש. כותבים אסטרטגיה ב-Pine Script: פרמטרים מועברים להגדרות, החישוב מתבצע לפי נר סגור, תנאי המסחר מופרדים מהציור — ההתנהגות ניתנת לשחזור ואינה תלויה בציור מחדש.
  4. הרצה על ההיסטוריה. מסתכלים לא רק על תשואה: דראוודאון, שיעור עסקאות רווחיות, התפלגות תוצאות לפי תקופות, מספר עסקאות. עשר עסקאות — עדיין לא סטטיסטיקה.
  5. בדיקת עמידות. משנים מסגרת זמן ונכס, מזיזים פרמטרים בצעד, מסתכלים על קטע שלא השתתף בכיול. אם התוצאה מתפוררת מהזזה קטנה — הכלל אומן יתר על המידה.
  6. ביקורת קוד. בודקים את החישוב לאיתור הצצה לעתיד, גודל פוזיציה, התחשבות בעמלה ובהחלקה, טיפול בחסרים בנתונים.
  7. מסירה. קוד מקור עם הערות, תיאור פרמטרים והגבולות שלהם, מגבלות ידועות, סדר החיבור.

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

מה אנו מוסרים: קוד, דוח בדיקה, תיעוד

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

  • קוד המקור של האסטרטגיה ב-Pine Script — מלא, עם הערות על לוגיקת הכניסות, היציאות וניהול הפוזיציה. לא ספרייה סגורה, אלא קובץ שאפשר לקרוא שורה אחר שורה ולשנות לפי ההשערה שלכם.
  • דוח בדיקות — הרצה על נתונים היסטוריים במשטרי שוק שונים: מגמה יציבה, דשדוש, תנועות חדות. בדוח מקובעים פרמטרי ההרצה, הדראוודאון, שיעור העסקאות הרווחיות ומספרן, כדי שאפשר יהיה לחזור על התוצאה.
  • תיאור ניהול הסיכון — כיצד מחושב גודל הפוזיציה, כיצד מוגבלת סדרת הפסדים, באילו תנאים האסטרטגיה נעצרת.
  • תיעוד האסטרטגיה — ייעודו של כל פרמטר, טווחי ערכים בטוחים, גבולות הישימות. די בו כדי שמהנדס חדש יבין ללא התכתבות עם מחבר הקוד.
  • נוהל ליווי — מה לבדוק ובאיזו תדירות, כיצד להעביר את הלוגיקה לנכס או למסגרת זמן אחרים, כיצד לתעד שינויים בין גרסאות.
  • מערך בדיקות ונתוני בדיקה — חישוב ניתן לשחזור: אחרי כל שינוי רואים מה בדיוק השתנה בהתנהגות האסטרטגיה.
  • יומן החלטות — אילו השערות נבדקו ונפסלו, ומהן הסיבות. זה חוסך זמן בעיבוד הבא.

מקרה בוחן: כיצד הפחתנו את הדראוודאון והסרנו אופטימיזציית יתר

אסטרטגיה ב-TradingView הגיעה אלינו כשהיא עובדת: 14 פרמטרים שהותאמו לקטע היסטוריה מסוים, עקומת הכנסה חלקה ודראוודאון של כ-18% בו. על נתונים חדשים התמונה התפצלה — הדראוודאון גדל ל-42%, וחלק מהתקופות עברו למינוס. הפרמטרים תיארו לא את התנהגות השוק אלא את הרעש של קטע מוצלח אחד, וזו התאמת יתר קלאסית להיסטוריה.

מה שינינו

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

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

לאחר העיבוד מחדש התוצאה על ההיסטוריה נעשתה צנועה יותר, אבל הפער בין ההיסטוריה לנתונים החדשים הצטמצם מפי שלושה ויותר ל-1.2. הדראוודאון המקסימלי ירד מ-42% ל-16%, שיעור התקופות הרווחיות עלה מ-48% ל-61%, והזזה של פרמטר אחד כבר אינה הופכת את תוצאת הבדיקה. האפקט המרכזי — יכולת חיזוי: רואים באילו תנאים האסטרטגיה עובדת ומתי צריך לכבות אותה.

במה שונה בדיקה על ההיסטוריה ממסחר בחשבון דמו

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

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

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

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

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

ספקות טכניים: נתונים, עמלות, החלקה

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

כיצד עמלות נכנסות לחישוב?

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

כיצד מדמים החלקה?

ביצוע במחיר אידיאלי — אשליה: בבודק אין תור הוראות אמיתי. מגדירים החלקה בטיקים או בשיעור מהספרד; בשוק דליל הפער מול ההיסטוריה נעשה מורגש.

אילו מגבלות פלטפורמה משנות את התוצאה?

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

כיצד לבדוק את איכות הנתונים ההיסטוריים?

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

נדון במשימה ונחזור עם הערכה ותוכנית

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

מה מקבעים בתוכנית לפני ההתחלה:

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

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