ข้ามไปที่เนื้อหา

เรียกใช้คำสั่ง cTrader CLI

บทความนี้อธิบายโครงสร้างคำสั่ง cTrader CLI วิธีการตรวจสอบสิทธิ์ และวิธีอ่านข้อมูลบัญชี ราคา และประวัติ

โครงสร้างคำสั่ง

คำสั่ง cTrader CLI ทุกคำสั่งมีโครงสร้างแบบเดียวกัน:

ctrader-cli <command> [arguments] [options]
  • ตัวเลือกจะขึ้นต้นด้วยคำนำหน้า -- เป็นรูปแบบยาว ส่วน - เป็นรูปแบบสั้น (--symbol และ -s ใช้แทนกันได้)
  • ค่าของตัวเลือกคั่นด้วยช่องว่างหรือเครื่องหมายเท่ากับ ทั้ง --symbol EURUSD และ --symbol=EURUSD ใช้ได้
  • อาร์กิวเมนต์เป็นค่าที่กำหนดตามตำแหน่ง โดยไม่มีคำนำหน้า พาธไปยังไฟล์ .algo เป็นอาร์กิวเมนต์
  • ค่าที่มีช่องว่างต้องอยู่ภายในเครื่องหมายอัญประกาศเดี่ยวหรือคู่ เช่น '/opt/my cbots/trend cbot.algo' ใช้เครื่องหมายอัญประกาศรูปแบบเดียวกันให้สม่ำเสมอภายในคำสั่ง

การตรวจสอบสิทธิ์

cTrader CLI มีรูปแบบการตรวจสอบสิทธิ์สองแบบ ทั้งสองแบบใช้ไฟล์ข้อมูลประจำตัวที่คุณเตรียมไว้ระหว่างการตั้งค่า

รูปแบบ ตัวเลือกที่จำเป็น คำสั่งที่ใช้ทั่วไป
แบบแบตช์ --ctid และ --pwd-file periods, accounts, symbols, metadata, run, backtest
แบบโต้ตอบ --ctid, --password หรือ --pwd-file และ -q account, orders, price, candles, positions, exposure, alerts และคำสั่งเกี่ยวกับอินดิเคเตอร์

หมายเหตุ

คำสั่งแบบแบตช์ไม่รองรับ --password คำสั่งแบบโต้ตอบรองรับทั้ง --password และ --pwd-file

คำสั่ง accounts, symbols, metadata, run และ backtest มีอยู่ในทั้งสองรูปแบบ โดยจะทำงานแบบแบตช์หรือแบบโต้ตอบตามตัวเลือกที่คุณระบุ:

  • การทำงานแบบแบตช์ – อ่านข้อมูลประจำตัวจาก --pwd-file (หรือ --broker) และทำงานโดยไม่ต้องโต้ตอบ
  • การทำงานแบบโต้ตอบ – ใช้ --password และ -q (หรือตัวเลือกเฉพาะของคำสั่ง) และทำงานในรูปแบบการเรียกใช้แบบโต้ตอบ

ตัวระบุกรอบเวลา

หลายคำสั่งรองรับค่า --period เรียกใช้ ctrader-cli periods เพื่อแสดงตัวระบุทั้งหมดที่รองรับ ตัวระบุครอบคลุมนาที ชั่วโมง วัน สัปดาห์ และเดือน รวมถึง tick, Renko, แท่งช่วงราคา และรูปแบบต่าง ๆ ของ Heikin Ashi ระบบไม่แยกตัวพิมพ์ใหญ่และเล็กขณะตีความตัวระบุ

หน่วยปริมาณการเทรด

--volume รับปริมาณการเทรดเป็นหน่วยสกุลเงินฐานหรือล็อต ใช้ --volume-type=units (ค่าเริ่มต้น) หรือ --volume-type=lots เพื่อกำหนดวิธีตีความปริมาณการเทรด สำหรับสัญลักษณ์ Forex ส่วนใหญ่ 100,000 หน่วยเท่ากับหนึ่งล็อตมาตรฐาน

เมื่อใช้ --volume-type=lots จำนวนหน่วยของสินทรัพย์อ้างอิง
--volume=1 100,000
--volume=0.1 10,000
--volume=0.01 1,000

คำเตือน

สำหรับโลหะ ดัชนี และคริปโต ขนาดล็อตจะแตกต่างกันตามสัญลักษณ์ ดังนั้นค่า --volume=1 เดียวกันอาจเปิดโพสิชันที่ใหญ่กว่าที่คุณต้องการ ตรวจสอบค่า lotSize ของสัญลักษณ์ก่อนเทรด:

ctrader-cli symbol --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567 -q --symbol=XAUUSD

ตัวอย่างเช่น หาก XAUUSD มีค่า lotSize: 100 การใช้ --volume=1 --volume-type=lots จะเปิดโพสิชันขนาด 100 หน่วย

วันที่และเวลา

วันที่และเวลาทั้งหมดใน cTrader CLI ใช้เวลา UTC CLI จะไม่ใช้เขตเวลาท้องถิ่นของคอมพิวเตอร์หรือเวลาเซิร์ฟเวอร์ของโบรกเกอร์

UTC ใช้กับผลลัพธ์คำสั่งและวันที่ที่ป้อนดังนี้:

  • ผลลัพธ์: การประทับเวลาทั้งหมดในผลลัพธ์ JSON ใช้ UTC ในรูปแบบ ISO 8601 ที่มี Z เช่น 2026-10-08T14:05:00.000Z
  • คำสั่งแบบโต้ตอบ (candles, deals, orders-history และ backtest ที่เรียกใช้ด้วย -q): --from และ --to รับเฉพาะวันที่ในรูปแบบ yyyy-MM-dd, dd/MM/yyyy, dd-MM-yyyy หรือ yyyy/MM/dd วันที่ดังกล่าวหมายถึงวันตามปฏิทินในเขตเวลา UTC
    • สำหรับ deals และ orders-history ค่า --to จะรวมทั้งวันจนถึง 23:59:59 UTC
    • สำหรับ candles ค่า --to หมายถึงเวลาเริ่มต้นของวันนั้น (00:00 UTC) หากต้องการรวมข้อมูลทั้งวัน ให้ตั้ง --to เป็นวันถัดไป
    • หากไม่ระบุ --from / --to การทำ backtest แบบโต้ตอบจะครอบคลุม 7 วันล่าสุด
  • คำสั่งแบบแบตช์ (backtest และคำสั่งอื่น ๆ): วันที่ใช้รูปแบบ dd/MM/yyyy โดยอาจเพิ่มเวลาแบบ 24 ชั่วโมงในรูปแบบ dd/MM/yyyy HH:mm เช่น 31/12/2026 18:00 ซึ่งใช้ UTC เช่นกัน

ข้อยกเว้นเพียงอย่างเดียวคือ cBot ที่กำลังทำงาน (run, backtest) เวลาของ cBot จะเป็นไปตามการตั้งค่า TimeZone ใน cBot เช่นเดียวกับใน cTrader Algo

อ่านข้อมูลบัญชีและตลาด

ctrader-cli periods ไม่ต้องใช้บัญชีหรือข้อมูลประจำตัว จึงเหมาะสำหรับใช้ทดสอบครั้งแรก

ctrader-cli periods

แสดงบัญชีเทรดที่เชื่อมโยงกับ cTrader ID ของคุณ:

ctrader-cli accounts --ctid=letstrade --pwd-file=C:/test/password.pwd

เมื่อทราบหมายเลขบัญชีแล้ว ให้แสดงสัญลักษณ์ที่พร้อมใช้งานในบัญชีนั้น:

ctrader-cli symbols --ctid=letstrade --pwd-file=C:/test/password.pwd --account=1234567

อ่านราคาปัจจุบันของสัญลักษณ์และดึงข้อมูลแท่งเทียนย้อนหลังผ่านสคริปต์:

ctrader-cli price --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD
ctrader-cli candles --ctid=letstrade --password=secret --account=1234567 -q --symbol=EURUSD --period=h1 --count=200 > eurUSD_h1.json

ขีดจำกัดข้อมูลย้อนหลัง

deals และ orders-history มีขีดจำกัดการเรียกดูข้อมูลย้อนหลังดังนี้:

  • CLI โหลดข้อมูลตลอดช่วง --from / --to โดยไม่จำกัดความยาวของช่วงเวลา
  • การเรียกใช้หนึ่งครั้งจะแสดงเฉพาะดีลล่าสุด 200 รายการ (deals) หรือคำสั่งซื้อขายล่าสุด 500 รายการ (orders-history) ภายในช่วงนั้น
  • หากไม่ระบุ --from / --to ทั้งสองคำสั่งจะส่งคืนข้อมูลเฉพาะ 30 วันล่าสุด
  • --count กำหนดจำนวนรายการข้อมูลที่จะส่งคืน:

    • สำหรับ deals ค่าเริ่มต้นคือ 50 และสูงสุด 200
    • สำหรับ orders-history ค่าเริ่มต้นคือ 100 และสูงสุด 500

เมื่อระบุ --from หรือ --to ระบบจะไม่ใช้ --count และการเรียกใช้จะส่งคืนรายการได้สูงสุดตามขีดจำกัด

หากช่วงเวลามีข้อมูลมากกว่าที่การเรียกใช้ครั้งเดียวส่งคืนได้ ให้แบ่งเป็นช่วงเวลาสั้นลงและเรียกใช้คำสั่งสำหรับแต่ละช่วง

หากต้องการตรวจสอบว่าผลลัพธ์ถูกตัดทอนหรือไม่ ให้ดูผลลัพธ์ที่แสดง:

  • orders-history: ผลลัพธ์มีฟิลด์ available และ returned หาก available มากกว่า returned แสดงว่ายังมีคำสั่งซื้อขายอื่น ๆ ในช่วงนั้น
  • deals: หาก count เท่ากับ 200 พอดี อาจมีดีลเพิ่มเติมในช่วงนั้น

การดำเนินการแบบกลุ่มในเชลล์แบบโต้ตอบ

ในเชลล์แบบโต้ตอบ บางคำสั่งรองรับการเติม all และ yes ต่อท้าย เพื่อดำเนินการกับหลายรายการพร้อมกันโดยข้ามข้อความขอยืนยัน

คำสั่ง รูปแบบที่ลงท้ายด้วย all และ yes
order cancel order cancel all yes
position close position close all yes
stop stop all yes
alert delete alert delete all yes

เรียกใช้คำสั่งแบบโต้ตอบ

เรียกใช้ ctrader-cli โดยไม่ระบุคำสั่งเพื่อเปิดเชลล์แบบโต้ตอบ เมื่อระบบแจ้ง ให้ลงชื่อเข้าใช้ด้วย cTID และรหัสผ่าน จากนั้นป้อนคำสั่งต่อเนื่องกันได้โดยไม่ต้องกรอกข้อมูลประจำตัวซ้ำ วิธีนี้สะดวกเมื่อคุณต้องการเรียกใช้หลายคำสั่งติดต่อกัน

หากต้องการเรียกใช้เพียงคำสั่งเดียวแล้วออกทันที ให้เพิ่ม -q วิธีนี้มีประโยชน์สำหรับสคริปต์ที่ต้องสิ้นสุดโปรเซสทันทีเมื่อคำสั่งเสร็จสิ้น

มีสองตัวเลือกที่ช่วยให้ทราบว่า CLI รองรับความสามารถใดบ้าง

ตัวเลือก วัตถุประสงค์
--help แสดงตัวเลือกทั่วไปและรูปแบบการเริ่มทำงาน
--commands แสดงคำสั่งแบบโต้ตอบทั้งหมดพร้อมรูปแบบอาร์กิวเมนต์ตามตำแหน่งโดยไม่ต้องตรวจสอบสิทธิ์

หาก cTrader ID ของคุณเชื่อมโยงกับบัญชีจากหลายโบรกเกอร์ที่ใช้หมายเลขบัญชีเดียวกัน ให้เพิ่ม --broker=<broker-name> เพื่อระบุบัญชีให้ชัดเจน

ข้อผิดพลาดที่พบบ่อย

อาการ สาเหตุที่เป็นไปได้ ขั้นตอนถัดไป
ctrader-cli: command not found CLI ไม่อยู่ใน PATH ของคุณ เปิดเทอร์มินัลใหม่หรือทำตามขั้นตอนการติดตั้งด้วยตนเองในคู่มือการตั้งค่า
Parameter password is not allowed คุณระบุ --password ให้กับคำสั่งแบบแบตช์ เปลี่ยนไปใช้ --pwd-file โดยดูกฎฉบับเต็มได้ในคู่มือการตั้งค่า
Account cannot be found หมายเลขบัญชีไม่ชัดเจนเนื่องจากใช้ซ้ำกับบัญชีของโบรกเกอร์อื่น เพิ่ม --broker=<broker-name>
Unknown symbol name ชื่อสัญลักษณ์ไม่ถูกต้องหรือไม่รองรับ เรียกใช้ symbols และใช้ชื่อตามที่แสดงในผลลัพธ์ทุกตัวอักษร
Unknown period ตัวระบุกรอบเวลาไม่ถูกต้อง เรียกใช้ periods เพื่อแสดงตัวระบุทั้งหมดที่รองรับ

หมายเหตุ

ดูตัวเลือกทั้งหมด ค่าเริ่มต้น และคำอธิบายฉบับเต็มได้ในเอกสารอ้างอิง CLI