ตรวจสอบความเสี่ยงสิ้นวัน¶
ก่อนจบวันเทรด ควรตอบคำถามสำคัญสามข้อ ได้แก่ อิควิตี้ถูกใช้เป็นมาร์จิ้นไปเท่าใด โพสิชันที่เปิดอยู่มีการป้องกันแล้วหรือยัง และโพสิชันใดขาดทุนเกินระดับที่ยอมรับได้ คำแนะนำนี้อธิบายคำสั่งสี่คำสั่งที่จะช่วยตอบคำถามเหล่านี้ และวิธีดำเนินการตามผลลัพธ์
เคล็ดลับ
ตั้งค่าข้อมูลเข้าสู่ระบบในตัวแปร shell เพียงครั้งเดียว คำสั่งในโหมดอินเทอร์แอกทีฟทั้งหมดด้านล่างจะใช้ตัวแปรเหล่านี้ร่วมกัน ทำให้ขั้นตอนกระชับและนำสคริปต์ไปใช้ในสภาพแวดล้อมอื่นได้ง่าย
export CTID=letstrade
export ACC=7654321
export PWD_FILE=$HOME/.ctrader/pwd
1. ตรวจสอบมาร์จิ้นที่ใช้อยู่ ¶
account-stats ส่งคืนยอดคงเหลือ อิควิตี้ มาร์จิ้น และมาร์จิ้นที่เหลืออยู่ เปรียบเทียบมาร์จิ้นที่เหลืออยู่กับอิควิตี้เพื่อประเมินความเสี่ยงของบัญชี
ctrader-cli account-stats --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
หากมาร์จิ้นที่เหลืออยู่ต่ำเมื่อเทียบกับอิควิตี้ แสดงว่าบัญชีใช้มาร์จิ้นไปมากแล้ว ขั้นตอนต่อไปจึงยิ่งสำคัญ
2. แสดงโพสิชันที่เปิดอยู่ทั้งหมด ¶
positions แสดงโพสิชันที่เปิดอยู่ทั้งหมด พร้อมราคาเข้า ปริมาณการเทรด Stop Loss Take Profit และกำไรที่ยังไม่เกิดขึ้นจริง บันทึกผลลัพธ์ลงในไฟล์เพื่อให้ตรวจสอบแต่ละโพสิชันแยกกันได้
ctrader-cli positions --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q > positions.json
สังเกตสัญญาณเตือนสองอย่าง ได้แก่ โพสิชันที่ไม่มี Stop Loss และโพสิชันที่ขาดทุนเกินเกณฑ์ที่คุณตั้งไว้ ขั้นตอนถัดไปอธิบายวิธีจัดการทั้งสองกรณี
3. เพิ่ม Stop Loss ให้โพสิชันที่ยังไม่มีการป้องกัน ¶
สำหรับโพสิชันที่ไม่มี Stop Loss หรือมี Stop Loss อยู่ใกล้ราคามากเกินไป position modify ช่วยให้เพิ่มหรือย้าย Stop Loss ได้โดยไม่เปลี่ยนปริมาณการเทรด
ctrader-cli position modify --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
--position=11223344 --sl=1.1000
ระบุเฉพาะ --sl เพื่อไม่ให้ระดับ Take Profit เปลี่ยน ทำซ้ำกับทุกโพสิชันที่ยังไม่มีการป้องกัน
4. ปิดโพสิชันที่ขาดทุนเกินเกณฑ์ ¶
หากโพสิชันขาดทุนเกินขีดจำกัดที่กำหนด position close จะปิดโพสิชันนั้นที่ราคาถัดไปที่สามารถดำเนินการได้
ctrader-cli position close --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
--position=55667788
หากต้องการคงโพสิชันไว้แต่ลดปริมาณ ให้ใช้ position close-partial พร้อม --volume
ctrader-cli position close-partial --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
--position=55667788 --volume=500
5. ตรวจสอบว่าสถานะบัญชีดีขึ้นแล้ว ¶
เรียกใช้ account-stats และ positions อีกครั้ง เพื่อยืนยันว่ามาร์จิ้นที่ใช้อยู่ลดลงและโพสิชันที่มีปัญหาถูกปิดแล้ว
ctrader-cli account-stats --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
ctrader-cli positions --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
6. รวมขั้นตอนเป็นสคริปต์ตรวจสอบความเสี่ยง ¶
บันทึกชุดคำสั่งทั้งหมดเป็น risk-check.sh สคริปต์บันทึกรายการโพสิชันเพื่อให้คุณตรวจสอบการเปลี่ยนแปลงได้
#!/usr/bin/env bash
set -euo pipefail
CTID=letstrade
ACC=7654321
PWD_FILE=$HOME/.ctrader/pwd
LOSS_LIMIT=300
PROTECT_POS=(11223344 55667788)
CLOSE_POS=(55667788)
ctrader-cli account-stats --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
ctrader-cli positions --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q > positions.json
for POS in "${PROTECT_POS[@]}"; do
ctrader-cli position modify --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
--position=$POS --sl=1.1000
done
for POS in "${CLOSE_POS[@]}"; do
ctrader-cli position close --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q \
--position=$POS
done
ctrader-cli account-stats --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
ctrader-cli positions --ctid=$CTID --pwd-file=$PWD_FILE --account=$ACC -q
อัปเดตอาร์เรย์โพสิชันที่ต้นสคริปต์ด้วย ID ที่ได้จากขั้นตอนที่ 2 เรียกใช้สคริปต์หลังทุกเซสชันการเทรด ก่อนปิดแล็ปท็อป
เอกสารอ้างอิงคำสั่ง cTrader CLI แสดงตัวเลือกทั้งหมดที่ใช้กับคำสั่งในขั้นตอนนี้
คำเตือน
cTrader CLI เป็นเครื่องมือสำหรับการเทรดและระบบอัตโนมัติ เครื่องมือนี้ไม่ได้ให้คำแนะนำด้านการเงิน การลงทุน กฎหมาย หรือภาษี คำสั่งที่ใช้ส่งหรือแก้ไขคำสั่งซื้อขายอาจทำให้เกิดการเทรดจริงและการขาดทุน ตรวจสอบทุกคำสั่งก่อนเรียกใช้ ทดสอบในบัญชีทดลองก่อน และปกป้องข้อมูลประจำตัวของคุณ