อธิบายหลักการทำ Curve Fitting Management (CFM) แบบละเอียด

Oct 11, 2019 12:22:01 AM tanwa1991

เคยมั้ย ? ที่ปั้นพอร์ตเทรดจนโต แต่พอถึงช่วง ๆ หนึ่ง กำไรกลับติดลบหายไปเรื่อย ๆ

เรียกได้ว่าเป็นการทำกำไรที่ไม่ยั่งยืน ได้มาเท่าไหร่ ก็เสียไปเท่านั้นจนหมด ซึ่งเป็นปัญหาโลกแตกสำหรับนักเทรดในทุก ๆ ตลาด



Curve Fitting คืออะไร ?



Curve Fitting คือ การที่ Equity ใน Portfolio การเทรดของเรา มีการพุ่งขึ้นไปในช่วงเวลาที่สามารถทำกำไรได้ต่อเนื่อง
แต่พอพุ่งไปถึงจุด ๆ หนึ่ง แล้วเกิดการขาดทุน (Drawdown) จนทำให้ Equity ตกลงมาเรื่อย ๆ
จนกราฟ Equity มีลักษณะเหมือนกราฟระฆังคว่ำ ทำให้กำไรจากการเทรดที่ทำพอร์ตโตก่อนหน้านี้ ติดลบหายไปเรื่อย ๆ
เรียกได้ว่าเป็นการทำกำไรที่ไม่ยั่งยืน ได้มาเท่าไหร่ ก็เสียไปเท่านั้นจนหมด ซึ่งเป็นปัญหาโลกแตกสำหรับนักเทรดในทุก ๆ ตลาด



ปัจจัยที่ทำให้เกิด Curve Fitting

  • การ Cut Loss ต่อเนื่อง (Consecutive Loss)
    จำนวนครั้งในการ Cut Loss ต่อเนื่องของระบบเทรดแต่ละระบบ เป็นเรื่องที่ควบคุมยากมาก
    เนื่องจาก Pattern การเคลื่อนไหวของราคาเหรียญมีเปลี่ยนแปลงอยู่ตลอดเวลา
    ทำให้ผลงานการเทรดไม่คงเส้นคงวา และระบบเทรดที่มีประวัติ Consecutive Loss น้อย ๆ ในอดีต
    ก็ไม่สามารถการันตีได้ว่าในอนาคตจะไม่เกิด Consecutive Loss น้อยครั้ง เหมือนในอดีต
  • การ Cut Loss ครั้งเดียวแบบหนัก ๆ (ฺBig Loss)
    ถึงแม้ว่าจำนวนครั้งในการ Cut Loss ต่อเนื่อง (Consecutive Loss) ของระบบเทรดบางระบบจะน้อยมาก
    แต่ถ้าเราไม่ได้ FIX ค่า การ Cut Loss ไว้ ก็อาจจะโดน Cut Loss หนัก ๆ หลายร้อย % ในครั้งเดียวได้
  • การใช้ Trade Size สูง ๆ
    เมื่อเราคาดหวังผลกำไรที่สูงขึ้น โดยการตั้ง Trade Size ให้สูงขึ้น
    เวลาโดน Cut Loss แต่ละครั้งก็จะเกิด Drawdown มหาศาล และเกิด Curve Fitting ได้โดยง่าย

แนวทางแก้ปัญหา Curve Fitting สำหรับกลุ่ม CTC

ขอเรียกแนวทางนี้ว่า Curve Fitting Management (CFM) ซึ่งเป็นการทำ Money Management อย่างหนึ่ง

โดยมอง Equity Curve ใน Portfolio ให้เป็น Trend มีแนวโน้ม ขาขึ้น (Up Trend) , ขาลง (Down Trend) คล้าย ๆ กับการขึ้นลงของราคาเหรียญ


จากนั้นให้สร้างพอร์ตเทียมขึ้นมา เรียกว่า “Dummy Portfolio” โดยกำหนดก่อนว่าเราจะเอามาใช้กับระบบไหน

ยกตัวอย่างใช้กับระบบ Snipper ก็ให้สร้างบอทกลางขึ้นมารันระบบ Snipper เรียกบอทกลางนี้ว่า “Dummy Robot”

โดยจะรันไว้ตลอดเวลา แม้จะเทรดเสียก็ตาม อาจจะรันด้วยเงินจริงเพียงเล็กน้อย หรือรันระบบเทรดแบบ Demo แล้วทำระบบจำลอง Equity Curve ขึ้นมา

จากนั้นเอาเครื่องมือ Technical Analysis คือเส้นค่าเฉลี่ยเคลื่อที่ (MA) ไปจับ Trend ของ Equity Curve ใน Dummy Portfolio แล้วตั้งเงื่อนไขการทำงานดังต่อไปนี้

- BTC Equity Curve ของ Dummy Portfolio เป็น Trend ขาขึ้น (เส้น Equity อยู่เหนือเส้น MA) บอทของสมาชิกจะเข้าเทรดตาม Signal ตามปกติ

- BTC Equity Curve ของ Dummy Portfolio เป็น Trend ขาลง (เส้น Equity อยู่ต่ำกว่าเส้น MA) บอทของสมาชิกจะงดเทรดตาม Signal ชั่วคราว


แนวทางการทำระบบ CFM แบบอัตโนมัติ แบบที่ 1



ทางทีมงาน CTC จะสร้าง Dummy Robot ของแต่ละระบบ มารันใน Server กลาง แล้วคำนวณเส้น MA ไปจับ Trend ของ Equity Curve ของ Dummy Portfolio
ถ้า Trend Equity เป็นขาขึ้น ก็ให้ Server กลาง ส่งค่า Trade Size Limit ของไม้ถัดไป เป็น 5-10% ไปให้บอทระบบนั้น ๆ ของสมาชิกทุก ๆ คน
แต่ถ้า Trend Equity เป็นขาลง ให้ส่งค่า Trade Size Limit ของไม้ถัดไป เป็น 0% (งดเทรด) ไปให้บอทระบบนั้น ๆ ของสมาชิกทุก ๆ คน

แนวทางการทำระบบ CFM แบบอัตโนมัติ แบบที่ 2


ทางทีมงาน CTC จะสร้าง Dummy Robot ของแต่ละระบบ มารันใน Server กลาง แล้วให้บอทของสมาชิกแต่ละคน ดึงค่า Equity ไปพล็อตเป็นกราฟ Equity Curve

แล้วคำนวณเส้น MA ที่ตัว Client ถ้า Trend Equity เป็นขาขึ้น ก็ให้ Client Robot ตั้งค่า Trade Size Limit ของไม้ถัดไป เป็น 5-10%

แต่ถ้า Trend Equity เป็นขาลง ก็ให้ Client Robot ตั้งค่า Trade Size Limit ของไม้ถัดไป เป็น 0% (งดเทรด)


แนวทางการทำระบบ CFM แบบอัตโนมัติ แบบที่ 3

Crypto Tool เป็นโปรแกรม Third party ที่สร้างโดยคุณ Yossaphat Karnprajam มีไว้สำหรับริหารจัดการบอทของกลุ่ม CTC

ทางทีมงาน CTC จะสร้าง Dummy Robot ของแต่ละระบบ มารันใน Server กลาง แล้วส่งค่า Equity ไปให้โปรแกรม Crypto Tool ไปพล็อตเป็นกราฟ Equity Curve

แล้วคำนวณเส้น MA ที่ตัว โปรแกรม Crypto Tool ถ้า Trend Equity เป็นขาขึ้น ก็ให้โปแกรม Crypto Tool สั่ง Client Robot ให้ตั้งค่า Trade Size Limit ของไม้ถัดไป เป็น 5-10%

แต่ถ้า Trend Equity เป็นขาลง ก็ให้โปรแกม Crypto Tool ไปสั่ง Client Robot ตั้งค่า Trade Size Limit ของไม้ถัดไป เป็น 0% (งดเทรด)


การพล็อตกราฟ Equity Curve เลือกทำได้ 2 แบบ

แบบที่ 1 Time Base (เก็บค่าล่าสุด เป็นรอบ Time Frame)
กำหนดค่า Time Frame 1 Day คือใน 1 วัน เก็บค่า Dynamic Equity ล่าสุดมา 1 รอบ แล้วเก็บทุก ๆ วัน ในเวลาเดียวกัน

ตัวอย่าง
วันที่ 1 ต.ค. 2562 เวลา 07.00 น. = Dynamic Equity 0.10 BTC
วันที่ 2 ต.ค. 2562 เวลา 07.00 น. = Dynamic Equity 0.11 BTC
วันที่ 3 ต.ค. 2562 เวลา 07.00 น. = Dynamic Equity 0.12 BTC
วันที่ 4 . . .
วันที่ 5. . .

แล้วเอาค่าแต่ละวันมาคำนวณเส้น MA ซึ่งค่า Dynamic Equity จะเพิ่มลดตาม Un-Real Profit ของ Position ที่ถืออยู่ในขณะนั้นด้วย

รูปแบบนี้อาจจะมีข้อเสียคือ อาจจะมีปัญหาบางช่วงที่ Un-Real Profit ขึ้น ๆ ลง ๆ ตามราคาเหรียญ
ส่งผลให้เส้น Dynamic Equity ตัดเส้น MA ไป-มา จนสับสน

วิธีแก้คือ ต้องเพิ่ม Length ของเส้น MA ให้มากขึ้น เพื่อลดอาการตัดกลับไป-กลับมา

- - - - - - - -

แบบที่ 2 Position Base (เก็บค่าตามการ Close Position)
กรณีระบบเทรดระบบนั้น มีการเข้า-ออก Position มากสุดแค่ 1 ไม้
ตัวอย่าง
Close Position ครั้งที่ 1 = Equity 0.10 BTC
Close Position ครั้งที่ 2 = Equity 0.11 BTC
Close Position ครั้งที่ 3 = Equity 0.12 BTC
Close Position ครั้งที่ 4 . . .
Close Position ครั้งที่ 5. . .

แล้วเอาค่า Equity แต่ละครั้งมาคำนวณเส้น MA รูปแบบนี้อาจจะมีข้อเสียคือ อาจจะมีปัญหาบางช่วงที่มี Position ได้-เสีย สลับกัน

ส่งผลให้เส้น Equity ตัดเส้น MA ไป-มา จนสับสน วิธีแก้คือ ต้องเพิ่ม Length ของเส้น MA ให้มากขึ้น เพื่อลดอาการตัดกลับไป-กลับมา


ผลลัพธ์ที่คาดหวังจากการทำระบบ CFM

  • ลด MAX Drawdown จากการเกิด Consecutive Loss ในระบบเทรด
  • รักษาผลกำไรที่ทำไว้ในอดีต
  • มีตัวช่วยในการบริหาร Portfolio แบบอัตโนมัติ



    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -