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

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

Views: มุมมอง 476
เวลาอ่านหนังสือ: 6 นาที



ส่วนประกอบที่สำคัญของระบบการซื้อขายอัลกอริธึมคือเครื่องมือการวิจัยประสิทธิภาพความสะดวกในการพัฒนาความยืดหยุ่นและการทดสอบการแยกข้อกังวลความคุ้นเคยการบำรุงรักษาความพร้อมใช้งานของซอร์สโค้ดค่าใช้จ่ายในการออกใบอนุญาต ก่อนที่จะตัดสินใจใช้เครื่องมือ "ดีที่สุด" ซึ่งการเขียนระบบการซื้อขายแบบอัตโนมัติด้วยจำเป็นต้องกำหนดข้อกำหนด:

  1. ความถี่ของการซื้อขายและปริมาณการซื้อขายมีแนวโน้มเป็นอย่างไร
  2. ระบบจะต้องการ การบริหาจัดการความเสี่ยง หรือโมดูลก่อสร้างผลงาน?
  3. ระบบจะต้องการ backtester ที่มีประสิทธิภาพสูงหรือไม่

ผู้ค้าที่ต้องการระบบที่ซับซ้อนและกำหนดเองมากขึ้นอาจต้องใช้ C #, Matlab หรือ Python แต่ฉันจะบอกว่า 95% ของผู้ค้ารายวัน Algorithmic Trading Software จะพอเพียง

1 - คำนวณใน Python, Matlab, C #

ในกรณีนี้ทักษะการเขียนโปรแกรมเป็นปัจจัยสำคัญในการสร้างอัลกอริทึมอัตโนมัติ กลยุทธ์การซื้อขาย. การมีความรู้ในภาษาการเขียนโปรแกรมเช่น Python หรือ R จะช่วยให้คุณสร้างหน่วยเก็บข้อมูลแบบ end-to-end เอ็นจิ้น backtest และระบบปฏิบัติการได้ด้วยตัวคุณเอง มันช่วยให้คุณสำรวจกลยุทธ์คลื่นความถี่ที่สูงขึ้นเพราะคุณจะสามารถควบคุม "กองเทคโนโลยี" ได้อย่างเต็มที่ แม้ว่านี่จะหมายความว่าคุณสามารถทดสอบซอฟต์แวร์และกำจัดข้อผิดพลาดได้ แต่ก็หมายถึงเวลาที่ใช้ในการเขียนโค้ดโครงสร้างพื้นฐานและใช้กลยุทธ์ในการดำเนินการน้อยลงอย่างน้อยก็ในช่วงก่อนหน้านี้ในอาชีพการจดสิทธิบัตรของคุณ

เวิร์กโฟลว์พื้นฐานมีดังต่อไปนี้:

  • กลยุทธ์การซื้อขายแบบอัลกอริทึมจะป้อนข้อมูลการตลาด (ประวัติหรือถ่ายทอดสด) ลงในโปรแกรมคอมพิวเตอร์
  • จากนั้นโปรแกรมจะส่งคำสั่งซื้อไปยังโบรกเกอร์ผ่าน API และรับการแจ้งเตือนสถานะคำสั่งซื้อกลับมาจากนายหน้า

MATLAB และ Python เป็นแพลตฟอร์มการทดสอบย้อนหลังที่ฉันโปรดปราน มีอินเทอร์เฟซที่ครอบคลุมและใช้งานง่ายมากสำหรับการพัฒนาและการดีบักโปรแกรมและมีกล่องเครื่องมือมากมายที่ครอบคลุมเกือบทุกเทคนิคทางคณิตศาสตร์หรือการคำนวณเชิง arcane ที่คุณอาจพบในการพัฒนากลยุทธ์การซื้อขาย

นำเข้าข้อมูลประวัติจาก Yahoo Finance ไปยัง Python
รูปภาพ: นำเข้าข้อมูลประวัติจาก Yahoo Finance ไปยัง Python
กระบวนการซื้อขายอัลกอริธึม
รูปภาพ: กระบวนการซื้อขายอัลกอริธึม

2 - ซอฟต์แวร์การซื้อขายอัลกอริทึม ไม่มีทักษะการเขียนโปรแกรม

วิธีที่สองคือเครื่องมืออัลกอริทึมเช่น Multicharts, StrategyQuant หรือ R Trader Strategy Builder (ฟรีและใช้งานง่าย, บนพื้นฐานคลาวด์) และอีกมากมาย

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

แพลตฟอร์มทั้งหมดมีข้อดีข้อเสียและเชิงลบสำหรับเรา R Trader Strategy Builder เป็นโมดูลที่ใช้งานง่ายซึ่งเป็นกรรมสิทธิ์ของ บริษัท ซึ่งช่วยให้ผู้ค้าปลีกสามารถออกแบบย้อนหลังและปรับใช้กลยุทธ์การซื้อขายแบบอัลกอริทึมโดยไม่ต้องมีความรู้ภาษาโปรแกรม

R แพลตฟอร์มการซื้อขายของ Trader มีวิธีที่ง่ายกว่าสำหรับคุณที่จะออกจากการซื้อขายจุดและคลิกแบบดั้งเดิม ออกแบบมาสำหรับนักลงทุนที่มีประสบการณ์รวมถึงผู้มาใหม่ส่วนติดต่อที่ใช้งานง่ายของเราช่วยให้คุณสามารถกำหนดกลยุทธ์การซื้อขายอัตโนมัติได้ในเวลาไม่กี่นาที ไม่มีการเข้ารหัสและไม่ยุ่งยาก - คุณจะพร้อมใช้งานในเวลาไม่นาน

backtesting ตัวช่วยสร้างกลยุทธ์ในตัวสร้างกลยุทธ์ผู้ซื้อขาย R
รูปภาพ: Backtesting ตัวช่วยสร้างกลยุทธ์ในตัวสร้างกลยุทธ์ผู้ซื้อขาย R

การทดสอบและประเมินผลระบบการซื้อขาย

การวิจัยเกี่ยวข้องกับการประเมินประสิทธิภาพของกลยุทธ์เหนือข้อมูลในอดีต กระบวนการประเมินกลยุทธ์การซื้อขายเหนือข้อมูลตลาดก่อนหน้านี้รู้จักกันในชื่อ backtesting

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

อะไรคือเหตุผลสำคัญสำหรับการทดสอบกลยุทธ์ย้อนหลัง

การกรอง

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

การสร้างแบบจำลอง

การทดสอบซ้ำช่วยให้เราสามารถ (ทดสอบอย่างปลอดภัย!) ทดสอบรูปแบบใหม่ของสภาวะตลาดที่แน่นอน

ตัวอย่างและไม่อยู่ในกลุ่มตัวอย่าง

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

การเพิ่มประสิทธิภาพของกลยุทธ์การซื้อขายอัลกอริทึม

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

การทดสอบประสิทธิภาพล่วงหน้า

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

รูปภาพ: backtesting แผนภูมิใน Python
รูปภาพ: backtesting แผนภูมิใน Python
backtesting การซื้อขายย้อนหลังในเครื่องมือสร้างกลยุทธ์ผู้ซื้อขาย R
รูปภาพ: backtesting การซื้อขายย้อนหลังในเครื่องมือสร้างกลยุทธ์ผู้ซื้อขาย R

ท้ายสุด แต่ไม่ท้ายสุดฉันอยากจะพูดคุยเกี่ยวกับเครื่องมือที่จะเป็นประโยชน์ในทรงกลมนี้

เครื่องมือ

ซอฟต์แวร์การวิจัยและการซื้อขายอัตโนมัติ

ตัวสร้างกลยุทธ์ผู้ซื้อขาย Excel, R (https://rtrader.umstel.com - ซอฟต์แวร์ฟรี), StrategyQuant (ค่าธรรมเนียมใบอนุญาต), MultiCharts (ค่าธรรมเนียมใบอนุญาต), TradeStation (ค่าธรรมเนียมใบอนุญาต), Wealth-lab (ค่าธรรมเนียมใบอนุญาต)

รหัส

Matlab, Python, R, C #

ข้อมูล

  1. ข้อมูลความเชื่อมั่นทางสังคม (จาก Twitter และสื่อโซเชียลอื่น ๆ ดู ISentium, TickerTags)
  2. ข้อมูลฝูงชน (ดูที่ประมาณ)
  3. ข้อมูลพฤติกรรม (ดูการวิจัย Cabot)
  4. ภาพถ่ายดาวเทียมและภาพถ่ายทางอากาศ (ดู Orbital Insight)
  5. ข้อมูลพฤติกรรมผู้บริโภค (ดูความภักดีของแบรนด์)
  6. แหล่งข้อมูลออนไลน์ที่ไม่ใช่แบบดั้งเดิม (ดู Knowsis)
  7. OTAS (ข้อมูลทางเทคนิค)

ผู้ให้บริการอื่น ๆ

TIM Group, Discern, Essentia, Kensho, RavenPack, SocialMediaAnalytics, Ayasdi, TheySay Analytics, Quid, Rage Frameworks, Dataminr

หนังสือ (เป็นภาษาอังกฤษ)

  1. การค้าเชิงปริมาณ: วิธีการสร้างธุรกิจการค้าอัลกอริทึมของคุณเอง - เออร์เนสต์ชาน
  2. การซื้อขายแบบขั้นตอน: กลยุทธ์ที่ชนะและเหตุผลของพวกเขา - เออร์เนสต์ชาน
  3. ซื้อขายเครื่อง: ปรับใช้อัลกอริทึมคอมพิวเตอร์เพื่อพิชิตตลาด - เออร์เนสต์ชาน
  4. การซื้อขายขั้นตอนและ DMA: บทนำสู่กลยุทธ์การซื้อขายการเข้าถึงโดยตรง - Barry Johnson
  5. การค้าและการแลกเปลี่ยน: โครงสร้างจุลภาคของตลาดสำหรับผู้ประกอบการ - Larry Harris

1. arXiv http://arxiv.org/archive/q-fin
2. SSRN 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

สรุป

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

หากคุณมีคำถามใด ๆ ฉันยินดีที่จะตอบคำถามเหล่านี้ในความคิดเห็นด้านล่าง

เปิดบัญชีการซื้อขาย




ความคิดเห็น

บทความก่อนหน้านี้

หนึ่งสัปดาห์ในตลาด (01/13 - 01/19): สถิติและการตัดสินใจของธนาคารกลาง

สัปดาห์ใหม่ของเดือนมกราคมดูปกติมาก เรามีสถิติการเมืองและการตัดสินใจทางการเงินเล็กน้อย ดูเหมือนว่าเศรษฐกิจโลกและตลาดทุนทำงานเต็มรูปแบบหลังจากวันหยุดคริสต์มาสและปีใหม่

บทความต่อไป

3 หุ้นที่จะซื้อในปี 2020: Delta Air Lines, HP, Morgan Stanley

รอบ 12 ปีของการเติบโตของเศรษฐกิจสหรัฐฯกำลังดำเนินไป นี่คือช่วงเวลาที่ยาวนานที่สุดที่จะไม่มีวิกฤติ จุดเริ่มต้นของปี 2020 ยังคงเป็นกำลังใจให้กับนักลงทุนหุ้นยังคงทำจุดสูงสุดใหม่ตลอดเวลา คนที่ซื้อพวกเขาก่อนหน้านี้มีความสุขมากขึ้น