เอกสารรวบรวมคำถามและคำตอบด้านระบบเทรดจาก นศ เกือบร้อยคนภายในสิบปี คำถามมีตั้งแต่สำหรับมือใหม่ไปจนถึงผู้ที่เชี่ยวชาญ โดยเน้นการใช้โปรแกรม AmiBroker, Excel และ VBA ทั้งกระนั้น องค์ความรู้นี้ยังสามารถนำไปต่อยอด เพื่อสร้างระบบเทรดในโปรแกรมหรือภาษาอื่นๆได้เช่นกัน
คำถาม (Q) คำตอบ (A) ในเอกสารนี้ถูกคงไว้ใกล้เคียงต้นฉบับ และเว้นชื่อ นศ เพื่อความเป็นส่วนตัว มีการเพิ่มคำบรรยายจากเอไอ (AI) ที่ถูกสร้างขึ้นมาโดยเฉพาะด้วยองค์ความรู้ที่สอนให้ นศ ในคอร์สนั้นๆ ซึ่งผู้สนใจสามารถเข้าไปลองใช้งานได้ที่ Custom ChatGPT ทั้งด้านคอนเซ็ปต์ ด้านโค้ด และด้านควอนท
ผมแนะนำให้อ่านจับใจความและคำสำคัญต่างๆ (Terminology) เวลาสงสัยอะไร ก็ให้ลองค้นหาในเอกสาร หรือถาม ChatGPT เนื่องจากเวลาของผมมีจำกัด ในขณะที่เนื้อหา/คำถาม/คำตอบมีจำนวนเยอะมาก ผมเลยไม่ได้เรียบเรียงลำดับและตรวจสอบอย่างที่ผมต้องการจริงๆ ถ้ามีข้อผิดพลาดอะไร ผมขอน้อมรับไว้
ผมหวังว่าเอกสารนี้จะช่วยคนไทยที่สนใจระบบเทรดได้ และผมอยากให้ดูความตั้งใจของ นศ เหล่านี้ ว่ามีความพยายาม มุมานะมากขนาดไหน ตัวผมเองก็ได้รับแรงบันดาลใจเช่นกันในตอนจัดทำเอกสารฉบับนี้ ผมรู้ว่าดีว่า นศ ที่ต้องเริ่มต้นจากศูนย์มันเหนื่อยแค่ไหน แต่เมื่อผ่านมาได้แล้ว ความสำเร็จก็ถือว่าคุ้มค่ามาก
ดาวน์โหลดเอกสาร 365 Questions & Answers Algorithmic Trading Systems
Podcast 30 Episodes เนื้อหาจากเอกสารข้างต้น แล้วสรุปด้วย NotebookLM
(เน้นครับ ว่าไม่ได้ให้ AI ไปสร้างเนื้อหาขึ้นมาเอง)
Terminology
ThaiQuants เป็น กลุ่มนักพัฒนาและนักวิจัยด้าน Algorithmic Trading Systems ในประเทศไทย ที่เน้นการใช้ AmiBroker โค้ดด้วยภาษา AFL และ Quantitative Analysis ในการทดสอบและสร้างระบบเทรด
AFL (AmiBroker Formula Language) คือ ภาษาสคริปต์ที่ใช้ใน AmiBroker สำหรับสร้างระบบเทรดอัตโนมัติ วิเคราะห์ตลาด และออกแบบอินดิเคเตอร์เองได้ ใช้งานง่าย คล้ายภาษา C เหมาะสำหรับมือใหม่ที่ต้องการเขียนโค้ดเพื่อทดสอบกลยุทธ์การเทรด
Backtest คือ การทดสอบกลยุทธ์การเทรดย้อนหลัง โดยใช้ข้อมูลราคาจริงในอดีตเพื่อดูว่าวิธีการเทรดของเราจะให้ผลกำไรหรือขาดทุนอย่างไร จึงสามารถช่วยปรับปรุงระบบก่อนนำไปใช้ โดยมองได้หลายแบบ เช่น มองแบบ Single หรือ Portfolio Backtest และมองแบบวิธีการ Simple หรือ Simulation Backtest
Portfolio Backtest คือ การทดสอบระบบเทรดโดยจำลองการซื้อขายหุ้นหลายตัวพร้อมกัน เพื่อวัดผลลัพธ์ของพอร์ตโฟลิโอแบบเหมือนเทรดจริง แทนการ Backtest แบบตัวเดียว (Single-Security Backtest)
Algorithmic Trading คือ การใช้โปรแกรมคอมพิวเตอร์/โค้ดในการซื้อขายหลักทรัพย์ตามเงื่อนไขที่กำหนดช่วยลดอารมณ์ในการเทรด ปรับปรุงความเร็ว และเพิ่มประสิทธิภาพในการดำเนินกลยุทธ์ตามข้อมูลตลาด
Quants คือ นักวิเคราะห์เชิงปริมาณที่ใช้คณิตศาสตร์ สถิติ และโค้ด (Code) ในการพัฒนาและทดสอบกลยุทธ์การเทรด มักใช้ในกองทุนเฮดจ์ฟันด์และการเทรด เพื่อหาความได้เปรียบในตลาดการเงิน
Bug คือ ข้อผิดพลาด (Code Error) ในโปรแกรมหรือโค้ด ที่ทำให้โปรแกรมทำงานไม่ถูกต้อง เช่น พิมพ์ผิด ใส่โค้ดผิด อ้างอิงตัวแปรผิด ใช้ตรรกะผิด ทำให้โปรแกรมค้าง/ล่ม หรือให้ผลลัพธ์ที่ไม่คาดคิด
Debugging คือ กระบวนการตรวจสอบและแก้ไขข้อผิดพลาดในโค้ด AFL ใน AmiBroker เพื่อให้ระบบเทรดทำงานได้อย่างถูกต้อง นักเทรดสามารถใช้ฟังก์ชันแสดงค่าตัวแปร เช่น printf() หรือ _TRACE() เพื่อตรวจสอบผลลัพธ์และหาสาเหตุของข้อผิดพลาดในการคำนวณหรือเงื่อนไขการซื้อขาย
OHLC Data คือ ข้อมูลราคาหลักทรัพย์ที่ประกอบด้วย Open (ราคาเปิด), High (ราคาสูงสุด), Low (ราคาต่ำสุด), และ Close (ราคาปิด) ในแต่ละช่วงเวลา เช่น รายวัน รายชั่วโมง หรือรายนาที ใช้ในการวิเคราะห์แนวโน้มและพฤติกรรมของราคาในตลาดหุ้นหรือสินทรัพย์อื่น ๆ
Charts & Plots คือ การแสดงผลข้อมูลราคาหุ้นหรือสินทรัพย์ในรูปแบบกราฟ เช่น กราฟแท่งเทียน (Candlestick), กราฟเส้น (Line Chart), และกราฟแท่ง (Bar Chart) ใน AmiBroker สามารถปรับแต่งและเขียนโค้ด AFL เพื่อสร้างกราฟที่แสดงข้อมูลเชิงลึกตามกลยุทธ์การเทรดของเราได้
Equity Curve คือ กราฟที่แสดงการเปลี่ยนแปลงของมูลค่าพอร์ตการลงทุนตามช่วงเวลา แสดงผลกำไรหรือขาดทุนสะสมของระบบเทรดเพื่อวิเคราะห์ประสิทธิภาพของกลยุทธ์ หากกราฟมีแนวโน้มขึ้นต่อเนื่องแสดงว่าระบบมีความสม่ำเสมอในการทำกำไร
Initial Equity คือ จำนวนเงินทุนเริ่มต้นที่ใช้ในการทดสอบระบบเทรด (Backtest) ใน AmiBroker มีผลต่อการคำนวณ Position Sizing, Risk Management, และ Performance Metrics ค่านี้สามารถกำหนดผ่าน SetOption(“InitialEquity”, value); เพื่อปรับแต่งเงินทุนเริ่มต้นให้เหมาะสมกับกลยุทธ์ที่ใช้ในการเทรด
Max Open Positions คือ การกำหนดจำนวนสูงสุดของสถานะที่สามารถเปิดได้พร้อมกันในระบบเทรดของ AmiBroker ช่วยควบคุมความเสี่ยงและกระจายพอร์ตการลงทุน โดยสามารถกำหนดผ่านโค้ด AFL ด้วยคำสั่ง SetOption(“MaxOpenPositions”, จำนวนที่ต้องการ) เพื่อป้องกันการเปิดออเดอร์มากเกินไปในการทดสอบหรือใช้งานจริง
AFL Code Template คือ โครงสร้างมาตรฐานของโค้ดใน AFL ที่ช่วยให้การเขียนโค้ดเป็นระบบระเบียบและง่ายต่อการปรับแต่ง โดยประกอบด้วยส่วนสำคัญ ดังนี้ การตั้งค่า (Options), วิเคราะห์ตลาด (Market), เงื่อนไขสัญญาณซื้อขาย (Signals), ขนาดสถานะ (Position Size), จุดหยุดขาดทุน (Stop Types) และการจำลองการเทรด (Simulation) ทำให้นักลงทุนสามารถพัฒนาและทดสอบกลยุทธ์ได้อย่างมีประสิทธิภาพ
Buy-Sell Signals คือ สัญญาณซื้อและขายที่ใช้ในระบบเทรดหรือการวิเคราะห์ทางเทคนิคใน AmiBroker โดยกำหนดเงื่อนไขผ่านโค้ด AFL เช่น Buy = Condition; และ Sell = Condition; เพื่อระบุจุดเข้าและออกจากตลาด ช่วยให้เทรดเดอร์ตัดสินใจได้อย่างเป็นระบบและลดอารมณ์ในการเทรด
Position Size คือ การกำหนดขนาดการลงทุนในแต่ละสถานะใน AmiBroker เพื่อบริหารความเสี่ยง สามารถใช้เปอร์เซ็นต์ของพอร์ต (PositionSize = -10;) หรือคำนวณตามความเสี่ยง หรือ Fixed Dollar Amount
Position Score คือ ค่าคะแนนที่ใช้จัดลำดับความสำคัญของสัญญาณซื้อใน AmiBroker เมื่อมีหลายหุ้นเข้าเงื่อนไขพร้อมกัน ระบบจะเลือกหุ้นที่มีคะแนนสูงสุดก่อน โดยกำหนดผ่าน PositionScore = ค่าเงื่อนไข;
ApplyStop คือ ฟังก์ชันใน AFL ที่ใช้กำหนดจุดตัดขาดทุน (Stop Loss) และจุดทำกำไร (Profit Target) โดยสามารถตั้งค่าแบบเปอร์เซ็นต์ (stopTypePercent), มูลค่าคงที่ (stopTypeLoss) หรือแบบ Trailing Stop เพื่อช่วยควบคุมความเสี่ยงในการเทรด
Robustness คือ ความสามารถของระบบเทรดในการทำงานได้ดีภายใต้เงื่อนไขตลาดที่แตกต่างกันและไม่ขึ้นอยู่กับค่าพารามิเตอร์เฉพาะจุด ระบบที่มี Robustness สูง จะให้ผลลัพธ์ที่สม่ำเสมอ แม้เผชิญความผันผวน ซึ่งนักพัฒนาระบบสามารถประเมินได้จากรายงานผลทดสอบใน Performance & Metric Reports
Performance & Metric Reports คือ รายงานผลการทดสอบระบบเทรดใน AmiBroker ที่แสดงค่าทางสถิติ เช่น กำไรขาดทุน (Net Profit), อัตราผลตอบแทน (CAR), ความเสี่ยง (Max Drawdown) เพื่อช่วยวิเคราะห์และปรับปรุงกลยุทธ์การเทรดให้มีประสิทธิภาพมากขึ้น
Compounded Annual Return (CAR) คือ อัตราผลตอบแทนเฉลี่ยต่อปีของระบบเทรด คำนวณจากการเพิ่มขึ้นของพอร์ตแบบทบต้น ช่วยให้เทรดเดอร์วัดประสิทธิภาพกลยุทธ์ในระยะยาว โดยค่า CAR สูงแสดงถึงระบบที่ให้ผลตอบแทนดีและเติบโตต่อเนื่อง
Max Drawdown (MDD) คือ ค่าการลดลงสูงสุดของพอร์ตโฟลิโอจากจุดสูงสุดไปยังจุดต่ำสุดก่อนการฟื้นตัว ใช้ในการวัดความเสี่ยงของระบบเทรด ค่า MDD สูงหมายถึงระบบมีโอกาสที่จะเสี่ยงต่อการขาดทุนหนัก
Exploration & Scan คือ ฟังก์ชันใน AmiBroker ที่ใช้คัดกรองหุ้นหรือสินทรัพย์ตามเงื่อนไขที่กำหนดใน AFL Filter = Condition; ช่วยให้สามารถค้นหาหุ้นที่ตรงตามกลยุทธ์ได้อย่างรวดเร็วผ่าน Analysis Window
Overfitting คือ ปัญหาที่เกิดเมื่อระบบเทรดถูกปรับแต่งมากเกินไปกับข้อมูลในอดีต ทำให้ดูเหมือนมีผลลัพธ์ที่ดี แต่ใช้งานจริงอาจล้มเหลว เพราะไม่สามารถปรับตัวกับตลาดจริงและข้อมูลใหม่ที่ไม่เคยเจอมาก่อนได้
In-Sample Data คือ ข้อมูลในอดีตที่ใช้สำหรับพัฒนาและปรับแต่งระบบเทรดในระหว่างการทดสอบ เพื่อหาค่าพารามิเตอร์ที่เหมาะสมที่สุด แต่ต้องตรวจสอบด้วย Out-Of-Sample Data เพื่อป้องกัน Overfitting
Out-Of-Sample Data คือ ข้อมูลที่ไม่ได้ใช้ในการพัฒนาระบบเทรด แต่ถูกนำมาทดสอบภายหลัง เพื่อประเมินความสามารถและความเสถียรของระบบในสภาพตลาดที่ไม่เคยเจอ และช่วยป้องกัน Overfitting
Slippage คือ ความแตกต่างระหว่างราคาที่ระบบเทรดส่งคำสั่งซื้อขายกับราคาที่ได้รับจริงในตลาด เกิดจากความผันผวนของราคาและสภาพคล่องต่ำ ส่งผลให้ต้นทุนการเทรดสูงขึ้นและกระทบต่อผลลัพธ์ของกลยุทธ์
Missing Trades คือ คำสั่งซื้อหรือขายที่ระบบเทรดควรดำเนินการแต่ไม่ได้ถูกดำเนินการจริง อาจเกิดจากข้อจำกัดด้านสภาพคล่อง, ค่าพารามิเตอร์ที่ตั้งไว้, หรือความล่าช้าในการส่งคำสั่ง ส่งผลต่อผลลัพธ์ของกลยุทธ์และความแม่นยำของการทดสอบย้อนหลัง
Trade Modeling คือ กระบวนการสร้างและทดสอบแบบจำลองการซื้อขายโดยใช้ข้อมูลราคาและกฎเกณฑ์ที่กำหนด เพื่อวิเคราะห์พฤติกรรมของกลยุทธ์ในสถานการณ์ต่างๆ ช่วยให้เทรดเดอร์เข้าใจจุดแข็งและจุดอ่อนของระบบก่อนนำไปใช้จริง ช่วยลด overfitting ได้จากการจำลอง Slippage และ Missing Trades
Trade Shuffling คือ เทคนิคในการสุ่มสลับลำดับการซื้อขายของระบบเทรด เพื่อทดสอบความเสถียรของกลยุทธ์และตรวจสอบว่าผลลัพธ์ที่ได้เกิดจากรูปแบบการเทรดที่แท้จริง หรือเป็นเพียงความบังเอิญ
Simple Backtest คือ การทดสอบระบบเทรดย้อนหลังแบบพื้นฐานโดยไม่มีการสุ่มหรือจำลอง Monte Carlo Simulation กดปุ่ม Backtest 100 ครั้งก็จะได้ผลลัพธ์เดิม 100 ครั้ง ไม่สามารถวิเคราะห์ความเสี่ยงหรือวัดความเสถียรของกลยุทธ์ได้จริง ทำให้ไม่สะท้อนความเป็นไปได้ของระบบในสภาพตลาดที่เปลี่ยนแปลง
Monte Carlo Simulation (MCS) คือ วิธีการจำลองผลลัพธ์ของระบบเทรดโดยการสุ่มเรียงลำดับการเทรดหลายพันครั้ง ซึ่งมี Trading Modeling และ Trading Shuffling รวมอยู่ด้วย เพื่อวิเคราะห์ความเสี่ยง ความผันผวน และช่วงผลลัพธ์ที่เป็นไปได้ ช่วยให้เทรดเดอร์เข้าใจโอกาสขาดทุนและความน่าเชื่อถือของกลยุทธ์ก่อนนำไปใช้จริง จากการวิเคราะห์ค่าผลลัพธ์ด้วย Confidence Levels
Confidence Levels คือ ค่าความน่าจะเป็นที่ใช้ในการวิเคราะห์ความเสี่ยงและผลลัพธ์ของระบบเทรด เช่น 95% Confidence Level หมายถึง 95% ของผลลัพธ์ที่ได้จากการทดสอบจะอยู่ในช่วงที่คาดการณ์ ช่วยประเมินความเสถียรของกลยุทธ์ก่อนนำไปใช้จริง
Win Rate คือ เปอร์เซ็นต์ของจำนวนเทรดที่มีกำไรเมื่อเทียบกับจำนวนเทรดทั้งหมด คำนวณจากสูตร (จำนวนเทรดที่ชนะ ÷ จำนวนเทรดทั้งหมด) × 100 ช่วยวัดประสิทธิภาพของระบบเทรด โดยค่าที่สูงขึ้นหมายถึงอัตราการชนะที่มากขึ้น
Avg. Bars Held คือ ค่าเฉลี่ยที่บ่งบอกจำนวนแท่งเทียนที่ระบบเทรดถือสถานะก่อนปิดการซื้อขาย ใช้เพื่อวิเคราะห์พฤติกรรมของกลยุทธ์เทรด เช่น ถือสถานะระยะสั้น (Short-Term) หรือระยะยาว (Long-Term)
Expectancy คือ ค่าที่ใช้วัดความคาดหวังของระบบเทรดในระยะยาว คำนวณจากกำไรเฉลี่ยต่อเทรด (Average Win * Win Rate) ลบด้วยขาดทุนเฉลี่ยต่อเทรด (Average Loss * Loss Rate) หาก Expectancy เป็นบวก หมายถึงระบบมีโอกาสทำกำไรในระยะยาว
Exposure คือ สัดส่วนของเงินทุนที่ถูกนำไปใช้ในสถานะที่เปิดอยู่ เทียบกับมูลค่าพอร์ตทั้งหมด แสดงเป็นเปอร์เซ็นต์ ช่วยวัดระดับความเสี่ยงของระบบเทรด หากค่า Exposure สูง แสดงว่าพอร์ตลงทุนอยู่ในตลาดมาก อาจมีความเสี่ยงสูงขึ้น
Risk-Adjusted Return คือ ค่าผลตอบแทนของระบบเทรดที่ปรับตามระดับความเสี่ยง เพื่อให้สามารถเปรียบเทียบกลยุทธ์ที่มีความเสี่ยงต่างกันได้ ตัวชี้วัดที่นิยมใช้ เช่น MAR Ratio และ Sharpe Ratio ช่วยให้เทรดเดอร์เลือกกลยุทธ์ที่ให้ผลตอบแทนคุ้มค่ากับความเสี่ยงที่รับได้
MAR Ratio (CAR/MDD) คือ อัตราส่วนที่ใช้วัดประสิทธิภาพของระบบเทรด โดย CAR (Compounded Annual Return) เป็นอัตราผลตอบแทนเฉลี่ยต่อปี และ MDD (Maximum Drawdown) เป็นการลดลงสูงสุดของพอร์ต ค่า CAR/MDD สูง แสดงถึงระบบที่ให้ผลตอบแทนดีเมื่อเทียบกับความเสี่ยง
Sharpe Ratio คือ ตัวชี้วัดที่ใช้วัด ผลตอบแทนที่ปรับด้วยความเสี่ยง ของระบบเทรด โดยคำนวณจาก (ผลตอบแทนเฉลี่ย – อัตราผลตอบแทนปราศจากความเสี่ยง) ÷ ความผันผวนของผลตอบแทน (Standard Deviation) ค่า Sharpe Ratio สูง หมายถึงระบบมีผลตอบแทนที่ดีเมื่อเทียบกับความเสี่ยงที่เกิดขึ้น
Risk-free Rate คือ อัตราผลตอบแทนของสินทรัพย์ที่ไม่มีความเสี่ยง เช่น พันธบัตรรัฐบาล ใช้เป็นเกณฑ์อ้างอิงในการคำนวณตัวชี้วัดทางการเงิน เช่น Sharpe Ratio เพื่อเปรียบเทียบว่าผลตอบแทนของระบบเทรดคุ้มค่ากับความเสี่ยงหรือไม่
Max Consecutive Losses คือ จำนวนครั้งสูงสุดที่ระบบเทรดขาดทุนติดต่อกันโดยไม่มีกำไร ใช้เป็นตัวชี้วัดความเสี่ยงของกลยุทธ์ หากค่ามากเกินไปอาจบ่งบอกว่าระบบมี Drawdown สูงและอาจต้องปรับปรุง Money Management เพื่อลดความเสี่ยงในการใช้งานจริง
Liquidity คือ สภาพคล่องของสินทรัพย์หรือหลักทรัพย์ หมายถึงความสามารถในการซื้อขายโดยไม่กระทบต่อราคา หากมี Liquidity สูง จะสามารถซื้อขายได้ง่ายและรวดเร็ว ส่วน Liquidity ต่ำ อาจทำให้เกิด Slippage และต้นทุนการเทรดสูงขึ้น
Market Impact คือ ผลกระทบที่คำสั่งซื้อหรือขายมีต่อตลาด เช่น หากส่งคำสั่งซื้อขายขนาดใหญ่ อาจทำให้ราคาขยับไปในทิศทางของคำสั่งนั้น ส่งผลให้ต้นทุนการซื้อขายสูงขึ้น มักเกิดในสินทรัพย์ที่มี Liquidity ต่ำ หรือในตลาดที่มีปริมาณการซื้อขายน้อย
Market Analysis คือ กระบวนการวิเคราะห์ตลาดเพื่อหาทิศทาง แนวโน้ม และโอกาสในการเทรด สามารถใช้ได้ทั้ง วิเคราะห์ทางเทคนิค (Technical Analysis) และ วิเคราะห์ปัจจัยพื้นฐาน (Fundamental Analysis) เพื่อช่วยในการตัดสินใจลงทุน ประกอบด้วย MKF, MKC และ MKB
Market Filter (MKF) คือ เงื่อนไขที่ใช้กรองภาวะตลาดก่อนเข้าสู่การซื้อขาย เช่น ใช้ Moving Average ของดัชนีตลาด หรือ ค่า VIX เพื่อตัดสินใจว่าควรเปิดหรือปิดสถานะในช่วงตลาดขาขึ้นหรือขาลง ช่วยลดความเสี่ยงและเพิ่มความแม่นยำของกลยุทธ์เทรด
buyConMKF คือ เงื่อนไขการซื้อที่รวม Market Filter (MKF) เข้าไปในระบบเทรด เพื่อให้แน่ใจว่าการส่งคำสั่งซื้อจะเกิดขึ้นเฉพาะในช่วงที่ตลาดอยู่ในสภาวะที่เอื้อต่อกลยุทธ์ เช่น กำหนดให้ซื้อเฉพาะเมื่อดัชนีตลาดอยู่เหนือเส้นค่าเฉลี่ย หรือเมื่อสภาวะตลาดเป็นขาขึ้นตามเงื่อนไขที่กำหนด
Market Classification (MKC) คือ การจัดกลุ่มภาวะตลาดตามเงื่อนไขที่กำหนด เช่น ตลาดขาขึ้น ตลาดขาลง หรือ ตลาดไซด์เวย์ โดยอาจใช้ตัวชี้วัดอย่าง Moving Average, Volatility หรือ Breadth Indicator เพื่อกำหนดแนวทางการเทรดที่เหมาะสมกับแต่ละสภาวะของตลาด
buyConMKC คือ เงื่อนไขการซื้อที่รวม Market Classification (MKC) เข้าไปในระบบเทรด เพื่อให้การเข้าซื้อเกิดขึ้นเฉพาะในช่วงที่ตลาดอยู่ในสภาวะที่เหมาะสม เช่น กำหนดให้ซื้อเฉพาะเมื่อตลาดอยู่ในแนวโน้มขาขึ้น หรือเมื่อสภาวะตลาดตรงกับเงื่อนไขที่กำหนดไว้ในระบบ Market Classification
trendMKC คือ เงื่อนไขที่ใช้กำหนดแนวโน้มของตลาดในระบบ MKC โดยใช้ตัวชี้วัด เช่น ค่าเฉลี่ยเคลื่อนที่ (Moving Average), อัตราการเปลี่ยนแปลงของราคา (ROC) หรือ Indicator อื่น ๆ เพื่อระบุว่าตลาดอยู่ในแนวโน้มขาขึ้น ขาลง หรือไซด์เวย์ ช่วยให้ระบบเทรดปรับกลยุทธ์ให้เหมาะสมกับสภาวะตลาด
volatilityMKC คือ เงื่อนไขที่ใช้วัดและจำแนกความผันผวนของตลาดในระบบ MKC โดยใช้ตัวชี้วัด เช่น Average True Range (ATR), Standard Deviation หรือ Bollinger Bands เพื่อระบุว่าตลาดอยู่ในช่วงความผันผวนสูงหรือต่ำ ช่วยให้ระบบเทรดสามารถปรับกลยุทธ์ให้เหมาะสมกับระดับความผันผวนของตลาด
basedMKC คือ เงื่อนไขพื้นฐานที่ใช้กำหนดการจำแนกตลาดในระบบ MKC โดยอาจอ้างอิงจากตัวชี้วัดหลัก เช่น แนวโน้มตลาด (trendMKC), ความผันผวน (volatilityMKC), หรือปัจจัยอื่น ๆ เพื่อสร้างเกณฑ์การแบ่งประเภทตลาดที่ใช้เป็นพื้นฐานในการตัดสินใจซื้อขาย
mergedMKC คือ เงื่อนไขที่รวม (merge) ตลาดหลายปัจจัยใน basedMKC เข้าด้วยกัน เพื่อนำข้อมูลจากหลายแหล่งมาประมวลผลร่วมกัน ช่วยให้ระบบเทรดสามารถวิเคราะห์ภาวะตลาดได้แม่นยำขึ้น และปรับกลยุทธ์ให้เหมาะสมกับสถานการณ์จริง
Sensitivity Analysis คือ การวิเคราะห์ว่าการเปลี่ยนแปลงของพารามิเตอร์ในระบบเทรดส่งผลต่อผลลัพธ์อย่างไร โดยการทดสอบค่าพารามิเตอร์หลายค่าเพื่อดูว่าระบบยังคงให้ผลลัพธ์ที่เสถียรหรือไม่ ช่วยลดความเสี่ยงของ Overfitting และเลือกค่าพารามิเตอร์ที่เหมาะสมที่สุด
Walk Forward Analysis (WFA) คือ วิธีการทดสอบระบบเทรดโดยแบ่งข้อมูลออกเป็นช่วง ๆ และทำ Optimization บน In-Sample Data ก่อนนำค่าพารามิเตอร์ที่ได้ไปทดสอบ Out-Of-Sample Data ซ้ำไปเรื่อย ๆ วิธีนี้ช่วยตรวจสอบความเสถียรและลดความเสี่ยงของ Overfitting ทำให้ระบบมีความน่าเชื่อถือมากขึ้น
MC WFA (Monte Carlo Walk Forward Analysis) คือ การผสมผสาน Monte Carlo Simulation กับ Walk Forward Analysis เพื่อประเมินความเสถียรของระบบเทรด โดยใช้ Walk Forward Analysis ทดสอบพารามิเตอร์ของระบบในช่วงข้อมูลที่เลื่อนออกไปเรื่อย ๆ และใช้ Monte Carlo Simulation ในการสุ่มผลลัพธ์เพื่อตรวจสอบความแข็งแกร่งของกลยุทธ์ และให้ภาพรวมที่ชัดเจนขึ้นเกี่ยวกับผลลัพธ์ที่เป็นไปได้
Monkey Tests คือ การทดสอบเปรียบเทียบระบบเทรดของเรากับกลยุทธ์แบบสุ่มภายใต้สภาพตลาดเดียวกัน ใช้ระดับความเชื่อมั่นสูง (High Confidence Level) เพื่อตรวจสอบว่ากลยุทธ์มี Edge ที่แท้จริง หรือเป็นเพียงความบังเอิญ ซึ่งแบ่งาการทดสอบออกเป็น Entry Test, Exit Test และ Entry-Exit Test
Forced Signals เป็นการกำหนดสัญญาณซื้อหรือขายหุ้นตัวหนึ่งในวันที่กำหนดไว้ สำหรับการทำ Drill Test เพื่อตรวจสอบ backtest ตอนสร้างกลยุทธ์ หรือเพื่อเปรียบเทียบผลลัพธ์ระหว่างตอนเทรดจริงกับ backtest
Market Breadth (MKB) คือ ดัชนีที่ใช้วัดความกว้างของการเคลื่อนไหวของตลาด โดยพิจารณาจำนวนหุ้นที่ขึ้นหรือลงแทนที่จะดูเฉพาะค่าดัชนีหลัก เช่น New High & New Low (NHNL) และ Advance-Decline Ratio (ADDE) ช่วยวิเคราะห์แนวโน้มตลาดว่ามีความแข็งแกร่งหรืออ่อนแอในระดับกว้างหรือไม่
New High & New Low (NHNL) คือ ตัวชี้วัด MKB ที่ใช้เปรียบเทียบจำนวนหุ้นที่ทำจุดสูงสุดใหม่ (New High) กับจำนวนหุ้นที่ทำจุดต่ำสุดใหม่ (New Low) ในช่วงเวลาที่กำหนด หากหุ้นที่ทำ New High มากกว่าหุ้นที่ทำ New Low แสดงว่าตลาดอยู่ในแนวโน้มขาขึ้น ระบุความแข็งแกร่งหรืออ่อนแอของตลาด
Advance & Decline (ADDE) คือ ตัวชี้วัด MKB ที่ใช้เปรียบเทียบจำนวนหุ้นที่ปรับตัวขึ้น (Advancing Issues) กับจำนวนหุ้นที่ปรับตัวลง (Declining Issues) ในแต่ละวัน หากหุ้นที่ขึ้นมีมากกว่าหุ้นที่ลง แสดงว่าตลาดมีโมเมนตัมเชิงบวก และในทางกลับกันช่วยวิเคราะห์แนวโน้มและความแข็งแกร่งของตลาดโดยรวม
Up Volume & Down Volume (UVDV) คือ ตัวชี้วัด MKB ที่ใช้เปรียบเทียบปริมาณการซื้อขายของหุ้นที่ราคาปรับตัวขึ้น (Up Volume) กับหุ้นที่ราคาปรับตัวลง (Down Volume) หาก Up Volume มากกว่า Down Volume แสดงว่าตลาดมีแรงซื้อสูง ซึ่งช่วยวิเคราะห์แนวโน้มของตลาดและพฤติกรรมของนักลงทุน
AddToComposite (ATC) เป็นฟังก์ชันใน AmiBroker ที่ใช้รวมค่าข้อมูลจากหุ้นหลายตัวเข้าไปเป็นข้อมูลของสัญลักษณ์ใหม่ เช่น คำนวณดัชนีตลาดเอง หรือสร้างอินดิเคเตอร์เฉพาะตัว ต้องใช้ในโหมด Scan และต้องกำหนดชื่อสัญลักษณ์ที่สร้างขึ้นโดยใช้ ~ นำหน้าเพื่อป้องกันชนกับชื่อหุ้นจริง
Delisted Symbols คือ หุ้นหรือสัญลักษณ์ที่ถูกถอดออกจากตลาดหลักทรัพย์ เนื่องจากบริษัทอาจเลิกกิจการ ควบรวมกิจการ หรือไม่ผ่านข้อกำหนดของตลาด หุ้นเหล่านี้จะไม่สามารถซื้อขายในตลาดหลักได้อีกต่อไป และอาจส่งผลต่อฐานข้อมูลย้อนหลังของนักลงทุนที่ใช้วิเคราะห์ข้อมูลทางเทคนิค
Stock Split คือ การแตกพาร์หรือแบ่งหน่วยของหุ้นออกเป็นจำนวนมากขึ้นโดยไม่มีการเปลี่ยนแปลงในมูลค่ารวมของบริษัท เช่น 1 หุ้นแบ่งเป็น 2 หุ้น (2-for-1) ทำให้ราคาหุ้นต่อหน่วยลดลงแต่จำนวนหุ้นที่นักลงทุนถืออยู่เพิ่มขึ้น การแตกพาร์ช่วยเพิ่มสภาพคล่องในการซื้อขายและทำให้ราคาหุ้นอยู่ในระดับที่นักลงทุนทั่วไปสามารถเข้าถึงได้ง่ายขึ้น
Custom Backtester Interface (CBI) คือ ฟังก์ชันใน AmiBroker ที่ช่วยให้ผู้ใช้ปรับแต่งการทดสอบระบบเทรด (Backtesting) ได้อย่างละเอียด เช่น การจัดการพอร์ตโฟลิโอ และการควบคุมขนาดสถานะ ช่วยเพิ่มความยืดหยุ่นให้กับกลยุทธ์การเทรด ทำให้การวิเคราะห์มีความแม่นยำมากขึ้น
Backtester Object คือ อ็อบเจ็กต์ใน AmiBroker ที่ใช้ควบคุมกระบวนการทดสอบกลยุทธ์ (Backtest) และเข้าถึงข้อมูลสำคัญ เช่น รายการสัญญาณซื้อขาย (Signal List) รายการสถานะที่เปิดอยู่ (Open Position) และสถิติของพอร์ตโฟลิโอ (Performance Metrics) ผู้ใช้สามารถเรียกใช้งานได้ผ่าน GetBacktesterObject()
High-Level CBI คือ ส่วนหนึ่งของ Custom Backtester Interface (CBI) ใน AmiBroker ที่ช่วยคำนวณและเพิ่ม Custom Trade Metrics โดยไม่ต้องแก้ไขโค้ดหลัก ใช้สำหรับวัดผลลัพธ์ของระบบเทรด เช่น Portfolio Metrics และ Trade Metrics ทำให้การวิเคราะห์กลยุทธ์มีความแม่นยำและยืดหยุ่นมากขึ้น
Stats Object คือ อ็อบเจ็กต์ใน CBI ที่ใช้เข้าถึงค่าทางสถิติและตัวชี้วัดต่างๆ ที่ได้จากการทดสอบระบบเทรด (Backtest) เช่น Net Profit, Max Drawdown, และ Sharpe Ratio ผู้ใช้สามารถเรียกใช้ GetPerformanceStats() และ GetValue() เพื่อดึงค่าต่างๆ ออกมาใช้วิเคราะห์และปรับปรุงกลยุทธ์เทรดได้อย่างละเอียด
Mid-Level CBI คือ ส่วนหนึ่งของ CBI ที่ช่วยให้ผู้ใช้ปรับแต่ง Position Size และแก้ไขพฤติกรรมของ Backtest ได้โดยตรง เช่น การปรับขนาดสถานะและการปฏิเสธสัญญาณซื้อขาย ใช้สำหรับเข้าถึงและแก้ไขข้อมูลของ Signal Object และ Backtester Object ทำให้สามารถควบคุมความเสี่ยงของระบบเทรดได้มากขึ้น
Custom Trade Metrics คือ ฟังก์ชันใน CBI ที่ช่วยให้ผู้ใช้เพิ่มตัวชี้วัดเฉพาะสำหรับวิเคราะห์ผลการทดสอบกลยุทธ์ (Backtest) เช่น การวัด Expectancy, R-Multiple, หรือ Max Adverse Excursion (MAE) ใช้สำหรับสร้างตัวชี้วัดที่เหมาะสมกับกลยุทธ์เฉพาะ เพื่อประเมินประสิทธิภาพของระบบเทรดได้อย่างแม่นยำ
Max Adverse Excursion (MAE) คือ ตัวชี้วัดที่ใช้วัดระดับการขาดทุนสูงสุดของการเทรดแต่ละครั้ง ก่อนที่การเทรดนั้นจะปิดตัวลง ใช้เพื่อวิเคราะห์ว่าการขาดทุนสูงสุดที่เกิดขึ้นสัมพันธ์กับกำไรหรือขาดทุนสุดท้ายอย่างไร ช่วยให้นักลงทุนสามารถปรับปรุงกลยุทธ์การเข้าและออกออเดอร์ให้มีประสิทธิภาพมากขึ้น
Max Favorable Excursion (MFE) คือ ตัวชี้วัดที่ใช้วัดระดับกำไรสูงสุดของการเทรดแต่ละครั้ง ก่อนที่การเทรดนั้นจะปิดตัวลง ใช้เพื่อวิเคราะห์ว่ากลยุทธ์การเทรดมีโอกาสทำกำไรสูงสุดที่ระดับใดเมื่อเทียบกับราคาขายจริง ช่วยให้นักลงทุนสามารถปรับกลยุทธ์การขายเพื่อเพิ่มประสิทธิภาพลดการสูญเสียโอกาสทำกำไร
Low-Level CBI คือ ส่วนที่ซับซ้อนที่สุดของ CBI ที่ให้ผู้ใช้ควบคุมทุกขั้นตอนของกระบวนการ Backtest ใน AmiBroker สามารถจัดการการเข้าออกและปรับขนาดสถานะ (EnterTrade, ExitTrade, ScaleTrade) ได้โดยตรง ช่วยให้สามารถปรับแต่งกลยุทธ์อย่างละเอียด เช่น การจัดการ Stop Loss, การวิเคราะห์ MAE/MFE และการบริหารพอร์ตที่ซับซ้อน
Dynamic Position Sizing คือ วิธีการกำหนดขนาดสถานะการซื้อขายที่ปรับเปลี่ยนตามปัจจัยต่างๆ เช่น Equity, Volatility, และ Risk Per Trade เพื่อให้ขนาดการลงทุนเหมาะสมกับสภาวะตลาด ใช้หลักการ เช่น Percent of Equity, Volatility-Based Sizing, หรือ Risk-Based Sizing เพื่อเพิ่มประสิทธิภาพและลดความเสี่ยง
Ruin Test (Risk of Ruin) คือ ความน่าจะเป็นที่พอร์ตการลงทุนจะสูญเสียทุนจนไม่สามารถเทรดต่อไปได้ ขึ้นอยู่กับปัจจัยสำคัญ เช่น Win Ratio, Payoff Ratio, และ Risk Per Trade สามารถทำได้ผ่าน Monte Carlo Simulation เพื่อช่วยประเมินความเสี่ยงของกลยุทธ์และบริหารจัดการพอร์ตให้มีโอกาสอยู่รอดในระยะยาว
ieRuin (Initial-Equity Ruin) ซึ่งหมายถึงการสูญเสียทุนตั้งแต่ช่วงแรกของการเทรด ส่งผลให้เงินลงทุนลดลงจนถึงระดับที่อาจไม่สามารถฟื้นตัวได้ โดยปกติจะเกิดขึ้นจากการจัดการความเสี่ยงที่ไม่ดีหรือกลยุทธ์ที่ไม่มีประสิทธิภาพ ผู้ใช้สามารถลด ieRuin ได้ด้วยการควบคุม Position Sizing, Stop Loss, และ Exposure Control เพื่อป้องกันการขาดทุนหนักตั้งแต่ต้น สามารถทำได้โดยใช้ MCS
heRuin (Highest-Equity Ruin) ซึ่งหมายถึงเปอร์เซ็นต์ขาดทุนสูงสุดจากมูลค่าสูงสุดของพอร์ตก่อนที่พอร์ตจะลดลงต่ำกว่าระดับที่ถือว่าเป็นการล้มละลาย ใช้สำหรับวัดความเสี่ยงของกลยุทธ์โดยดูว่าสูญเสียทุนไปมากแค่ไหนจากจุดสูงสุด การทดสอบ heRuin สามารถทำได้โดยใช้ MCS
StaticVar คือ ตัวแปรที่สามารถเก็บค่าระหว่างการเรียกใช้โค้ดต่างๆ ใน AmiBroker โดยค่าที่เก็บไว้จะยังคงอยู่แม้การคำนวณจะสิ้นสุดลง ช่วยให้สามารถแบ่งปันข้อมูลระหว่างสูตร AFL หรือเก็บค่าที่ต้องใช้ต่อเนื่องในหลายรอบการคำนวณ ใช้ฟังก์ชัน StaticVarSet() และ StaticVarGet() เพื่อกำหนดและเรียกใช้ค่าตัวแปร
Trading Platform คือ ระบบที่ช่วยจัดการกระบวนการเทรดอัตโนมัติ/กึ่งอัตโนมัติ ตั้งแต่ ดึงข้อมูลหุ้น, วิเคราะห์สัญญาณ, คำนวณความเสี่ยง, ส่งคำสั่งซื้อขาย และจัดการพอร์ต โดยสามารถทำงานร่วมกับ AmiBroker, Excel VBA, OLE Automation และ Settrade Open API
OLE Automation ใน AmiBroker คือ การควบคุม AmiBroker ด้วยโค้ด Excel VBA หรือโค้ด JavaScript ผ่าน COM API เพื่อสั่งให้ AmiBroker ทำ Backtest, Optimize, Explore รวมถึงอัพเดทข้อมูลหุ้นอัตโนมัติ
API (Application Programming Interface) คือ ช่องทางการเชื่อมต่อระหว่างโปรแกรม เช่น AmiBroker, Trading Platform โบรกเกอร์ หรือแหล่งข้อมูล เพื่อส่งคำสั่งซื้อขาย, ดึงข้อมูลราคา, และจัดการพอร์ตโฟลิโอ
SET Open API คือ API ที่พัฒนาโดยตลาดหลักทรัพย์แห่งประเทศไทย (SET) เพื่อให้นักลงทุน นักพัฒนา และผู้ให้บริการทางการเงิน สามารถทำการเชื่อมต่อข้อมูล และส่งคำสั่งซื้อขายผ่านโบรกเกอร์ได้อัตโนมัติ
Portfolio Manager คือ ระบบส่วนกลางที่ทำการจัดพอร์ตใน Trading Platform ที่คล้ายกับผู้จัดการกองทุน บริหารหลายๆพอร์ตพร้อมกัน (Multiple Portfolio) มีการทำ Risk Management และป้องกัน Overexposure ทั้งในภายรวมของพอร์ตทั้งหมดและภาพย่อยของหุ้นรายตัว เพื่อเพิ่มประสิทธิภาพของพอร์ตโดยรวม