AmiBroker AFL Code Template โดย ThaiQuants เป็นตัวอย่างการเขียนโค้ดอย่างมีระบบ สำหรับผู้เริ่มใช้ AmiBroker และเริ่มเขียนโค้ด AFL ใน AmiBroker
โดยหลักการทั่วไป ThaiQuants แนะนำให้แบ่งโค้ดออกเป็นสัดส่วนอย่างชัดเจน ตามลำดับดังนี้
- OPTION การตั้งค่าต่างๆเพื่อทำการทดสอบ Backtesting อย่างถูกต้องและเหมาะสมกับสภาพตลาดไทย ด้วยการใช้ SetOption
- SIGNAL การสร้างเงื่อนไขการซื้อและขายหุ้น ด้วย Buy และ Sell อย่างเป็นระเบียบด้วย buyCon1, buyCon2, … และ sellCon1, sellCon2, …
- POSITION การวางแผน Money Management ด้วย PositionSize และ PositionScore ในการจัดสัดส่วนการลงทุนและจัดลำดับการลงทุน
- STOP การจำกัดความเสี่ยง Risk และลด System Max Drawdown ด้วย ApplyStop
วีดีโอ: AmiBroker AFL Code Template
สูตร: AmiBroker AFL Code Template
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
//By ThaiQuants.com {//OPTION SetOption("InitialEquity", 1000000); SetOption("MaxOpenPositions", 20);//100%/5% = 20 SetOption("MinShares", 100); RoundLotSize = 100; SetOption("CommissionMode", 1); SetOption("CommissionAmount", 0.2); SetTradeDelays(1, 1, 0, 0); BuyPrice = Open; SellPrice = Open; } {//MKC, Market Classification } {//SIGNAL buyCon1 = H > Ref(HHV(H, 100), -1);//Price buyCon2 = V > Ref(HHV(V, 100), -1);//Volume buyCon3 = MACD() > 0;//Indicator Buy = buyCon1 AND buyCon2 AND buyCon3; sellCon1 = MACD() < 0; Sell = sellCon1; } {//POSITION SetPositionSize(5, spsPercentOfEquity); PositionScore = C*V; } {//STOP ApplyStop(stopTypeLoss, stopModePercent, 10); ApplyStop(stopTypeTrailing, stopModePercent, 25); ApplyStop(stopTypeProfit, stopModePercent, 30); } {//MC, Monte Carlo Simulation } |
หลังจากดูวีดีโอนี้แล้วสนใจ สามารถศึกษาเพิ่มเติมเกี่ยวกับ AmiBroker ได้ที่ Introduction to AmiBroker for Everyone (VDO สอน)