เรียกใช้คำสั่ง 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