Kelly criterion และ optimal f: สูตรขนาดไม้ที่โตเร็วสุด แต่ใช้เต็มไม่ได้
ที่มาของสูตร Kelly ปี 1956 วิธีคิด f* = p − q/b ทำไม Kelly เต็มทำให้ drawdown ลึกเกิน 80% หน้าผาที่ 2 เท่าของ Kelly และทำไมเสี่ยง 0.5–1% ต่อไม้ถึงเป็นคำตอบที่ใช้ได้จริง
- Kelly คือสัดส่วนเสี่ยงต่อไม้ที่ทำให้พอร์ตโตเร็วที่สุดในระยะยาว คิดจาก f* = p − q ÷ b แต่เป็นจุดสูงสุดของการเติบโต ไม่ใช่จุดที่คนทนได้
- แม้ตัวเลขถูกเป๊ะ Kelly เต็มในการจำลอง 500 ไม้ให้ drawdown ลึกสุดค่ากลาง 83% ครึ่ง Kelly ได้การเติบโต 75% ของ Kelly เต็ม แต่ drawdown ตื้นกว่ามาก
- เกินราว 2 เท่าของ Kelly พอร์ตหดในระยะยาวทั้งที่ระบบยังได้เปรียบ และอัตราชนะที่ประเมินสูงไปแค่ 5 จุดก็พาไปถึงหน้าผานี้ได้
- อัตราชนะจากผล 100 ไม้คลาดได้ราว ±5 จุด ทำให้ Kelly ที่คำนวณได้ผิดไปได้หลายเท่า ใช้ Kelly เป็นเพดานบน แล้วเสี่ยงจริงต่ำกว่านั้นมาก
Kelly criterion คือสูตรที่บอกว่าควรเสี่ยงกี่ % ของพอร์ตต่อไม้ ถ้าอยากให้พอร์ตโตเร็วที่สุดในระยะยาว ฟังดูเป็นคำตอบสุดท้ายของเรื่องขนาดไม้ แต่สูตรนี้มีเงื่อนไขซ่อนอยู่สองข้อ คือต้องรู้ความได้เปรียบจริงแน่นอน และต้องทน drawdown ที่ลึกมากได้ บทนี้คำนวณให้ดูว่า Kelly มาจากไหน ใช้ยังไง ทำไมเต็มสูตรถึงอันตราย และทำไมคนที่เข้าใจมันดีที่สุดถึงเสี่ยงต่ำกว่ามันหลายเท่า
ถ้ายังไม่เคยอ่านเรื่อง volatility drag และโหนกของการเติบโต เริ่มจาก ทบต้นขนาดไม้ยังไงให้พอร์ตโต ก่อน บทนี้ต่อจากตรงนั้น
Kelly มาจากไหน
ปี 1956 J. L. Kelly Jr. นักวิจัยที่ Bell Labs ตีพิมพ์บทความ “A New Interpretation of Information Rate” ใน Bell System Technical Journal เขาไม่ได้เขียนเรื่องการเทรด แต่ถามว่า นักพนันที่ได้ข้อมูลล่วงหน้าผ่านสายสัญญาณที่มีสัญญาณรบกวน ควรแทงเท่าไรต่อรอบ คำตอบคือ ให้แทงสัดส่วนของทุนที่ทำให้ ค่าเฉลี่ยของ log ของทุน โตเร็วที่สุด และอัตราโตสูงสุดนั้นผูกกับปริมาณข้อมูลที่ได้เปรียบพอดี
หลังจากนั้น Edward Thorp นำแนวคิดนี้ไปใช้กับแบล็กแจ็ก แล้วต่อมาใช้ในตลาดการเงิน สูตรนี้จึงกลายเป็นที่รู้จักในวงการเทรด
ประเด็นสำคัญที่คนมักลืม Kelly ไม่ได้ทำให้กำไรเฉลี่ยมากที่สุด (ถ้าอยากได้กำไรเฉลี่ยสูงสุดต้องแทงหมดหน้าตัก ซึ่งพังแน่นอน) มันทำให้ อัตราโตแบบทบต้น สูงสุด ซึ่งเป็นสิ่งที่พอร์ตจริงประสบ
สูตร f* = p − q ÷ b และตัวอย่าง
สำหรับระบบที่ผลมีสองแบบ ชนะได้ b เท่าของที่เสีย หรือแพ้เสีย 1 ส่วน
- p = อัตราชนะ, q = 1 − p = อัตราแพ้
- b = กำไรเฉลี่ยไม้ชนะ ÷ ขาดทุนเฉลี่ยไม้แพ้ (คือ RR ที่เกิดจริง)
- f* = สัดส่วนของพอร์ตที่ยอมเสียถ้าโดน Stop loss
f = p − q ÷ b* หรือเขียนอีกแบบว่า f = ความได้เปรียบต่อไม้ ÷ b*
ตัวอย่าง ระบบสมมติที่รู้ตัวเลขแน่นอน ชนะ 45% ไม้ชนะได้ +1.5R ไม้แพ้เสีย −1R
- ความได้เปรียบต่อไม้ (Expectancy) = 0.45 × 1.5 − 0.55 × 1 = 0.675 − 0.55 = +0.125R
- f* = 0.45 − 0.55 ÷ 1.5 = 0.45 − 0.3667 = 0.0833 หรือ 8.33%
- ตรวจด้วยอีกรูปแบบ: 0.125 ÷ 1.5 = 0.0833 ตรงกัน
- พอร์ต 10,000 ดอลลาร์ Kelly บอกให้วาง lot ที่ถ้าโดน Stop loss แล้วเสีย 833 ดอลลาร์ ไม่ใช่ซื้อ 8.33% ของพอร์ต วิธีแปลงเป็น lot อยู่ใน คำนวณขนาดไม้จากระยะ Stop loss
ทำไมจุดนี้ถึงโตเร็วสุด อัตราโตต่อไม้คือ g(f) = p × ln(1 + b × f) + q × ln(1 − f) ที่ f = 8.33% ได้ g = 0.00515 ต่อไม้ หรือพอร์ตค่ากลางโต e^(100 × 0.00515) = 1.67 เท่าต่อ 100 ไม้ ทุกค่า f อื่นได้น้อยกว่านี้ ทั้งต่ำกว่าและสูงกว่า
ระบบนี้ได้เปรียบสูงกว่าระบบจริงส่วนใหญ่มาก ใช้เพื่อให้เห็นคณิตศาสตร์ชัด ๆ ไม่ใช่ผลตอบแทนที่ควรคาดหวัง
หน้าผาที่ 2 เท่าของ Kelly
| เสี่ยงต่อไม้ | เท่าของ Kelly | อัตราโต เทียบ Kelly เต็ม | พอร์ตโตต่อ 100 ไม้ (ค่ากลาง) |
|---|---|---|---|
| 2.08% | 0.25× | 44% | +25.5% |
| 4.17% | 0.5× | 75% | +47.3% |
| 8.33% | 1× | 100% | +67.3% |
| 12.5% | 1.5× | 76% | +47.6% |
| 16.67% | 2× | 3% | +1.4% |
| 20.83% | 2.5× | ติดลบ | −45.8% |
| 25% | 3× | ติดลบ | −77.5% |
อ่านตารางนี้สามข้อ
- โหนกไม่สมมาตรในเรื่องความเจ็บ เสี่ยง 1.5 เท่าของ Kelly ได้อัตราโตเท่ากับครึ่ง Kelly (ราว 75%) แต่ในการจำลองหัวข้อถัดไป drawdown ลึกสุดค่ากลางคือ 95.5% เทียบกับ 53.9% ได้เท่ากันแต่เจ็บกว่าเยอะ ถ้าจะพลาด ให้พลาดฝั่งต่ำ
- การเติบโตเป็นศูนย์ที่ราว 2 เท่าของ Kelly ในตัวอย่างนี้จุดตัดอยู่ที่ 16.78% หรือ 2.01 เท่า ระบบที่ได้เปรียบบางจุดตัดจะเข้าใกล้ 2 เท่าพอดี
- เกินจากนั้นพอร์ตหดในระยะยาว ทั้งที่แต่ละไม้ยังได้เปรียบ +0.125R เพราะการขาดทุนแบบคูณกินมากกว่ากำไรที่ได้
Kelly เต็ม แม้ตัวเลขถูก ก็เจ็บมาก
สุ่มลำดับผล 20,000 รอบ รอบละ 500 ไม้ จากระบบเดียวกัน (ชนะ 45% ได้ 1.5R เสีย 1R) แล้ววัดพอร์ตปลายทางและ drawdown ลึกสุดระหว่างทาง
| เสี่ยงต่อไม้ | พอร์ตจบ ค่ากลาง | พอร์ตจบ แย่ 10% | DD ลึกสุด ค่ากลาง | DD แย่ 10% | โอกาส DD ถึง 50% | โอกาสจบต่ำกว่าทุน |
|---|---|---|---|---|---|---|
| 0.5% | ×1.35 | ×1.14 | 8.0% | 12.3% | 0% | 1.3% |
| 1% | ×1.80 | ×1.27 | 15.7% | 23.5% | 0% | 1.6% |
| ¼ Kelly 2.08% | ×3.11 | ×1.50 | 30.6% | 43.8% | 4.0% | 2.7% |
| ½ Kelly 4.17% | ×6.94 | ×1.64 | 53.9% | 71.1% | 63.0% | 4.8% |
| Kelly 8.33% | ×13.1 | ×0.75 | 83.0% | 94.6% | 100% | 13.1% |
| 2× Kelly 16.67% | ×1.07 | ×0.004 | 99.3% | 100% | 100% | 48.4% |
“แย่ 10%” คือค่าที่ 10% ของรอบสุ่มแย่กว่านั้น (เปอร์เซ็นไทล์ที่ 10 สำหรับพอร์ตจบ ที่ 90 สำหรับ DD)
ทำไม Kelly เต็มลึกขนาดนี้ ในระบบที่ชนะ 45% แพ้ติดกันยาวสุดใน 500 ไม้ค่ากลางคือ 9 ไม้ และราว 16% ของรอบเจอ 12 ไม้ขึ้นไป ที่ Kelly เต็ม แพ้ 9 ไม้ติดพอร์ตหาย 1 − 0.9167⁹ = 54.3% แพ้ 12 ไม้ติดหาย 64.8% ส่วนที่เสี่ยง 1% แพ้ 9 ไม้ติดหายแค่ 8.6% เรื่องความยาวของการแพ้ติดอ่านต่อใน แพ้ติดกันหลายไม้เป็นเรื่องปกติ
ตัวเลขพอร์ตจบของ Kelly เต็มยังหลอกตาอีกชั้น ค่ากลาง ×13.1 แต่ 10% ของรอบจบต่ำกว่า ×0.75 และ 13% จบขาดทุนทั้งที่เทรดระบบได้เปรียบสูงมาก 500 ไม้ ส่วน 2 เท่าของ Kelly ค่ากลางแทบเท่าทุน แต่การกระจายกว้างเหมือนลอตเตอรี่ ครึ่งหนึ่งจบขาดทุน และ 10% เหลือไม่ถึง 0.4% ของทุน
ประเมินอัตราชนะพลาดนิดเดียว Kelly พลาดหลายเท่า
ทั้งหมดข้างบนสมมติว่ารู้ p และ b จริง ในชีวิตจริงเรารู้แค่ค่าที่วัดได้จาก backtest หรือประวัติเทรด
แบบที่ 1: เชื่อตัวเลขผิดไปเล็กน้อย ระบบจริงชนะ 45% (b = 1.5)
| อัตราชนะที่เชื่อ | Kelly ที่คำนวณ | เท่าของ Kelly จริง | พอร์ตโตจริงต่อ 100 ไม้ (ค่ากลาง) |
|---|---|---|---|
| 45% (ถูก) | 8.33% | 1.0× | +67.3% |
| 47% | 11.67% | 1.4× | +54.4% |
| 50% | 16.67% | 2.0× | +1.4% |
| 55% | 25.0% | 3.0× | −77.5% |
เชื่อว่าชนะ 50% แทน 45% ผิดแค่ 5 จุด ก็พาไปยืนบนหน้าผาพอดี เพราะ f* ไวต่อ p มาก ทุก 1 จุดของอัตราชนะเปลี่ยน f* ไป (1 + 1 ÷ b) จุด ที่ b = 1.5 คือ 1.67 จุด ขณะที่ f* ทั้งก้อนมีแค่ 8.33 จุด
แบบที่ 2: วัดจากผล 100 ไม้ ถ้าอัตราชนะจริงคือ 45% อัตราชนะที่วัดได้จาก 100 ไม้มีส่วนเบี่ยงเบนมาตรฐาน √(0.45 × 0.55 ÷ 100) = 5.0 จุด คำนวณความน่าจะเป็นตรงจากการแจกแจงทวินาม
- 18.3% ของโอกาส วัดได้ 40% หรือต่ำกว่า Kelly ออกมาเป็นศูนย์หรือติดลบ ดูเหมือนระบบไม่มีเปรียบ ทั้งที่มี
- 18.3% ของโอกาส วัดได้ 50% ขึ้นไป Kelly ที่คำนวณได้ 2 เท่าของค่าจริงหรือมากกว่า
- ถ้าเป็นผล 300 ไม้ ส่วนเบี่ยงเบนลดเหลือ 2.9 จุด โอกาสได้ Kelly 2 เท่าขึ้นไปลดเหลือ 4.7% ยังไม่ใช่ศูนย์ และนี่ยังสมมติว่ารู้ b แน่นอน
แล้วถ้าเอา Kelly ที่วัดได้จาก 100 ไม้ไปเทรดจริง 500 ไม้ (สุ่ม 20,000 รอบ แต่ละรอบวัด p ใหม่จาก 100 ไม้ของตัวเอง รอบที่ได้ Kelly ≤ 0 ไม่เทรด)
| ใช้กี่ส่วนของ Kelly ที่วัดได้ | พอร์ตจบ ค่ากลาง | DD ลึกสุด ค่ากลาง | โอกาส DD ถึง 50% | โอกาสจบต่ำกว่าทุน |
|---|---|---|---|---|
| เต็ม | ×2.34 | 81.9% | 70.0% | 22.0% |
| ครึ่ง | ×3.37 | 52.8% | 52.7% | 6.9% |
| หนึ่งในสี่ | ×2.33 | 29.9% | 22.6% | 2.6% |
เมื่อตัวเลขไม่แน่นอน Kelly เต็มไม่ใช่จุดที่โตเร็วสุดอีกต่อไป ครึ่ง Kelly ได้ค่ากลางสูงกว่า (×3.37 เทียบ ×2.34) และโอกาสจบขาดทุนน้อยกว่าสามเท่า ค่าที่ “ดีที่สุด” ตามทฤษฎีกลายเป็นค่าที่เกินไปทันทีที่มีความไม่แน่นอน และในการเทรดจริงยังมีเรื่องที่โมเดลนี้ไม่ได้รวม: ผล backtest มักดีกว่าเทรดจริง (อ่าน ทำไมผล backtest ไม่เท่ากับเทรดจริง) ตลาดเปลี่ยนสภาพได้ และขาดทุนบางไม้ใหญ่กว่า 1R เพราะ slippage หรือ gap ทั้งหมดนี้ทำให้ Kelly จริงเล็กกว่าที่คำนวณ ไม่ใช่ใหญ่กว่า เรื่องต้องใช้กี่ไม้ถึงจะเชื่อตัวเลขได้ อ่าน ต้องมีกี่ไม้ถึงพอ
Kelly ที่คำนวณจากผลทดสอบคือเพดานบนที่มองโลกในแง่ดี ไม่ใช่เป้าหมาย ถ้าค่าจริงต่ำกว่าที่คิด การเสี่ยงเต็มตัวเลขนั้นอาจเท่ากับยืนอยู่บนหน้าผา 2 เท่า
Optimal f ของ Ralph Vince
ปี 1990 Ralph Vince เสนอ optimal f ในหนังสือ Portfolio Management Formulas แนวคิดคือ ระบบเทรดจริงไม่ได้มีผลแค่สองแบบ ไม้ชนะและแพ้มีหลายขนาด จึงไม่ย่อเป็น p กับ b แต่ใช้รายการผลเทรดทุกไม้ตรง ๆ
- หาขาดทุนที่ใหญ่ที่สุดในรายการ (Largest loss)
- สำหรับแต่ละ f คำนวณ TWR = ผลคูณของ (1 + f × ผลไม้นั้น ÷ ขนาดขาดทุนใหญ่สุด) ทุกไม้
- f ที่ให้ TWR สูงสุดคือ optimal f แล้วเปิด 1 หน่วยต่อทุกพอร์ต (ขาดทุนใหญ่สุด ÷ f) ดอลลาร์
ตัวอย่าง ผล 12 ไม้ที่ขนาด 0.10 lot (ดอลลาร์): +420, −120, +180, −200, −90, +260, −300, +150, −150, +600, −110, −160 รวม +480 ชนะ 5 แพ้ 7 ขาดทุนใหญ่สุด −300
- ไล่ f ทีละ 0.001 ได้ optimal f = 0.191 TWR = 1.158 (ที่ f = 0.10 ได้ 1.121 ที่ f = 0.60 ได้ 0.604 คือขาดทุน)
- หน่วยละ 300 ÷ 0.191 = 1,571 ดอลลาร์ พอร์ต 10,000 จึงเปิด 6.37 หน่วย หรือราว 0.64 lot
- ถ้าเจอขาดทุนเท่าที่เคยเจอใหญ่สุด (−300 ต่อ 0.10 lot) พอร์ตหาย 19.1% ในไม้เดียว
- ถ้าวันหนึ่งเจอขาดทุน −600 ซึ่งไม่เคยอยู่ในรายการ พอร์ตหาย 38.2%
เมื่อผลมีสองแบบ optimal f ให้คำตอบเดียวกับ Kelly จุดอ่อนจึงเหมือนกัน และมีเพิ่มอีกข้อ ค่า f ผูกกับขาดทุนใหญ่สุดที่เคยเห็น ซึ่งเป็นตัวเลขที่ไม่เสถียรที่สุดในรายการ ขาดทุนไม้ต่อไปใหญ่กว่าในอดีตได้เสมอ อ่านเรื่องหางอ้วนใน Fat tails และ Black swan
คำตอบที่ใช้ได้จริง: fractional Kelly หรือเสี่ยงคงที่ 0.5–1%
บทเรียนจาก Kelly ไม่ใช่ “เสี่ยง 8%” แต่คือสามข้อนี้
- มีเพดาน ความเสี่ยงเกิน Kelly ไม่ได้อะไรเพิ่มนอกจาก drawdown และเกินสองเท่าพอร์ตหด
- ต่ำกว่า Kelly ราคาถูก ครึ่ง Kelly เสียอัตราโตไปแค่ 25% แต่ตัด drawdown ลงมาก หนึ่งในสี่ Kelly เหลืออัตราโต 44%
- ตัวเลขที่ใส่ไม่แน่นอน ยิ่งไม่แน่นอน ส่วนของ Kelly ที่เหมาะยิ่งเล็ก
วิธีทำในทางปฏิบัติ
- คำนวณ Kelly จากผลแบบระมัดระวัง ใช้อัตราชนะที่หักลงแล้ว เช่น ลบ 1 ส่วนเบี่ยงเบนมาตรฐาน (จาก 100 ไม้ราว 5 จุด) และใช้ b หลังหัก spread แล้ว
- เสี่ยงจริงไม่เกินหนึ่งในสี่ของค่านั้น และไม่เกินเพดานคงที่ที่ตั้งไว้ เช่น 1%
- สำหรับคนส่วนใหญ่ เสี่ยงคงที่ 0.5–1% ต่อไม้ก็พอ ในตัวอย่างนี้ 1% คือแค่ 0.12 เท่าของ Kelly ได้พอร์ตโตค่ากลาง ×1.80 ใน 500 ไม้ DD ลึกสุดค่ากลาง 15.7% ระบบที่ได้เปรียบบางกว่า เช่น ตัวอย่างชนะ 35% ที่ 2R ในบททบต้น Kelly คือ 2.5% เสี่ยง 1% ก็เท่ากับ 0.4 เท่าของ Kelly อยู่ในช่วงที่ปลอดภัยแล้ว เหตุผลเรื่อง 1% อ่านใน ทำไมหลายคนเสี่ยงแค่ 1% ต่อไม้
- นับความเสี่ยงรวม ไม่ใช่ต่อไม้ Kelly คิดทีละไม้ ถ้าเปิดหลายไม้ที่ไปทางเดียวกัน ความเสี่ยงคือผลรวม อ่าน ความสัมพันธ์ของคู่เงินกับความเสี่ยงรวมของพอร์ต
- ดูโอกาสพังร่วมด้วย ขนาดไม้ที่เลือกต้องผ่านทั้งเรื่องการเติบโตและโอกาสที่ drawdown จะแตะระดับที่คุณยอมไม่ได้ อ่านต่อใน Risk of ruin และลองสุ่มกับผลเทรดของคุณเองด้วย Monte Carlo
คำถามที่ถูกไม่ใช่ “เสี่ยงเท่าไรถึงโตเร็วที่สุด” แต่คือ “เสี่ยงเท่าไรที่ถ้าตัวเลขของฉันผิด ฉันก็ยังอยู่รอดและเทรดต่อได้”
ข้อผิดพลาดที่เจอบ่อย
- ใส่ RR ที่วางแผนแทน RR ที่เกิดจริง b ต้องเป็นกำไรเฉลี่ยไม้ชนะ ÷ ขาดทุนเฉลี่ยไม้แพ้ หลังหัก spread และ slippage
- คิดว่า f คือ % ของพอร์ตที่ใช้เปิด lot* f* คือเงินที่เสียถ้าโดน Stop loss ไม่ใช่ margin หรือมูลค่าสัญญา
- คิด Kelly จากไม้ไม่กี่สิบไม้ อัตราชนะคลาดได้หลายจุด Kelly ที่ได้อาจสองเท่าของจริง
- ใช้ Kelly ทีละไม้แต่เปิดหลายไม้พร้อมกัน ไม้ที่สัมพันธ์กันรวมแล้วอาจเกิน Kelly ทั้งที่แต่ละไม้ดูเล็ก
- คิดว่าเกิน Kelly นิดหน่อยแค่โตช้าลงนิดหน่อย ฝั่งเกินทั้งโตช้าลงและเจ็บกว่ามาก ที่ 1.5 เท่า DD ลึกสุดค่ากลาง 95.5% ในการจำลองของเรา
- ใช้ optimal f จากขาดทุนใหญ่สุดในอดีต ขาดทุนที่ใหญ่กว่าที่เคยเห็นมาได้เสมอ ไม้นั้นคือไม้ที่ทำให้พอร์ตพัง
คำถามที่พบบ่อย
Kelly บอกให้เสี่ยง 8% ต่อไม้ ควรทำตามไหม
ไม่ควร ตัวเลข Kelly ถูกต้องเฉพาะเมื่อรู้อัตราชนะและ RR จริงแน่นอน ซึ่งเทรดเดอร์ไม่มีทางรู้ และแม้รู้จริง Kelly เต็มก็ทำให้ drawdown ลึกเกินครึ่งพอร์ตแทบทุกรอบในการจำลองของเรา ใช้ Kelly เป็นเพดานที่ห้ามเกิน แล้วเสี่ยงจริงแค่เศษเล็ก ๆ ของมัน
optimal f ต่างจาก Kelly อย่างไร
optimal f ของ Ralph Vince คือ Kelly แบบที่ใช้ผลเทรดทุกไม้จริงแทนการสรุปเป็นอัตราชนะกับ RR ค่า f คิดเทียบกับขาดทุนที่ใหญ่ที่สุดในประวัติ จึงมีปัญหาเดียวกับ Kelly เต็ม คือ drawdown ลึก และพังได้ถ้าเจอขาดทุนที่ใหญ่กว่าที่เคยเห็น
ถ้าคำนวณ Kelly ได้ติดลบหมายถึงอะไร
หมายถึงตัวเลขที่ใส่ไปไม่มีความได้เปรียบ ไม่มีขนาดไม้ไหนทำให้พอร์ตโตได้ ทางเดียวคือไม่เทรดระบบนั้น แต่ถ้าตัวเลขมาจากไม้ไม่กี่ไม้ ค่าติดลบหรือบวกก็ยังเชื่อไม่ได้ทั้งคู่
เนื้อหานี้เป็นความรู้ทั่วไป ไม่ใช่คำแนะนำการลงทุน การเทรดมีความเสี่ยง อาจสูญเสียเงินลงทุนทั้งหมด