จาก Fixed Lot สู่ Fixed Fractional Risk

Development Log · 2025-06-19

1. Title

จาก Fixed Lot สู่ Fixed Fractional Risk: จุดเริ่มต้นของการบริหารขนาดโพซิชันตามสัดส่วนเงินทุน

2. Date / Phase

19 มิถุนายน 2568 (June 19, 2025) Phase: Foundational Risk Engineering

3. Background

บทสนทนาเริ่มต้นจาก Expert Advisor พื้นฐานที่ใช้ ZigZag สองชุด (Depth/Deviation/Backstep ต่างกัน) ร่วมกับการยืนยันสัญญาณด้วยแท่งเทียนสองแท่งติดต่อกัน และมีระบบ Trailing Stop ในตัว โครงสร้างเดิมกำหนดขนาดการเข้าออเดอร์ด้วยค่าคงที่ (Fixed Lot = 0.01) ซึ่งไม่สะท้อนขนาดเงินทุนที่แท้จริงของบัญชี โจทย์ตั้งต้นคือการปรับเปลี่ยนกลไกการกำหนดขนาดโพซิชัน โดยคงเงื่อนไขการเข้า-ออกออเดอร์เดิมไว้ทั้งหมด และตัด Input ที่ไม่จำเป็นออก

4. Key Insights

  • Fixed Lot ไม่ scale ตามเงินทุน — การใช้ lot คงที่ทำให้ความเสี่ยงต่อไม้ (% ของพอร์ต) ไม่สัมพันธ์กับ equity ที่เปลี่ยนแปลง จึงต้องเปลี่ยนเป็นการคำนวณตามสัดส่วน (Fixed Fractional)
  • การคำนวณ Pip Value ครั้งแรกผิดพลาด — สูตรเริ่มต้นคำนวณ "money per point" จาก TickValue/TickSize คูณ Point โดยตรง ไม่สอดคล้องกับวิธีคำนวณ pip value มาตรฐาน ทำให้ lot size คลาดเคลื่อนจากความเสี่ยงที่ตั้งใจไว้ ต้องแก้เป็นการแปลง Stop Loss Distance เป็นจำนวน pips ก่อน แล้วจึงคูณด้วย Money per Pip per Lot
  • ความโปร่งใสของการคำนวณสำคัญกว่าความสวยงามของโค้ด — การเพิ่ม Debug Log แสดงทุกตัวแปรที่เกี่ยวข้อง (Equity, Risk Amount, SL Distance, Tick Value, Lot ก่อน/หลัง normalize) ช่วยให้ตรวจพบและยืนยันความถูกต้องของสูตรได้รวดเร็ว
  • Risk-based Sizing ต้องมีเพดานกำกับเสมอ — แม้สัดส่วนตาม equity จะถูกต้อง แต่หากปล่อยให้ lot size โตตาม equity โดยไม่มีขีดจำกัด ความเสี่ยงเชิงโครงสร้าง (Slippage, Liquidity, Margin) จะเพิ่มแบบไม่ถูกควบคุม จึงต้องมีเพดานสูงสุดแยกจากตรรกะคำนวณตามความเสี่ยง

5. Decisions

  • ยกเลิก Input LotSize (Fixed Lot) แทนที่ด้วย RiskPercent (ค่าเริ่มต้น = 1% ของ Equity) ปรับได้ผ่าน Dialog Box
  • เพิ่มฟังก์ชัน CalculateLotSize() ด้วยสูตร: Lot Size = Risk Amount ÷ (Stop Loss ในหน่วย Pips × Money per Pip per Lot)
  • แก้ไขสูตร Pip Value ให้อิงตาม Point และ Tick Size/Tick Value ของสัญลักษณ์อย่างถูกต้อง
  • เพิ่ม Input MaxLotSize (ค่าเริ่มต้น = 1.0) เป็นเพดานบังคับ แยกจาก Volume Max ของโบรกเกอร์
  • กำหนดลำดับการปรับ Lot Size ชัดเจน: คำนวณจากความเสี่ยง → ปรับตาม Volume Step → ตรวจ Volume Min/Max ของโบรกเกอร์ → ตรวจ MaxLotSize ของผู้ใช้
  • เพิ่ม Log แจ้งเตือนเมื่อ Lot Size ถูกปรับลดเพราะชนเพดาน MaxLotSize โดยแยกข้อความจากกรณีชนเพดานของโบรกเกอร์
  • คงเงื่อนไขการเข้า-ออกออเดอร์เดิมทั้งหมดไว้โดยไม่แก้ไข (Dual ZigZag, Two-Candle Confirmation, Trailing Stop, Stop Level Validation)

6. Philosophy

บทสนทนานี้สะท้อนหลักการที่ว่า ขนาดของความเสี่ยงควรเติบโตไปพร้อมกับเงินทุนที่พิสูจน์แล้วว่ามีอยู่จริง แต่ต้องไม่เติบโตโดยปราศจากขอบเขต การเปลี่ยนจาก Fixed Lot เป็น Fixed Fractional Risk คือการยอมรับว่าความเสี่ยงควรสัมพันธ์กับสถานะปัจจุบันของบัญชี ไม่ใช่ตัวเลขตายตัว ขณะเดียวกัน การเพิ่ม MaxLotSize เป็นเพดานแยกต่างหาก คือการยืนยันว่าการเติบโตแบบสัดส่วนยังต้องอยู่ภายใต้กรอบที่กำหนดไว้ล่วงหน้าเสมอ — เป็นแนวคิดเรื่อง การเติบโตที่มีขอบเขตกำกับ (Bounded Scaling) ซึ่งแยกออกจากการขยายขนาดโดยไม่มีที่สิ้นสุด

7. Future Work

  • ตรวจสอบสูตร Pip Value กับสัญลักษณ์ประเภทอื่นที่ไม่ใช่ Forex มาตรฐาน (JPY pairs, Index CFD, Cryptocurrency)
  • เพิ่มการทดสอบย้อนหลัง (Backtest) เพื่อยืนยันว่า Lot Size สอดคล้องกับ Risk Percent ตลอดช่วงที่ Equity เปลี่ยนแปลง
  • พิจารณาบันทึก Equity Curve และ Lot Size History แยกต่างหาก เพื่อวิเคราะห์ความสัมพันธ์ระหว่างการเติบโตของพอร์ตกับพฤติกรรมการปรับขนาดโพซิชัน
  • ประเมินความจำเป็นของเพดานขั้นต่ำ (Min Lot Warning) ในกรณี Equity ลดลงจนคำนวณ Lot Size ต่ำกว่าค่าที่มีความหมายเชิงกลยุทธ์

8. Closing Note

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