מקרה בוחן / אלגוטריידינג ומחקר כמותי

מחולל אסטרטגיות מסחר אוטומטי

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

האתגר

פיתוח אסטרטגיות מסחר באופן ידני נוטה לעיתים קרובות להטיות אנושיות והתאמת-יתר (Curve Fitting): סוחרים מכיילים אינדיקטורים עד שהתוצאות נראות מושלמות על נתוני העבר, רק כדי לגלות שהאסטרטגיה קורסת בשוק האמיתי. בנוסף, העברת אסטרטגיה מכלי מחקר בפייתון לפלטפורמות ביצוע מוסדיות כמו NinjaTrader דורשת כתיבה מחדש של כל הקוד בשפת C# באופן ידני, תהליך שאורך שבועות ומייצר באגים יקרים.

הפתרון

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

עיבוד נתונים מהיר, זיכרון ללא העתקה ואגרגציה רב-תקופתית

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

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

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

  • אגרגציה רב-תקופתית היררכית: בניית נרות 1, 5, 10 ו-60 דקות וגרפי N-טיקים מנתוני טיק בסיסיים.
  • ארכיטקטורת נתונים בזיכרון משותף מאפשרת ניתוח מיידי של מיליוני נרות ללא עומס זיכרון.
  • חישוב מקבילי של אינדיקטורים טכניים המנצל את כל ליבות המעבד וספריות קוד C ממוטבות.

לכידת תמונת מצב של השוק: הבנת כל עסקה לעומק

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

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

  1. 01

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

  2. 02

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

  3. 03

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

  4. 04

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

  5. 05

    מנוע קיבוץ מאגד עסקאות שחלקו תנאי שוק זהים לחלוטין.

  6. 06

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

הגנות דינמיות: מציאת חוקי וטו במקום ניחוש נקודות כניסה

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

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

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

מהדר AST אוניברסלי: פריסה רב-פלטפורמית ללא שכתוב ידני

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

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

בעוד ששפת C# ותוכנת NinjaTrader 8 שימשו כמנוע הייצור המרכזי למסחר בחוזים עתידיים ומניות, ארכיטקטורת ה-AST מתוכננת כך שהיא מנותקת מפלטפורמה יחידה: באמצעות הבנת מודל הביצוע ומגבלות ה-API, פולטי קוד מודולריים מסוגלים להפיק קוד עבור MetaTrader (בשפות MQL), שפת C++ או ממשקי מסחר ישירים של ברוקרים, תוך הטמעת אותה לוגיקת אסטרטגיה מדויקת בכל שוק.

  • תרגום קוד ישיר מבטל שגיאות תכנות אנושיות ומקצר את זמן הפריסה משבועות לשניות בודדות.
  • תמיכה רב-פלטפורמית: יישום מוביל ל-NinjaTrader 8 (בשפת C#) לצד ארכיטקטורה מודולרית ל-MetaTrader וממשקי ברוקרים.
  • הפקת קוד רב-תקופתית מגדירה אוטומטית סדרות נרות משניות ומקשרת אליהן מופעי אינדיקטורים ייעודיים.

הטכנולוגיות בפרויקט

הטכנולוגיות ששימשו בפיתוח הפרויקט.

מנוע בדיקות וארכיטקטורת נתונים

  • ליבת מנוע Backtesting.py
  • אפיק נתונים בזיכרון ללא כפילויות
  • ספריות TA-Lib (קישורי C מהירים)
  • עיבוד מקבילי מרובה ליבות (Joblib)

ניתוח שוק ומדעי הנתונים

  • Pandas ו-NumPy לעיבוד סדרות עיתיות
  • ניתוח דפוסי תנועת מחיר
  • בודקי תנאי שוק רב-טווחי זמן
  • בדיקת מובהקות סטטיסטית

אופטימיזציית אסטרטגיות וחוקי הגנה

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

מהדר קוד ופריסה מבצעית

  • מהדר קוד מפייתון לשפת C# מבוסס AST
  • שפת C# וסביבת .NET Framework 4.8
  • ארכיטקטורת אסטרטגיה בתוכנת NinjaScript 8
  • שערי וטו בזמן אמת לפני שידור פקודה
מאגר ידע הנדסיצלילה לארכיטקטורה

רוצים להבין את הארכיטקטורה מאחורי המערכת?

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

שירותי פיתוח קשורים

לכל הפרויקטים

השלב הבא שלכם

בואו נגדיר מה נכון לבנות.

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

בואו נדבר על הפרויקט שלכם