איך מייצאים נתוני גרף של NinjaTrader, OHLCV וערכי אינדיקטורים ל-CSV
NinjaTrader מייצאת נתוני נרות OHLCV באופן מובנה דרך ה-Data Manager שלה: לוחצים קליק ימני על מכשיר, בוחרים ייצוא, ומקבלים CSV מופרד בנקודה-פסיק עם תאריך, שעה, פתיחה, גבוה, נמוך, סגירה ונפח. ערכי אינדיקטורים לא נמצאים בייצוא הזה. כדי להוציא ערכי אינדיקטורים צריך לכתוב אינדיקטור NinjaScript שמדפיס את הערכים לקובץ. הנה איך שני המסלולים עובדים.
- ה-Data Manager של NinjaTrader מייצא נתוני נרות OHLCV ל-CSV מופרד בנקודה-פסיק; הפורמט הוא תאריך ושעה, ואחר כך פתיחה, גבוה, נמוך, סגירה ונפח.
- ערכי אינדיקטורים לא כלולים בייצוא ה-OHLCV הסטנדרטי ודורשים אינדיקטור ייצוא ב-NinjaScript שכותב ערכים לקובץ.
- פלט משולב של OHLCV ואינדיקטורים אומר להריץ את ייצוא ה-NinjaScript לצד ייצוא נתוני הנרות ולמזג את הפלטים.
איך מייצאים נתוני נרות OHLCV מ-NinjaTrader
NinjaTrader 8 שומרת נתוני נרות היסטוריים במסד נתונים מקומי משלה. כדי לייצא: פתחו את ה-Control Center, עברו אל Tools > Historical Data (או Data Manager בחלק מהגרסאות), לחצו קליק ימני על המכשיר הרצוי ובחרו Export. בחרו את טווח התאריכים ומסגרת הזמן ואשרו. NinjaTrader כותבת קובץ CSV לתיקיית הפלט שבחרתם.
קובץ ה-CSV המיוצא משתמש בנקודה-פסיק כמפריד כברירת מחדל במקום בפסיקים. סדר העמודות הוא: Date;Time;Open;High;Low;Close;Volume למסגרות זמן תוך-יומיות, או Date;Open;High;Low;Close;Volume לנרות יומיים. פורמט התאריך הוא YYYYMMDD ופורמט השעה הוא HHMMSS.
ייצוא ה-OHLCV מכסה את כל הנתונים ההיסטוריים ש-NinjaTrader הורידה למכשיר ולמסגרת הזמן הזאת. אם אתם צריכים היסטוריה נוספת, הורידו אותה קודם דרך כלי הורדת הנתונים ההיסטוריים של הפלטפורמה לפני הייצוא.
מה ייצוא ה-OHLCV הסטנדרטי של NinjaTrader לא כולל
ייצוא ה-OHLCV של ה-Data Manager מכיל נתוני נרות בלבד. הוא לא כולל: ערכי אינדיקטורים שחושבו מהנרות האלה, אובייקטי שרטוט או נתוני הערות, היסטוריית עסקאות או הערות ברמת הסשן.
הקובץ הוא ייצוא גולמי של נתוני מחיר. שכבת חישוב האינדיקטורים חיה כולה בסביבת ההרצה של NinjaTrader ואינה נשמרת לקובץ נתוני הנרות. אם תהליך הניתוח שלכם תלוי בקריאות אינדיקטור ספציפיות לצד המחיר, ייצוא ה-OHLCV בלבד לא ישא את ההקשר הזה.
לייצוא מובנה של נתוני שרטוט והערות לצד OHLCV, ראו /resources/articles/ninjatrader-drawing-export.
| סוג נתון | כלול בייצוא Data Manager |
|---|---|
| פתיחה, גבוה, נמוך, סגירה (לכל נר) | כן |
| נפח (לכל נר) | כן |
| חותמות תאריך ושעה | כן |
| ערכי אינדיקטורים (EMA, RSI, VWAP וכו') | לא |
| אובייקטי שרטוט והערות | לא |
| היסטוריית עסקאות וביצועים | לא |
| הערות ברמת הסשן | לא |
רשימות מכשירים וחודשי חוזה ב-NinjaTrader: רבעוני או חודשי
רשימות מכשירים נמצאות תחת Tools ואז Instrument Lists ב-Control Center של NinjaTrader. רשימה מקבצת מכשירים כדי שתוכלו להריץ את Strategy Analyzer או Market Analyzer על כולם בבת אחת, או לטעון אותם מהר לחלונות אחרים.
חוזים עתידיים ב-NinjaTrader נושאים את תאריך הפקיעה בשם, למשל ES 12-26. כל כמה זמן מופיע חודש חוזה חדש נקבע על ידי הבורסה: חוזים עתידיים על מדדי מניות של CME כמו ES ו-NQ נרשמים ברבעונים (מרץ, יוני, ספטמבר ודצמבר), ואילו נפט גולמי (CL) נרשם בכל חודש. אף אחד מהחוזים העתידיים הנפוצים על מדדים לא נרשם פעם בשנה.
כשחוזה מגיע לתאריך הגלגול, Tools ואז Database Management מגלגלים את המכשירים קדימה. לפי מדריך העזרה של NinjaTrader, גלגול מעדכן את הפקיעה בכל רשימות המכשירים והחלונות בסביבות עבודה פתוחות, ואתם שומרים את סביבות העבודה כדי לשמור את השינוי. אסטרטגיות NinjaScript לא מתגלגלות קדימה מעצמן.
לייצוא, בדקו את Merge Policy תחת Tools, Options, Market data. האפשרות MergeBackAdjusted מחברת כל פקיעה להיסטוריה רציפה אחת עם קיזוזים בתאריכי הגלגול; Do Not Merge שומרת חודש חוזה אחד. הוסיפו את חודש החוזה ואת הגדרת המיזוג לשם הקובץ כדי שאפשר יהיה להתאים את הנרות בהמשך.
- חוזים עתידיים על מדדי מניות (ES, NQ): רבעוניים, מרץ, יוני, ספטמבר, דצמבר.
- נפט גולמי (CL): חוזה חדש בכל חודש.
- גלגול ב-Database Management מעדכן כל רשימת מכשירים; שמרו מחדש את סביבות העבודה.
- Merge Policy קובעת אם ההיסטוריה המיוצאת משתרעת על חוזה אחד או על כמה.
איך מייצאים ערכי אינדיקטורים מ-NinjaTrader
כדי להכניס ערכי אינדיקטורים לקובץ CSV, כותבים אינדיקטור NinjaScript שמחשב את הערך הרצוי וכותב אותו לקובץ בכל עדכון נר. לסביבת ה-NinjaScript של NinjaTrader יש גישה ל-System.IO לכתיבת קבצים.
הדפוס הבסיסי: ב-OnStateChange עבור State.DataLoaded, פותחים StreamWriter לנתיב הקובץ היעד. ב-OnBarUpdate, אם BarsInProgress == 0 ו-IsFirstTickOfBar, כותבים ל-StreamWriter את התאריך, השעה וערכי האינדיקטור של הנר הנוכחי. ב-OnStateChange עבור State.Terminated, סוגרים את ה-StreamWriter.
גישת ה-StreamWriter נותנת רשומה לכל נר של כל אינדיקטור שזמין בספרייה של NinjaTrader או של כל אינדיקטור מותאם שכתבתם. הפלט הוא קובץ טקסט מופרד שאפשר לפתוח בגיליון אלקטרוני או לייבא לכל כלי ניתוח. לחלופה לייצוא שתלוי בפלטפורמה, ראו /resources/articles/thinkorswim-to-csv-xlsx-annotations.
שילוב OHLCV וערכי אינדיקטורים בקובץ אחד
יש שתי גישות לשלב נרות OHLCV עם ערכי אינדיקטורים. הראשונה היא לכתוב אינדיקטור ייצוא יחיד ב-NinjaScript שמוציא בכל שורה גם שדות OHLCV וגם ערכי אינדיקטורים, וכך הכול נשאר מיושר לאותה חותמת זמן של נר.
הגישה השנייה היא לייצא OHLCV מה-Data Manager ולייצא ערכי אינדיקטורים בנפרד דרך NinjaScript, ואז למזג את שני הקבצים בגיליון אלקטרוני או בסקריפט עם חותמת הזמן המשותפת כמפתח חיבור. פורמט חותמת הזמן חייב להיות עקבי בין שני הקבצים כדי שהמיזוג יעבוד כראוי.
גישת ה-NinjaScript בקובץ יחיד נקייה יותר לניתוח אבל דורשת כישורי NinjaScript ליישום. גישת המיזוג עובדת בלי קוד מותאם אם פורמטי חותמות הזמן מתיישרים.
איפה ייצוא NinjaTrader לא מספיק ומתי להשלים אותו
תהליך הייצוא של NinjaTrader, בין אם מה-Data Manager ובין אם דרך NinjaScript, אמין לשליפת נתונים נר אחר נר אבל דורש פיתוח NinjaScript לכל דבר מעבר ל-OHLCV גולמי. למי שאינם מפתחים יש מחסום משמעותי בייצוא ערכי אינדיקטורים.
המגבלה האחרת היא ניידות הערות: שרטוטי גרף, טקסט הערות ורמות תמיכה והתנגדות שצוירו ב-NinjaTrader אינם בייצוא ה-OHLCV או האינדיקטורים. לתהליכי עבודה שצריכים לשאת הקשר גרף לצד נתוני הנרות, נדרשת שכבת ייצוא הערות משלימה.
לשכבת ההערות הזאת, ללא תלות בפלטפורמה, ראו /resources/articles/chart-annotation-export-for-trading-journal-xlsx-csv ו-/resources/articles/export-tradingview-indicator-values-csv להשוואה בין פלטפורמות של גישות ייצוא אינדיקטורים.
שאלות נפוצות
- האם NinjaTrader יכולה לייצא ערכי אינדיקטורים ל-CSV באופן מובנה?
- לא. ייצוא ה-OHLCV של ה-Data Manager כולל נתוני מחיר ונפח של נרות בלבד. כדי לייצא ערכי אינדיקטורים צריך לכתוב אינדיקטור NinjaScript שמשתמש ב-System.IO.StreamWriter לכתיבת ערכים לקובץ בכל עדכון נר.
- אילו נתוני OHLCV אפשר לייצא מגרף NinjaTrader?
- בעזרת ה-Data Manager אפשר לייצא תאריך, שעה, פתיחה, גבוה, נמוך, סגירה ונפח לכל מכשיר ומסגרת זמן ש-NinjaTrader הורידה. הפלט הוא CSV מופרד בנקודה-פסיק. ייצוא תוך-יומי כולל עמודת שעה; ייצוא יומי לא.
- מהי הדרך הטובה ביותר להוציא נתוני גרף של NinjaTrader לניתוח חיצוני?
- לנתוני נרות OHLCV: השתמשו בייצוא ה-Data Manager. לערכי אינדיקטורים: כתבו אינדיקטור ייצוא ב-NinjaScript שכותב קריאות אינדיקטור לכל נר לקובץ לצד שדות ה-OHLCV. מזגו את הפלטים לפי חותמת הזמן אם משתמשים בשני ייצואים נפרדים.
- מהו פורמט המפריד בייצוא ה-CSV של NinjaTrader?
- NinjaTrader משתמשת בנקודה-פסיק כמפריד במקום פסיקים בייצוא ה-CSV כברירת מחדל. בייבוא ל-Excel או לכלים אחרים, בחרו 'semicolon' כמפריד ולא פסיק בזמן הייבוא.
- האם החוזים העתידיים ב-NinjaTrader רבעוניים או חודשיים?
- זה תלוי ברישום של הבורסה. ES ו-NQ נרשמים ברבעונים, במרץ, ביוני, בספטמבר ובדצמבר; CL נרשם בכל חודש. NinjaTrader נותנת לכל חוזה שם לפי הפקיעה, למשל ES 12-26, ו-Tools ואז Database Management מגלגלים את רשימות המכשירים לחודש הבא.
נסו את MyLinedChart
MyLinedChart שומר את השרטוטים, ההערות וערכי האינדיקטורים שלכם כנתונים שאפשר לייצא, לסקור ולהשתמש בהם שוב.
גלו את MyLinedChart