ระบบซื้อขายอัลกอริธึมการสร้าง: 2 แนวทางหลัก, การทดสอบ, เครื่องมือ

14.01.2020
7 นาทีสำหรับการอ่าน
ส่วนประกอบที่สำคัญของระบบการซื้อขายอัลกอริธึมคือเครื่องมือการวิจัยประสิทธิภาพความสะดวกในการพัฒนาความยืดหยุ่นและการทดสอบการแยกข้อกังวลความคุ้นเคยการบำรุงรักษาความพร้อมใช้งานของซอร์สโค้ดค่าใช้จ่ายในการออกใบอนุญาต ก่อนที่จะตัดสินใจใช้เครื่องมือ "ดีที่สุด" ซึ่งการเขียนระบบการซื้อขายแบบอัตโนมัติด้วยจำเป็นต้องกำหนดข้อกำหนด:
- ความถี่ของการซื้อขายและปริมาณการซื้อขายมีแนวโน้มเป็นอย่างไร
- ระบบจะต้องการ การบริหาจัดการความเสี่ยง หรือโมดูลก่อสร้างผลงาน?
- ระบบจะต้องการ backtester ที่มีประสิทธิภาพสูงหรือไม่
ผู้ค้าที่ต้องการระบบที่ซับซ้อนและกำหนดเองมากขึ้นอาจต้องใช้ C #, Matlab หรือ Python แต่ฉันจะบอกว่า 95% ของผู้ค้ารายวัน Algorithmic Trading Software จะพอเพียง
1 - คำนวณใน Python, Matlab, C #
ในกรณีนี้ทักษะการเขียนโปรแกรมเป็นปัจจัยสำคัญในการสร้างอัลกอริทึมอัตโนมัติ กลยุทธ์การซื้อขาย. การมีความรู้ในภาษาการเขียนโปรแกรมเช่น Python หรือ R จะช่วยให้คุณสร้างหน่วยเก็บข้อมูลแบบ end-to-end เอ็นจิ้น backtest และระบบปฏิบัติการได้ด้วยตัวคุณเอง มันช่วยให้คุณสำรวจกลยุทธ์คลื่นความถี่ที่สูงขึ้นเพราะคุณจะสามารถควบคุม "กองเทคโนโลยี" ได้อย่างเต็มที่ แม้ว่านี่จะหมายความว่าคุณสามารถทดสอบซอฟต์แวร์และกำจัดข้อผิดพลาดได้ แต่ก็หมายถึงเวลาที่ใช้ในการเขียนโค้ดโครงสร้างพื้นฐานและใช้กลยุทธ์ในการดำเนินการน้อยลงอย่างน้อยก็ในช่วงก่อนหน้านี้ในอาชีพการจดสิทธิบัตรของคุณ
เวิร์กโฟลว์พื้นฐานมีดังต่อไปนี้:
- กลยุทธ์การซื้อขายแบบอัลกอริทึมจะป้อนข้อมูลการตลาด (ประวัติหรือถ่ายทอดสด) ลงในโปรแกรมคอมพิวเตอร์
- จากนั้นโปรแกรมจะส่งคำสั่งซื้อไปยังโบรกเกอร์ผ่าน API และรับการแจ้งเตือนสถานะคำสั่งซื้อกลับมาจากนายหน้า
MATLAB และ Python เป็นแพลตฟอร์มการทดสอบย้อนหลังที่ฉันโปรดปราน มีอินเทอร์เฟซที่ครอบคลุมและใช้งานง่ายมากสำหรับการพัฒนาและการดีบักโปรแกรมและมีกล่องเครื่องมือมากมายที่ครอบคลุมเกือบทุกเทคนิคทางคณิตศาสตร์หรือการคำนวณเชิง arcane ที่คุณอาจพบในการพัฒนากลยุทธ์การซื้อขาย


2 - ซอฟต์แวร์การซื้อขายอัลกอริทึม ไม่มีทักษะการเขียนโปรแกรม
วิธีที่สองคือเครื่องมืออัลกอริทึม เช่น Multicharts หรือ R StocksTrader Strategy Builder (ฟรีและใช้งานง่าย บนระบบคลาวด์) และอื่นๆ อีกมากมาย
วันที่การซื้อขายแบบอัลกอริทึมถูกนำมาใช้โดยผู้เชี่ยวชาญเท่านั้นได้สิ้นสุดลงแล้ว ไม่จำเป็นต้องใช้เวลาหลายชั่วโมงในการเรียนรู้ C# เมื่อระบบและกลยุทธ์เกือบทั้งหมดสามารถเข้ารหัสด้วย Multicharts หรือ R หุ้นตัวสร้างกลยุทธ์นักเทรด. จากประสบการณ์ของเราผู้ค้า / โปรแกรมเมอร์บางคนต้องการใช้เส้นทางยาวไปสู่เป้าหมายบ่อยครั้งภายใต้หน้ากากของความเหนือกว่าทางเทคนิคเชื่อมั่นเราการเข้ารหัสขั้นสูงส่วนใหญ่ไม่จำเป็นสำหรับกลยุทธ์การซื้อขายอัลกอริธึมเฉลี่ย การสร้าง API ของคุณหรือปรับแต่งทุกอย่างด้วย MetaTrader อาจทำให้สิ้นเปลืองมากโดยเฉพาะถ้าคุณจมอยู่กับรายละเอียดทางเทคนิคแทนการสร้างคุณค่า
ทุกแพลตฟอร์มมีทั้งข้อดีและข้อเสีย สำหรับเรา R StocksTrader Strategy Builder เป็นโมดูลที่ใช้งานง่ายซึ่งเป็นกรรมสิทธิ์ของบริษัทเอง ซึ่งช่วยให้ผู้ค้าปลีกสามารถออกแบบ ทดสอบย้อนหลัง และปรับใช้กลยุทธ์การซื้อขายอัลกอริธึมโดยไม่ต้องมีความรู้ภาษาการเขียนโปรแกรมใดๆ
R StocksTrader แพลตฟอร์มการซื้อขาย มีวิธีที่ง่ายกว่าสำหรับคุณที่จะออกจากการซื้อขายจุดและคลิกแบบดั้งเดิม ออกแบบมาสำหรับนักลงทุนที่มีประสบการณ์รวมถึงผู้มาใหม่ส่วนติดต่อที่ใช้งานง่ายของเราช่วยให้คุณสามารถกำหนดกลยุทธ์การซื้อขายอัตโนมัติได้ในเวลาไม่กี่นาที ไม่มีการเข้ารหัสและไม่ยุ่งยาก - คุณจะพร้อมใช้งานในเวลาไม่นาน

การทดสอบและประเมินผลระบบการซื้อขาย
การวิจัยเกี่ยวข้องกับการประเมินประสิทธิภาพของกลยุทธ์เหนือข้อมูลในอดีต กระบวนการประเมินกลยุทธ์การซื้อขายเหนือข้อมูลตลาดก่อนหน้านี้รู้จักกันในชื่อ backtesting
การซื้อขายแบบอัลกอริทึมนั้นแตกต่างจากประเภทการลงทุนประเภทอื่น ๆ เพราะเราสามารถมอบความคาดหวังเกี่ยวกับผลการดำเนินงานในอนาคตได้อย่างน่าเชื่อถือมากขึ้น กล่าวง่ายๆคือการทดสอบย้อนกลับจะดำเนินการโดยเปิดเผยอัลกอริทึมกลยุทธ์เฉพาะของคุณไปยังสตรีมของข้อมูลราคาในอดีตซึ่งนำไปสู่ชุดสัญญาณการซื้อขาย การค้าแต่ละครั้งจะมีกำไรหรือขาดทุนที่เกี่ยวข้อง การสะสมของกำไร / ขาดทุนตลอดช่วงหลังกลยุทธ์ของคุณจะนำไปสู่กำไรและขาดทุนทั้งหมด
อะไรคือเหตุผลสำคัญสำหรับการทดสอบกลยุทธ์ย้อนหลัง
การกรอง
เป้าหมายของเราในระยะเริ่มต้นการวิจัยคือการกรองกลยุทธ์ใด ๆ ที่ไม่ตรงตามเกณฑ์ที่กำหนด Backtesting ให้กลไกการกรองอื่นแก่เราเนื่องจากเราสามารถกำจัดกลยุทธ์ที่ไม่เป็นไปตามความต้องการด้านประสิทธิภาพ
การสร้างแบบจำลอง
การทดสอบซ้ำช่วยให้เราสามารถ (ทดสอบอย่างปลอดภัย!) ทดสอบรูปแบบใหม่ของสภาวะตลาดที่แน่นอน
ตัวอย่างและไม่อยู่ในกลุ่มตัวอย่าง
เมื่อทำการทดสอบแนวคิดเกี่ยวกับข้อมูลประวัติคุณควรสำรองช่วงเวลาของข้อมูลประวัติเพื่อวัตถุประสงค์ในการทดสอบ ข้อมูลประวัติเริ่มต้นซึ่งแนวคิดได้รับการทดสอบและปรับให้เหมาะสมจะเรียกว่าเป็นข้อมูลในตัวอย่าง ชุดข้อมูลที่จองไว้นั้นเรียกว่าข้อมูลที่ไม่อยู่ในกลุ่มตัวอย่าง การตั้งค่านี้เป็นส่วนสำคัญของกระบวนการประเมินผลเนื่องจากเป็นวิธีการทดสอบแนวคิดเกี่ยวกับข้อมูลที่ไม่ได้เป็นส่วนประกอบในรูปแบบการเพิ่มประสิทธิภาพ ดังนั้นความคิดจะไม่ได้รับผลกระทบใด ๆ จากข้อมูลตัวอย่างและผู้ค้าจะสามารถกำหนดได้ว่าระบบอาจทำงานได้ดีกับข้อมูลใหม่เช่นในการซื้อขายจริง
การเพิ่มประสิทธิภาพของกลยุทธ์การซื้อขายอัลกอริทึม
แม้ว่าการปรับกลยุทธ์ให้ดีที่สุดจะเต็มไปด้วยอคติ แต่การทดสอบย้อนกลับช่วยให้เราสามารถเพิ่มประสิทธิภาพของกลยุทธ์ได้โดยการปรับเปลี่ยนค่าพารามิเตอร์ที่เกี่ยวข้องกับกลยุทธ์นั้นและคำนวณประสิทธิภาพใหม่ Overfitting (การปรับเส้นโค้ง) เป็นปัญหาร้ายแรงในทุกด้านที่เกี่ยวข้องกับการขุดข้อมูลและคุณต้องระมัดระวังเกี่ยวกับการใช้การตรวจสอบและการทดสอบที่เหมาะสม ด้วยเหตุผลดังกล่าวอาจมีวิธีการที่หลากหลายเช่นการทดสอบซ้ำกับการตั้งค่าที่แตกต่างกันการจำลอง Monte-Carlo, Walk-Forward-Matrix, Walk-Forward-Optimization, หลายช่วงเวลาของตัวอย่าง
การทดสอบประสิทธิภาพล่วงหน้า
การซื้อขายสาธิตหรือการซื้อขายกระดาษช่วยให้ผู้ค้ามีชุดข้อมูลที่ไม่อยู่ในตัวอย่างอีกชุดหนึ่งเพื่อใช้ในการประเมินระบบ การทดสอบประสิทธิภาพการส่งต่อเป็นการจำลองการซื้อขายจริงและเกี่ยวข้องกับการปฏิบัติตามตรรกะของระบบในตลาดจริง สิ่งสำคัญของการทดสอบประสิทธิภาพการส่งต่อคือการปฏิบัติตามตรรกะของระบบอย่างแน่นอน มิฉะนั้น การประเมินขั้นตอนนี้อย่างแม่นยำของกระบวนการจะกลายเป็นเรื่องยาก ถ้าไม่เป็นไปไม่ได้ โบรกเกอร์หลายแห่งเสนอบัญชีซื้อขายจำลองที่สามารถซื้อขายได้และคำนวณกำไรขาดทุนที่เกี่ยวข้อง การใช้บัญชีซื้อขายทดลองสามารถสร้างสภาพแวดล้อมแบบกึ่งเสมือนจริง เพื่อฝึกฝนการซื้อขายและประเมินระบบเพิ่มเติม


ท้ายสุด แต่ไม่ท้ายสุดฉันอยากจะพูดคุยเกี่ยวกับเครื่องมือที่จะเป็นประโยชน์ในทรงกลมนี้
เครื่องมือ
ซอฟต์แวร์การวิจัยและการซื้อขายอัตโนมัติ
Excel, R Stocksตัวสร้างกลยุทธ์ผู้ค้า (https://stockstrader.roboforex.com/ - ซอฟต์แวร์ฟรี), MultiCharts (ค่าธรรมเนียมใบอนุญาต), TradeStation (ค่าธรรมเนียมใบอนุญาต), Wealth-lab (ค่าธรรมเนียมใบอนุญาต)
รหัส
Matlab, Python, R, C #
ข้อมูล
- ข้อมูลความเชื่อมั่นทางสังคม (จาก Twitter และสื่อโซเชียลอื่น ๆ ดู ISentium, TickerTags)
- ข้อมูลฝูงชน (ดูที่ประมาณ)
- ข้อมูลพฤติกรรม (ดูการวิจัย Cabot)
- ภาพถ่ายดาวเทียมและภาพถ่ายทางอากาศ (ดู Orbital Insight)
- ข้อมูลพฤติกรรมผู้บริโภค (ดูความภักดีของแบรนด์)
- แหล่งข้อมูลออนไลน์ที่ไม่ใช่แบบดั้งเดิม (ดู Knowsis)
- OTAS (ข้อมูลทางเทคนิค)
ผู้ให้บริการอื่น ๆ
TIM Group, Discern, Essentia, Kensho, RavenPack, SocialMediaAnalytics, Ayasdi, TheySay Analytics, Quid, Rage Frameworks, Dataminr
หนังสือ (เป็นภาษาอังกฤษ)
- การค้าเชิงปริมาณ: วิธีการสร้างธุรกิจการค้าอัลกอริทึมของคุณเอง - เออร์เนสต์ชาน
- การซื้อขายแบบขั้นตอน: กลยุทธ์ที่ชนะและเหตุผลของพวกเขา - เออร์เนสต์ชาน
- ซื้อขายเครื่อง: ปรับใช้อัลกอริทึมคอมพิวเตอร์เพื่อพิชิตตลาด - เออร์เนสต์ชาน
- การซื้อขายขั้นตอนและ DMA: บทนำสู่กลยุทธ์การซื้อขายการเข้าถึงโดยตรง - Barry Johnson
- การค้าและการแลกเปลี่ยน: โครงสร้างจุลภาคของตลาดสำหรับผู้ประกอบการ - Larry Harris
เซิร์ฟเวอร์และวารสารทางการเงินยอดนิยมที่คุณสามารถหาแหล่งความคิดจาก (ภาษาอังกฤษ)
1. อาร์ซีฟ http://arxiv.org/archive/q-fin
2. สสส https://www.ssrn.com/en/
3. วารสารกลยุทธ์การลงทุน https://www.risk.net/journal-of-investment-strategies
4. วารสารการเงินการคำนวณ https://www.risk.net/journal-of-computational-finance
5. การเงินคณิตศาสตร์ https://onlinelibrary.wiley.com/journal/14679965
สรุป
อย่างที่เราเห็นมีวิธีการต่าง ๆ ในการสร้างกลยุทธ์การค้าอัลกอริทึม คุณสามารถเลือกสิ่งที่เหมาะสมกับระดับความรู้และโอกาสของคุณ นอกจากนี้การทดสอบย้อนหลังและการพัฒนาเพิ่มเติมหลังจากนั้นมีเพียงเราเท่านั้นที่สามารถเปลี่ยนไปใช้การฝึกฝนได้
หากคุณมีคำถามใด ๆ ฉันยินดีที่จะตอบคำถามเหล่านี้ในความคิดเห็นด้านล่าง