บทความนี้เป็นบทความตามผลการโหวตแนะนำบทความจากบทความ Algorithmic Trading 101 โดยเราหวังว่าคุณจะเข้าใจพื้นฐานของ Algorithm Trade หุ้น และ ผลกำไรก่อน ถ้าพร้อมเเล้วไปเริ่มสร้างระบบเทรดหุ้นจากพื้นฐาน บทความนี้จะอธิบายทุก ๆ ขั้นตอนที่จำเป็นในการสร้างระบบเทรด เราจะใช้เครื่องมือเทรดที่เราชอบที่สุด คือ Amibroker ในการสร้างระบบเทรดอัตโนมัติ
ความรู้ที่ควรมีก่อน:
- ความรู้เทคนิคการวิเคราะห์
- ประสบการณ์ในการใช้งาน Amibroker และ AFL Coding
สอนการใช้งาน Amibroker คลิก
ขั้นตอนที่ 1: กำหนดแผนการเทรดของคุณ
ขั้นตอนแรกเป็นการสร้าง Checklist Parameters ตามที่คุณจะตัดสินใจในการซื้อขาย Parameters ที่เลือกควรเป็นสิ่งที่มาสร้างเป็น Algorithm ได้ โดยหลีกเลี่ยงความรู้สึกในการซื้อขาย หรือ การเก็งกำไร อาจจะทำได้ง่าย ๆ เพียงการตัดสินใจตามเวลา เช่น การซื้อหุ้นในวันเเรกของทุกเดือน หรือ การตัดสินใจโดยเทคนิค เช่น การเติบโตของ Trendline ที่เพิ่มขึ้น นอกจากนี้คุณควรวางแผนจำนวนเงินลงทุนสำหรับแต่ละการลงทุนตลอดเวลาในการซื้อขายตลอดจน stoploss และ เป้าหมายของคุณคุณควรตรวจสอบความถูกต้องกับกลุ่มหุ้นว่าสามารถใช้งานได้จริงหรือไม่ ขั้นตอนตอนนี้มีความสำคัญมากก่อนที่คุณจะก้าวสู่ขั้นตอนถัดไป หากแผนคุณทำงานได้ 50% ของเวลาทั้งหมด เท่ากับว่าคุณจะมีอัตราส่วนความเสี่ยงต่อการชนะอยู่ที่ 1:2 ก็เริ่มแปลงมันเป็น Algorithm ได้
ขั้นตอนที่ 2: แปลงแนวคิดของคุณให้เป็นAlgorithm
จากนั้น คุณควรเริ่มเขียนโค้ดสำหรับแผนการซื้อ code อย่างไรที่จะทำให้คอมพิวเตอร์สามารถเข้าใจ logic ใน ซื้อ / ขายของคุณ เราจะใช้ Amibroker Formula Language (AFL) สำหรับเขียน Trading Algorithm เป็นภาษาการเขียนโปรแกรมระดับสูงและง่ายมากที่จะเข้าใจ ถ้าคุณเริ่มต้นจากพื้นฐาน แม้กระทั่งคนที่ไม่เคยเขียนโปรแกรมมาก่อนที่ก็สามารถเรียนรู้ AFL ได้ และหลีกเลี่ยงการใช้จ่ายแพงที่ไม่จำเป็นในการซื้อ AFL สำเร็จรูป บทความจะนี้สอน AFL ตั้งแต่เริ่มต้น สมมุติว่าคุณซื้อขายกันตามค่าเฉลี่ยการครอสโอเวอร์แบบเสี้ยวรายวัน คุณจะซื้อหุ้นเมื่อ 50 EMA ผ่าน 200 EMA จากด้านล่าง และ ขายเมื่อ 50 EMA ผ่าน 200 EMA จากด้านบน เพื่อความง่ายให้พิจารณาว่าเป็นกลยุทธ์การซื้อเท่านั้น ด้านล่างนี้เป็นโค้ด AFL แบบง่าย ๆ สำหรับ logic นี้
_SECTION_BEGIN(“Simple Algorithmic Trading System”); //Parameters MALength1 = 50; MALength2 = 200; //Buy-Sell Logic Buy = Cross(ema( C, MALength1 ),ema( C, MALength2 )); Sell =Cross( ema( C, MALength2 ), ema( C, MALength1 )) ; Buy = ExRem( Buy, Sell ); Sell = ExRem( Sell, Buy ); Plot( Close, “Price”, colorWhite, styleCandle ); Plot(ema( C, MALength1 ),”FastEMA”,colorWhite); Plot(ema( C, MALength2 ),”SlowEMA”,colorBlue); _SECTION_END();
ขั้นตอนที่ 3: ทำ Backtest
การทำ Backtesting เป็นกระบวนการในการตรวจสอบประสิทธิภาพของ Algorithm ของคุณเกี่ยวกับข้อมูลย้อนหลัง สิ่งที่คล้ายกับสิ่งที่คุณทำในขั้นตอนที่ 1 Amibroker มีเครื่องมือที่มีประสิทธิภาพมากในการทำ backtest ซึ่งสามารถทำได้ในไม่กี่วินาที คุณเพียงแค่ต้องนำเข้าข้อมูลประวัติย้อนหลังของ Script ที่คุณชื่นชอบลงใน Amibroker คลิกลิงก์นี้เพื่อดาวน์โหลดข้อมูล Intraday 1 นาทีสำหรับ Nifty และ Banknifty
ในการทำ backtest EMA Crossover เราจะใช้ NSE Nifty เป็นเอกสารที่ต้องการโดยมีทุนจดทะเบียนเริ่มต้น 92,000 บาท ในราคาของปี 2018 สมมุติว่าเราซื้อ 2 ล็อต (150 nos) ต่อรายการ เมื่อทำตามขั้นตอนนี้คุณจะได้รับรายงานโดยละเอียดซึ่งรวมถึง CAGR รายปีการเบิกจ่ายรายได้ / ขาดทุนสุทธิ
Backtesting your Trading ideas in Amibroker
คุณสามารถอ่านพารามิเตอร์ต่างๆในรายงานผลการทดสอบ Amibroker Backtest report here.ได้จากตารางด้านล่าง
Parameter | Value |
Nifty | |
Initial Capital | 200000 |
Final Capital | 1037655 |
Backtest Period | 26-Mar-2002 to 23-July-2016 |
Net Profit % | 418.83% |
Annual Return % | 10.45% |
Number of Trades | 11 |
Winning Trade % | 54.55% |
Average holding Period | 227.91 days |
Max consecutive losses | 2 |
Max system % drawdown | -33.24% |
Max Trade % drawdown | -29.94% |
ผลลัพธ์ ไม่เลว แต่ยังมีการปรับปรุงอีกเล็กน้อย ทั้งนี้ ต้องคำนึงถึงความเสี่ยงด้วย เพราะระบบจะทำงานไปเรื่อย ๆ หากเราไม่หยุดอาจจะมีผลกับนักลงทุนรายย่อยที่ทุนไม่มากนัก
สรุปความรู้ที่ได้รับ
- การเขียน AFL
- การประยุกต์ใช้ประสบการณ์ในเทรดมาแปลงเป็นระบบเทรดอัตโนมัติ
ใน Part 2 เราจะมาลองปรับพารามิเตอร์ระบบดูครับ โปรดติดตามตอนต่อไป
หากไม่อยากรอต่อ Part 2
คอร์ส FINANCIAL ENGINEERING BOOTCAMP ที่จบมาสร้างระบบเทรดหุ้นได้จริง
“Boothcamp สำหรับคลาส Financial Engineering ครั้งแรกในเมืองไทย ใครอยากรู้เรื่อง Quant ที่ผู้เรียนจะได้ คำแนะนำวินัยการลงทุนที่เคร่งครัด, ไม่ต้องเฝ้าหน้าจอหลายจอ เพื่อดูหุ้นหลายตัวให้เหมื่อย และ การกระจายความเสี่ยง จากการเลือกลงทุนได้หลายกลยุทธ์
รายละเอียดเพิ่มเติมและสมัครที่นี่
หลักสูตรนี้เรียนกันทั้งหมด 10 ครั้ง รวม 30 ชั่วโมง จบมาทำงานได้จริง!!! สอบถามเพิ่มเติมได้ที่เพจ LEAN upskill