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