Supawat Supakwong No Comments

หลังจากที่เราได้ทำการแนะนำแนวคิดของกลยุทธ์ทั้งห้าในตอนที่ 1 เป็นที่เรียบร้อยแล้ว วันนี้ Think Algo จะพามาเจาะลงในรายละเอียดของ ALGO 1: Highest High Trading System กัน

พร้อมแล้ว…ลุยเลย !

Key Concepts

เงื่อนไขในการซื้อของกลยุทธ์นี้จะอ้างอิงราคาปิด ณ วันปัจจุบัน เทียบกับ

  • (สำหรับการเข้าซื้อ) ราคาสูงสุดที่เกิดขึ้น (Highest High Value: HHV) เมื่อมองย้อนหลังกลับไป X วัน  และ
  • (สำหรับการขายออก) ราคาต่ำสุดที่เกิดขึ้น (Lowest Low Value: LLV) เมื่อมองย้อนหลังกลับไป Y วัน

ค่า HHV และ LLV นี้ทำหน้าที่เสมือนแนวต้านและแนวรับของราคา เมื่อใดก็ตามที่ราคาหุ้นมีการเคลื่อนที่ออกจากกรอบนี้ เราสามารถใช้จุดนี้เป็นสัญญาณเข้าซื้อหรือขายได้

BUY: ซื้อ เมื่อราคาปิดวันนี้ สูงกว่า ราคาสูงสุด (highest high) ที่เคยเกิดขึ้นมา (พิจารณาย้อนหลังไป X วัน)

f

SELL: ขาย เมื่อราคาปิดวันนี้ ต่ำกว่าราคาต่ำสุด (lowest low) ที่เคยเกิดขึ้นมา (พิจารณาย้อนหลังไป Y วัน)
2

Example

ลองมาดูตัวอย่างการเข้าซื้อหรือขายหุ้น AOT ด้วยกลยุทธ์นี้กันครับ  สมมุติผมให้ X = 50 วัน และ Y = 20 วันละกัน นั่นหมายความว่า ระบบของเราจะ

  • ทำการซื้อหุ้นเข้าพอร์ต เมื่อราคาปิดวันนี้เคลื่อนที่ขึ้นไปปิดสูงกว่าราคาสูงสุดที่เคยมีมา 50 วัน  และ
  • ทำการขายหุ้นออกไปเมื่อราคาวันนี้ตกลงไปติดต่ำกว่าราคาต่ำสุดที่เคยเกิดขึ้ยเมื่อพิจารณาย้อนหลังกลับไป 20 วัน
    Untitled

The BestX and Y

แน่นอนว่า คำถามที่อยู่ในใจเพื่อนๆ ตอนนี้ คือ เราควรตั้งค่า X และ Y เป็นเท่าไหร่ดี

หากผมอ้างอิงกลับไปที่ ASXMarketWatch เค้าตั้งค่าพารามิเตอร์นี้เป็น X = 85 วันและ Y = 35 วัน นี่คือค่าที่เค้าศึกษาแล้วว่าเหมาะสมกับตลาด ASX Market ที่ออสเตรเลีย 

แล้วตลาดบ้านเราล่ะ ค่า X และ Y ที่ดีและเหมาะสมควรจะเป็นเท่าไหร่ ?  

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

หากจะให้อธิบายเรื่องนี้ให้ละเอียด คงจะยาวครับ ฮ่าๆ (เอาเป็นว่า ถ้ามีคนสนใจกระบวนการทดสอบในส่วนนี้ ส่งเสียงมาได้ แล้วเดี๋ยวผมเขียนเพิ่มเติมให้) ขอสรุปสั้นๆ ให้ลองคิดละกันว่า

ข้อมูลที่เรามีอยู่ตอนนี้คือ ข้อมูลของราคาในอดีต

การเลือกค่าพารามิเตอร์ที่จะเฉพาะเจาะจงมากเกินไป

อาจจะกลายเป็นการ optimize เพื่อให้ได้

ผลตอบแทนสูงสุดกับการซื้อขายในอดีต

แต่อาจจะไม่สามารถทำเงินได้เลยกับราคา

ที่กำลังจะเกิดขึ้นในอนาคต!!!

เรียกปัญหานี้ว่า Overfitting

จากการที่ผมได้ทำการทดสอบมา จะขอเลือกใช้ค่า X และ Y เป็น 80 วัน และ 40 วัน ตามลำดับ  นั่นหมายความว่า

BUY: ซื้อ เมื่อราคาปิดวันนี้ สูงกว่า ราคาสูงสุด (highest high) ที่เคยเกิดขึ้นมา (พิจารณาย้อนหลังไป 80 วัน)

SELL: ขาย เมื่อราคาปิดวันนี้ ต่ำกว่าราคาต่ำสุด (lowest low) ที่เคยเกิดขึ้นมา (พิจารณาย้อนหลังไป 40 วัน)

อย่างที่ผมบอกไปนะครับ ค่า X และ Y นี้ ไม่ใช่ว่าอยู่ดีๆ ก็ลอยมา ค่าทั้งสองนี้มาจากการวิเคราะห์และทดสอบแล้ว ว่าเป็นค่าที่เหมาะสม (รายละเอียดการทดสอบเป็นยังไง ค่อยว่ากันอีกที)

Performance

ขอกำหนด setting เบื้องต้นตามนี้ คือ

  1. จำนวนหุ้นสูงสุดที่จะถือในพอร์ต (maximum positions) จะไม่เกิน 20 ตัว โดยหุ้นแต่ละตัวจะซื้อด้วยมูลค่าเท่าๆ กัน คือ 100/20 = 5% ของเงินในพอร์ตที่มี
  2. เมื่อเกิดสัญญาณซื้อหรือขาย เราจะเข้าซื้อ ณ ราคาเปิด (ATO) ของวันถัดไป
  3. หุ้นที่เราจะซื้อขาย (พิจารณาทั้งจาก SET และ MAI) ต้องมีมูลค่าการซื้อขายเฉลี่ยระหว่างวันมากกว่า 10 ล้านบาท (เพื่อเช็คว่าหุ้นนั้นๆ มีสภาพคล่อง) 
  4. ช่วงเวลาที่ทำการทดสอบ คือ ปี 20002013 รวม 14 ปี 
  5. ค่า commission 0.2 %

มาดูกันเลยว่ากลยุทธ์นี้จะเป็นเครื่องจักรทำเงินที่ดีมากน้อยขนาดไหน

  • อัตราผลตอบแทนเฉลี่ยต่อปี (Compound Annual Return: CAR)  27.1 %
  • ความเสี่ยงในรูป Maximum Drawdown (MDD) -37.2 %
  • โอกาสในการเทรดชนะในแต่ละครั้ง (% Winners) 41.1%

หากมองเฉพาะในส่วนอัตราผลตอบแทน ต้องถือว่า ALGO นี้สุดยอดไปเลย กำไรเฉลี่ยเกือบๆ 30% ต่อปี เป็นใครๆ ก็เอา (ผมด้วย ฮ่าๆ)

แต่ช้าก่อนครับ แล้วความเสี่ยงขาดทุนของ ALGO นี้ล่ะ มีมากน้อยขนาดไหน ?

หากวัดจากการย่อตัวสูงสุดของเงินในพอร์ตเรา ค่า Maximum Drawdown นั้นสูงถึง เกือบๆ -40% อันนี้ถือว่าสูงมากครับ

ผมเคยแนะนำไปว่า ค่านี้อยากให้ไม่เกินแถวๆ -20% เพราะนั่นน่าจะเป็นระดับสูงสุดที่นักลงทุนส่วนใหญ่จะพอรับได้แล้ว  (หากปล่อยให้ performance แกว่งไปมารุนแรงกว่านี้ โอกาสแหกกฎการลงทุนก็มีสูง)

ดังนั้น แม้ว่าเราจะพอใจในส่วนของผลตอบแทน ความเสี่ยงก็ยังคงต้องพัฒนาต่อไป….ทำยังไงดีล่ะ ?

Index Filter: ลงทุนเมื่อสภาพตลาดเป็นใจ

Index Filter คืออะไร?

หากมองตลาดบ้านเรา Index Filter ก็คือการใช้การเคลื่อนไหวของ SET Index เป็นตัวกรองว่า ณ ขณะนี้ สภาพตลาดเหมาะแก่การเข้าไปลงทุนหรือไม่ การลงทุนในวันที่สภาวะตลาดเป็นใจย่อมมีโอกาสทำกำไรได้มากกว่าในวันที่สภาพตลาดอึมครึม เต็มไปด้วยความหวาดกลัว

ดังนั้น เราจะลองเพิ่มอีกหนึ่งเงื่อนไขเข้าไปว่า เราจะซื้อหุ้นเข้าพอร์ตก็ต่อเมื่อ

Index Filter:  SET Index มีการเคลื่อนไหวอยู่สูงกว่าค่าเฉลี่ยย้อนหลัง 120 วันของตัวมันเอง

ตรงจุดนี้ อาจมีเพื่อนๆ ถามผมอีกว่า ทำไมต้องเป็น 120 วัน เป็นเลขอื่นได้มั้ย? อยากให้ไปลองปรับเล่นๆ กันได้เลยครับ

เหตุผลที่ผมเลือก 120 วัน เพราะ นั่นคือ จำนวนวันที่เราสามารถเทรดได้(โดยประมาณ) ใน 6 เดือน นั่นคือ ผมอยากเทรดเฉพาะในช่วงที่ SET เคลื่อนไหวอยู่เหนือค่าเฉลี่ย 6 เดือนของตัวมันเอง

มาดูผลกัน….

  • อัตราผลตอบแทนเฉลี่ยต่อปี (Compound Annual Return: CAR) 31.6  %
  • ความเสี่ยงในรูป Maximum Drawdown (MDD) -28.0 %
  • โอกาสในการเทรดชนะในแต่ละครั้ง (% Winners) 47.1%

สังเกตุว่า

  • อัตราผลตอบแทนเพิ่มมากขึ้น นั่นเป็นสิ่งที่ดีครับ (หมายความว่า เราไม่จำเป็นต้องอยู่ในตลาดตลอดเวลา เลือกลงทุนเฉพาะในช่วงที่สภาพตลาดเป็นใจ)
  • Maximum drawdown ดีขึ้นเล็กน้อย แต่ผมว่ามันยังต้องพัฒนาอยู่ (เป้าหมายคือ -20%)
  • % Winners อยู่ประมาณ 50% นั่นคือ ในการเทรดแต่ละครั้ง โอกาสชนะกับแพ้นี้พอๆ กัน เพียงแต่ถ้าชนะจะได้กำไรเยอะ แต่ขาดทุนจะขาดทุนน้อย จึงทำให้ในระยะยาวผลตอบแทนเป็นบวก

ลองดู Equity Curve กันครับ สมมุติว่าเราตั้งต้นด้วยเงิน 1 ล้านบาท ในวันแรกที่เริ่มเทรดในปี 2000 สังเกตุการเติบโตของเงินครับ

4

ส่วน drawdown ณ ช่วงเวลาต่างๆ รูปร่างประมาณนี้เลย

5

เป็นเพราะว่าตลาดมันขึ้นอยู่แล้วหรือเปล่า ผลตอบแทนถึงดูดีขนาดนี้??? 

ถ้าอย่างนั้น ลองเปรียบเทียบกับ SET Index ในช่วงเวลาดังกล่าวกันครับ

  • อัตราผลตอบแทนเฉลี่ยต่อปี (Compound Annual Return: CAR) 7.10  %
  • ความเสี่ยงในรูป Maximum Drawdown (MDD) -57.47 %

Equity curve ของ Buy&Hold Strategy จะประมาณนี้

6

และ Maximum Drawdown

7

จะเห็นว่า

  • ในภาพรวม ช่วงเวลาดังกล่าว ตลาดอยู่ในสภาวะขาขึ้น แต่ก็มีช่วงสะดุดแรงๆ บ้าง ประมาณปี 2008-2009
  • ในเชิงผลตอบแทน ALGO Highest High ของเรา เอาชนะตลาดได้พอสมควร (มากเลยแหละ ฮ่าๆ)
  • ในเชิงความเสี่ยง Maximum Drawdown ของ ALGO Highest High แม้จะยังสูงอยู่ในสายตาของเรา แต่ก็ยังคงดีกว่าการซื้อแล้วถือยาว 

แล้วอย่างไรต่อ?

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

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

เทรดเดอร์ทั่วไป

อาจใช้เวลา 80 เปอร์เซ็นต์ที่มี

ในการเฝ้าหน้าจอดูการเคลื่อนไหวของราคา 

ในขณะที่นักพัฒนากลยุทธ์ 

เราจะใช้ 80 เปอร์เซ็นต์ของเวลานี้ 

กับกระบวนการวิจัย พัฒนา และทดสอบกลยุทธ์

(สรุปคือ ไม่มีเวลาเหลือเหมือนเดิม ฮ่าๆๆ)

ท้ายที่สุด…

Think Algo เราจัดตั้งขึ้นมาด้วยวัตถุประสงค์ในการสร้างสังคมนักลงทุนคุณภาพ  เราใช้เวลาในทุกๆ รายละเอียดเพื่อให้ผลงานออกมามีคุณภาพดี

กำลังใจจากเพื่อนๆ จะช่วยให้เราอดหลับอดนอนในการปั่นผลงานดีๆ ออกมาเรื่อยๆ ดังนั้น หากคิดว่าบทความนี้ดีและเป็นประโยชน์ แชร์เลยครับ

ซัก 2,000 แชร์ นะครับ แล้วจะอดนอนอีกคืน 😂  นั่งเขียนบทความหนุกๆให้อีก 😁 

โชคดีในการเทรดครับ

Dr. Supawat Supakwong

nine-1

think algo_logo