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

ตรวจสอบความเสี่ยงสิ้นวัน

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

เคล็ดลับ

ตั้งค่าข้อมูลเข้าสู่ระบบในตัวแปร 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 เป็นเครื่องมือสำหรับการเทรดและระบบอัตโนมัติ เครื่องมือนี้ไม่ได้ให้คำแนะนำด้านการเงิน การลงทุน กฎหมาย หรือภาษี คำสั่งที่ใช้ส่งหรือแก้ไขคำสั่งซื้อขายอาจทำให้เกิดการเทรดจริงและการขาดทุน ตรวจสอบทุกคำสั่งก่อนเรียกใช้ ทดสอบในบัญชีทดลองก่อน และปกป้องข้อมูลประจำตัวของคุณ