MyLinedChart
Proดาวน์โหลด
หน้าแรกราคาดาวน์โหลดบทความ

วิธีส่งออกข้อมูลกราฟ NinjaTrader, OHLCV และค่าอินดิเคเตอร์เป็น CSV

เผยแพร่เมื่อ 2026-06-26 · อัปเดตเมื่อ 2026-10-18 · อ่านเป็นภาษาอังกฤษ

NinjaTrader ส่งออกข้อมูลแท่งราคา OHLCV ได้ในตัวผ่าน Data Manager คลิกขวาที่ตราสาร เลือกส่งออก แล้วคุณจะได้ CSV ที่คั่นด้วยเซมิโคลอน มีวันที่ เวลา ราคาเปิด สูง ต่ำ ปิด และปริมาณ ค่าอินดิเคเตอร์ไม่อยู่ในไฟล์ส่งออกนั้น การเอาค่าอินดิเคเตอร์ออกมาต้องเขียนอินดิเคเตอร์ NinjaScript ที่พิมพ์ค่าลงไฟล์ นี่คือวิธีทำงานของทั้งสองเส้นทาง

ประเด็นสำคัญ
  • NinjaTrader Data Manager ส่งออกข้อมูลแท่งราคา 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

การส่งออกจาก NinjaTrader Data Manager มีเฉพาะราคาและปริมาณ ค่าอินดิเคเตอร์ต้องใช้วิธีส่งออก NinjaScript แยกต่างหาก
ประเภทข้อมูลรวมอยู่ในการส่งออกจาก Data Manager
ราคาเปิด สูง ต่ำ ปิด (ต่อแท่ง)ใช่
ปริมาณ (ต่อแท่ง)ใช่
ตราประทับวันที่และเวลาใช่
ค่าอินดิเคเตอร์ (EMA, RSI, VWAP ฯลฯ)ไม่
ออบเจกต์งานวาดและโน้ตไม่
ประวัติเทรดและการจับคู่คำสั่งไม่
โน้ตระดับเซสชันไม่

รายการตราสารและเดือนสัญญาใน NinjaTrader: รายไตรมาสหรือรายเดือน

รายการตราสาร (Instrument Lists) อยู่ที่ Tools แล้ว Instrument Lists ใน NinjaTrader Control Center รายการหนึ่งรวมตราสารไว้เป็นกลุ่ม คุณจึงรัน 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 ให้เขียน Date, Time และค่าอินดิเคเตอร์ของแท่งปัจจุบันลง 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

บทความอื่น ๆ