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

  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 หรือ R StocksTrader Strategy Builder (ฟรีและใช้งานง่าย บนระบบคลาวด์) และอื่นๆ อีกมากมาย

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

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

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

การทดสอบย้อนกลับ ตัวช่วยสร้างกลยุทธ์ใน R StocksTrader ตัวสร้างกลยุทธ์
รูปภาพ: การทดสอบย้อนหลัง ตัวช่วยสร้างกลยุทธ์ใน R StocksTrader ตัวสร้างกลยุทธ์

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

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

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

ดูสิ่งนี้ด้วย  ซื้อขายด้วยกลยุทธ์ Forex ร่อน CCI + EMA

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

การกรอง

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

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

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

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

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

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

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

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

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

รูปภาพ: backtesting แผนภูมิใน Python
รูปภาพ: backtesting แผนภูมิใน Python
การทดสอบย้อนกลับ การซื้อขายในอดีตใน R StocksTrader Strategy Builder
ภาพ: การทดสอบย้อนหลัง การซื้อขายในอดีตใน R StocksTrader Strategy Builder

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

เครื่องมือ

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

Excel, R Stocksตัวสร้างกลยุทธ์ผู้ค้า (https://stockstrader.roboforex.com/ - ซอฟต์แวร์ฟรี), 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. อาร์ซีฟ 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

สรุป

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

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

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


วัสดุจัดทำโดย

Editor in Chief ที่ R Blog