Friday, 14 July 2017

ซื้อขาย ระบบ Api ข้อมูล พจนานุกรม


การสร้างระบบการซื้อขายอัตโนมัติโดยใช้โบรกเกอร์เชิงโต้ตอบการซื้อขายแบบอัตโนมัติด้วยโบรกเกอร์แบบอินเทอร์แอคทีฟอินเทอร์เนาโบรกเกอร์อินเทอร์แอกทีฟเทรดดิ้งเองไม่ได้มีการซื้อขายแบบอัตโนมัติอย่างไรก็ตามโซลูชันหลายอย่างพร้อมใช้งานสำหรับผู้ค้าที่ต้องการระบบซื้อขายอัตโนมัติโดยใช้แพลตฟอร์ม IB Trader Workstation TSW รวมถึง Third - Party APIs. Programming Consultants APIs ของบุคคลที่สาม API Application Programming Interface เป็นรูปแบบภาษาที่ใช้โดยโปรแกรมประยุกต์เพื่อสื่อสารกับซอฟต์แวร์ระบบอื่น ๆ API ทำหน้าที่เป็นอินเทอร์เฟซหรือไประหว่างซึ่งช่วยให้รหัสสามารถสื่อสารกับแพลตฟอร์มการซื้อขาย IB ผู้ขายบุคคลที่สามนำเสนอ APIs ที่เป็นกรรมสิทธิ์ซึ่งมีขั้นตอนวิธีที่สร้างไว้ล่วงหน้าและแอพพลิเคชันซอฟต์แวร์ซื้อขาย plug-and-play ที่ออกแบบมาเพื่อใช้งานร่วมกับแพลตฟอร์มการซื้อขาย TWS Trader Workstation TWS ของ IB Trader Workstation TWS มีอยู่ใน IB จากโฮมเพจคลิกหัวข้อ Education และเลือก Marketplace IB Re และหากคุณยอมรับเงื่อนไขให้คลิกหากคุณเห็นด้วยกับข้อจำกัดความรับผิดชอบโปรดคลิกที่นี่เพื่อดำเนินการต่อคลิกที่แท็บเครื่องมือซอฟต์แวร์และซอฟต์แวร์จัดการสั่งซื้อย่อยเพื่อดูผู้ให้บริการและผลิตภัณฑ์ที่แสดงในรูปที่ 1 รูปที่ 1 - เลือก แท็บเครื่องมือซอฟต์แวร์ใน Marketplace IB เพื่อเรียกดูผู้จัดจำหน่ายของผู้ขายรายอื่นนอกเหนือจาก APIs เชิงพาณิชย์แล้ว Marketplace IB ยังมีลิงก์ไปยัง Programming Consultants ซึ่งสามารถช่วยผู้ค้าและนักลงทุนในการพัฒนาตัวชี้วัดและกลยุทธ์ที่กำหนดเองได้ ใช้ในการซื้อขายอัตโนมัติที่ปรึกษาให้รหัสในหลายภาษารวมทั้ง Java, C, Visual Basic, SQL, Perl, Matlab และอื่น ๆ แพลตฟอร์มการค้าที่เป็นกรรมสิทธิ์ภาษาที่สามารถเชื่อมต่อกับ IB. Keep ทราบว่าโปรแกรมเมอร์สามารถโปรแกรม กฎที่แน่นอนและโดยปกติแล้วพวกเขาไม่ได้ให้คำแนะนำในการปรับปรุงความสามารถในการทำกำไรของระบบ - เฉพาะประสิทธิภาพของโค้ดเท่านั้นก่อนที่จะทำงานกับ a โปรแกรมเมอร์เป็นสิ่งสำคัญที่จะสามารถกำหนดระบบการค้าของรายการทางออกและตรรกะการจัดการหากสามารถกำหนดก็อาจจะ coded. Programming กับ IB APIs โซลูชั่นที่สามคือสำหรับผู้ค้าที่มีทักษะหรือความปรารถนาที่จะ เรียนรู้การเขียนโปรแกรมของตัวเอง APIs Interactive โบรกเกอร์มี API หลายตัวที่ผู้ค้าสามารถใช้เพื่อเชื่อมต่อผ่าน TWS หรือ IB Gateway การเชื่อมต่อผ่าน TWS ต้องการให้แอพพลิเคชันทำงาน แต่ช่วยให้ผู้ค้าสามารถทดสอบและยืนยันได้ว่าใบสั่ง API ทำงานได้อย่างถูกต้อง การเชื่อมต่อผ่านเกตเวย์ IB ในมืออื่น ๆ ไม่ได้มีอินเตอร์เฟซสำหรับการทดสอบและการยืนยัน แต่จะช่วยให้ API สามารถทำงานได้โดยไม่ต้องใช้แอพพลิเคชัน GUI ขนาดใหญ่เมื่อ API ของ บริษัท อื่นจัดเตรียมอัลกอริทึมที่สร้างขึ้นมาใหม่ API IB สภาพแวดล้อมการเขียนโปรแกรมเป็นหลักวัสดุดิบ IB ให้อุปกรณ์และส่วนประกอบและผู้ใช้ไม่ทั้งหมดของการเขียนโปรแกรมผู้ใช้สามารถเขียนโปรแกรมในหลายภาษารวมทั้ง C , Java, ActiveX หรือ DDE for Excel มีการตั้งค่าต่างๆเกี่ยวกับ API ใน TWS ที่ผู้ค้าสามารถกำหนดค่าได้ดังรูปที่ 2 คู่มืออ้างอิง IB API ที่มีอยู่ในการค้นหาเว็บไซต์ Interactive Brokers สำหรับคู่มืออ้างอิง API จะแสดงภาพรวมด้วย เป็นคำแนะนำเฉพาะสำหรับภาษาการเขียนโปรแกรมต่างๆรูปที่ 2 - การกำหนดการตั้งค่า API ใน TWS ผู้ค้าที่เกี่ยวข้องที่ต้องการใช้ระบบการซื้อขายอัตโนมัติผ่านทางแพลตฟอร์มโบรกเกอร์แบบโต้ตอบมีหลายทางเลือกไม่ใช้โปรแกรมเมอร์อาจต้องการสำรวจ API ของบุคคลที่สาม ผู้ค้าที่มีตัวเลือกการปรับแต่งหรือ plug-and-play หลากหลายตัวเลือก Traders ที่มีไอเดียพิเศษสามารถทำงานร่วมกับที่ปรึกษาด้านการเขียนโปรแกรมที่มีคุณสมบัติเหมาะสมผู้ที่มีประสบการณ์ด้านการเขียนโปรแกรมหรือเวลาและต้องการเรียนรู้ภาษาเขียนโปรแกรมสามารถใช้ IB APIs ในการพัฒนาระบบการซื้อขายอัตโนมัติ บลูมเบิร์ก Download. Date 7 ธันวาคม 2013 ขนาด 69 6 ปรับปรุงแบบอักษรเสริม Bloomberg API BLPAPI คือชุดของซอฟต์แวร์อิสระที่มีการพัฒนา SDK ที่อนุญาตให้นักพัฒนาซอฟต์แวร์สร้างแอพพลิเคชันที่ใช้ข้อมูลตลาด Framework v3 5 ติดตั้งหรืออัพเดตซอฟต์แวร์ Private Framework ระบบการจัดซื้อ API Components Client Downloads ซอฟท์แวร์นี้ใช้เฉพาะกับผู้ใช้ระบบ Bloomberg Trading System เท่านั้น Bloomberg for Blackberry Bloomberg Professional App สำหรับ Blackberry. Trading System API Data Dictionary ซอฟต์แวร์นี้มีเฉพาะสำหรับผู้ใช้ Bloomberg Trading System. Date เกมเหมือนชีวิตเป็นแปลก 6 กุมภาพันธ์ 2012 ขนาด 41 4 ติดตั้งแบบอักษร Bloomberg VoiceDesktop การมีส่วนร่วมแอพพลิเคชัน v ซอฟต์แวร์นี้เป็นเพียงสำหรับการมีส่วนร่วมข้อมูล Bloomberg ซอฟต์แวร์นี้จะนำคุณสู่การสร้างแฟ้มการกำหนดค่าที่กำหนดเองสำหรับ การติดตั้งแบบอัตโนมัติของบริการบลูมเบิร์ก Professional Service วันที่ 27 มีนาคม 2555 ขนาด 3 58 MB Excel Add-in สำหรับผู้ใช้ B-Pipe และ Platformed Platform แบบ 32 บิตที่มีการจัดการรุ่น 32 บิตการติดตั้งอักษรบลูมเบิร์ก Voice FontsDate September 11, 2011 ขนาด 10 6 MB Office Tools ชุดติดตั้งสำหรับ Windows XP workstations ที่รัน Office 2007.Date 27 มีนาคม 2012 ขนาด 639 KB Utilities Client Downlo โปรแกรมจัดการรายการผู้จัดการอัปโหลดซอฟต์แวร์ช่วยให้ลูกค้าสามารถอัปโหลดตะกร้าของคำสั่งซื้อหุ้นทั้งหมดเบราว์เซอร์อินเทอร์เน็ตฟรีดาวน์โหลดลงในแอพพลิเคชัน List Manager บน Bloomberg Professional Service. Bloomberg สำหรับ Android Bloomberg Professional App สำหรับ Android. Date 5 พฤษภาคม 2014 ขนาด 49 5 MB ติดตั้งหรือ อัพเดตซอฟต์แวร์ Private Framework เดสก์ท็อปแอ็พพลิเคชันการดาวน์โหลดไคลเอ็นต์ซอฟต์แวร์นี้มีไว้สำหรับ Bloomberg เท่านั้น TradingForex Trading Diary 1 - การซื้อขาย Forex อัตโนมัติกับ OANDA API ก่อนหน้านี้ใน QuantStart 2014 ในบทวิจารณ์ที่ฉันจะใช้จ่ายบางส่วน 2015 เขียนเกี่ยวกับการซื้อขายแลกเปลี่ยนอัตโนมัติทำมาให้ฉันเองมักจะดำเนินการวิจัยในตลาดหุ้นและตลาดล่วงหน้าฉันคิดว่ามันจะสนุกและการศึกษาเพื่อเขียนเกี่ยวกับประสบการณ์ของฉันเข้าสู่ตลาด forex ในรูปแบบของไดอารี่แต่ละรายการไดอารี่จะพยายาม เพื่อสร้างสิ่งเหล่านี้ทั้งหมดก่อนหน้านี้ แต่ควรจะมีความสามารถในการควบคุมตนเองด้วยเช่นกันในรายการแรกของไดอารี่ I ll อธิบายถึงวิธีการตั้งค่าบัญชีการเป็นนายหน้าซื้อขายหลักทรัพย์ใหม่กับ OANDA รวมถึงวิธีการสร้างเครื่องมือการซื้อขายแบบมัลติเธรดที่ขับเคลื่อนโดยเหตุการณ์ซึ่งจะสามารถดำเนินการเทรดได้อย่างอัตโนมัติทั้งในด้านการปฏิบัติและการตั้งค่าสดในปีที่แล้วเราใช้เวลาดูมาก backtester เหตุการณ์ที่เกิดขึ้นเป็นหลักสำหรับหุ้นและ ETFs หนึ่งที่ฉันนำเสนอด้านล่างนี้มุ่งสู่ forex และสามารถใช้สำหรับการซื้อขายกระดาษหรือ live trading ฉันได้เขียนคำแนะนำต่อไปนี้ทั้งหมดสำหรับ Ubuntu 14 04 แต่ควรจะแปลให้ Windows หรือ Mac OS X โดยใช้การกระจาย Python เช่น Anaconda ไลบรารีเพิ่มเติมที่ใช้สำหรับเครื่องมือการค้า Python เป็นไลบรารีที่ต้องการซึ่งจำเป็นสำหรับการสื่อสารกับ OANDA API เนื่องจากเป็นโพสต์แรกเกี่ยวกับการซื้อขายแลกเปลี่ยนเงินตราต่างประเทศโดยตรง และรหัสที่นำเสนอด้านล่างนี้สามารถปรับให้เข้ากับสภาพแวดล้อมการซื้อขายแบบสดได้อย่างตรงไปตรงมาข้าพเจ้าขอนำเสนอเรื่องการสละสิทธิ์ต่อไปนี้การปฏิเสธการค้าการแลกเปลี่ยนเงินตราต่างประเทศในขอบ มีความเสี่ยงสูงและอาจไม่เหมาะสมสำหรับนักลงทุนทุกรายผลการดำเนินงานที่ผ่านมาไม่ได้เป็นตัวบ่งชี้ถึงผลการดำเนินงานในอนาคตระดับความสามารถในการยกระดับสูงสามารถทำงานได้ดีกับคุณและของคุณก่อนที่จะตัดสินใจลงทุนในอัตราแลกเปลี่ยนคุณควรพิจารณาการลงทุนของคุณอย่างรอบคอบ วัตถุประสงค์ระดับประสบการณ์และความเสี่ยงความเป็นไปได้ที่คุณสามารถรักษาสูญเสียบางส่วนหรือทั้งหมดของการลงทุนครั้งแรกของคุณและดังนั้นคุณจึงไม่ควรลงทุนเงินที่คุณไม่สามารถจะสูญเสียคุณควรจะตระหนักถึงความเสี่ยงทั้งหมดที่เกี่ยวข้องกับต่างประเทศ การซื้อขายแลกเปลี่ยนและขอคำปรึกษาจากที่ปรึกษาทางการเงินอิสระหากคุณมีข้อสงสัยใด ๆ ซอฟต์แวร์นี้มีให้ตามที่เป็นอยู่และการรับประกันโดยชัดแจ้งหรือโดยนัยซึ่งรวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของการซื้อสินค้าและความเหมาะสมสำหรับวัตถุประสงค์เฉพาะจะถูกปฏิเสธ ในกรณีที่ผู้สำเร็จราชการแผ่นดินหรือผู้ร่วมสมทบต้องไม่รับผิดต่อความเสียหายโดยทางตรงโดยทางอ้อมอุบัติเหตุพิเศษเป็นแบบอย่างหรือเป็นผลสืบเนื่องมาจาก cluding แต่ไม่ จำกัด เพียงการจัดซื้อสินค้าทดแทนหรือบริการการสูญเสียการใช้ข้อมูลหรือกำไรหรือการหยุดชะงักทางธุรกิจ แต่เกิดขึ้นและในทฤษฎีความรับผิดใด ๆ ไม่ว่าจะในสัญญาความรับผิดที่เข้มงวดหรือการละเมิดรวมทั้งประมาทหรืออื่น ๆ ที่เกิดขึ้นในใด ๆ ออก ของการใช้ซอฟต์แวร์นี้แม้ว่าจะได้รับการแนะนำเกี่ยวกับความเป็นไปได้ของความเสียหายดังกล่าวการตั้งค่าบัญชีกับ OANDA คำถามแรกที่ต้องคำนึงถึงคือเลือก OANDA ทำไมต้องใช้ Google Googling สำหรับ forex โบรกเกอร์ที่มี API ผมเห็นว่า OANDA ได้เปิดตัว API REST ที่เหมาะสมซึ่งสามารถสื่อสารได้โดยง่ายจากภาษาเกือบทุกภาษาในลักษณะที่ตรงไปตรงมามากหลังจากอ่านเอกสาร API ของนักพัฒนาซอฟต์แวร์แล้วเราจึงตัดสินใจที่จะลองทดสอบให้ดียิ่งขึ้น ชัดเจน - ฉันไม่มีความสัมพันธ์กับ OANDA ก่อนหน้านี้และกำลังให้คำแนะนำนี้ตามประสบการณ์ที่ จำกัด ของฉันในการเล่นกับ API การปฏิบัติของตนและการใช้งานสั้น ๆ f. หรือข้อมูลตลาดดาวน์โหลดในขณะที่ใช้ในกองทุนก่อนหน้านี้ถ้าใครได้เจอนายหน้าซื้อขายอัตราใด ๆ อื่น ๆ ที่ยังมี API ที่คล้ายคลึงกันในปัจจุบันแล้วฉันจะยินดีที่จะให้พวกเขามองเช่นกันก่อนที่จะใช้ API จะต้องลงทะเบียนสำหรับ บัญชีฝึกหัดเมื่อต้องการทำเช่นนี้ให้ไปที่ลิงค์ลงชื่อสมัครใช้คุณจะเห็นหน้าจอต่อไปนี้ด้วยหน้าจอลงชื่อสมัครใช้ของ DOMA จากนั้นคุณจะสามารถลงชื่อเข้าใช้ด้วยข้อมูลรับรองการเข้าสู่ระบบได้ตรวจสอบให้แน่ใจว่าได้เลือกแท็บ fxTradePractice จากช่อง sign - in หน้าจอ OANDA เมื่อคุณจะต้องจดบันทึกหมายเลขบัญชีของคุณซึ่งอยู่ใต้ส่วนหัว My Funds ข้างเหมืองหลักคือหมายเลข 7 หลักนอกจากนี้คุณยังต้องสร้าง โทเค็น API ส่วนบุคคลคลิกจัดการการเข้าถึง API ด้านล่างแท็บการทำงานอื่น ๆ ที่ด้านล่างซ้ายในขั้นตอนนี้คุณจะสามารถสร้างโทเค็น API ได้คุณจะต้องใช้คีย์นี้เพื่อใช้ภายหลังเพื่อให้แน่ใจว่าได้จดบันทึกไว้ด้วยเช่นกัน ตอนนี้คุณต้องการเปิดตัวโปรแกรม FXTrade Practice ซึ่งจะช่วยให้เราสามารถดูคำสั่งและการสูญเสียกำไรของเราหากคุณใช้ระบบ Ubuntu คุณจำเป็นต้องติดตั้ง Java เวอร์ชั่นที่แตกต่างกันเล็กน้อยโดยเฉพาะรุ่น Oracle ของ Java 8 หากคุณไม่ได้ทำเช่นนี้ จำลองการปฏิบัติจะไม่โหลดจากเบราว์เซอร์ที่ฉันเรียกใช้คำสั่งเหล่านี้ในระบบของฉันขณะนี้คุณสามารถเปิดใช้สภาพแวดล้อมการซื้อขายการปฏิบัติกลับไปที่แดชบอร์ดของ OANDA และคลิกสีเขียวที่ไฮไลต์เปิดการเชื่อมโยง FXTrade Practice จะนำมาโต้ตอบ Java ถาม ไม่ว่าคุณต้องการเรียกใช้คลิกเรียกใช้และเครื่องมือ fxTrade Practice จะโหลด My defaulted เป็นแผนภูมิเทียน 15 นาทีของ EUR USD พร้อมแผง Quote ในหน้าจอ left. ANDA fxTrade Practice ที่หน้าจอนี้เราพร้อมที่จะเริ่มต้นการออกแบบและ การเข้ารหัสระบบการซื้อขายแลกเปลี่ยนอัตโนมัติของเรากับ OANDA API ภาพรวมของ Trading Architecture หากคุณได้ติดตามซีรี่ส์ backtester ที่มีเหตุการณ์เป็นตัวขับเคลื่อนสำหรับหุ้นและ ETF ที่ฉันสร้างขึ้นเมื่อปีที่แล้วคุณจะทราบถึงวิธีการดังกล่าว n ฟังก์ชั่นระบบการซื้อขายที่ขับเคลื่อนโดยเหตุการณ์ (event-driven trading system functions) สำหรับบรรดาผู้ที่ยังใหม่กับซอฟต์แวร์ที่ขับเคลื่อนด้วยเหตุการณ์ฉันขอแนะนำให้อ่านบทความนี้เพื่อให้เข้าใจถึงวิธีที่พวกเขาทำงานได้ดียิ่งขึ้นโปรแกรมทั้งหมดจะถูกดำเนินการใน infinte ในขณะที่ ลูปจะสิ้นสุดลงเมื่อปิดระบบการซื้อขายกลไกการสื่อสารส่วนกลางของโปรแกรมจะถูกส่งผ่านทางคิวที่มีคิวเหตุการณ์คิวต์ถูกถามอย่างต่อเนื่องเพื่อตรวจสอบเหตุการณ์ใหม่เมื่อเหตุการณ์ถูกถอดออกจากด้านบนสุดของคิวแล้ว ต้องมีการจัดการโดยส่วนที่เหมาะสมของโปรแกรมดังนั้นฟีดข้อมูลตลาดอาจสร้าง TickEvent s ซึ่งวางอยู่ในคิวเมื่อมีราคาตลาดใหม่มาถึงเป้าหมายที่สร้างสัญญาณอาจสร้าง OrderEvent ที่จะส่งไปยังนายหน้าซื้อขายหลักทรัพย์ ประโยชน์ของระบบดังกล่าวจะได้รับจากข้อเท็จจริงที่ว่าไม่มีความสำคัญกับลำดับหรือชนิดของเหตุการณ์ที่วางอยู่ในคิวเนื่องจากจะได้รับการจัดการอย่างถูกต้องโดยองค์ประกอบด้านขวาภายใน th e โปรแกรมนอกจากนี้ส่วนต่างๆของโปรแกรมสามารถทำงานในหัวข้อที่แยกต่างหากซึ่งหมายความว่าไม่มีการรอคอยใด ๆ สำหรับส่วนประกอบใด ๆ ก่อนการประมวลผลอื่น ๆ ซึ่งมีประโยชน์อย่างมากในสถานการณ์การค้าอัลกอริทึมที่ตัวจัดการแหล่งข้อมูลตลาดและเครื่องกำเนิดสัญญาณของกลยุทธ์มีมากมาย ลักษณะการทำงานที่แตกต่างกันห่วงการซื้อขายหลักจะได้รับโดย pseudo - รหัส Python ต่อไปนี้เป็นที่เรากล่าวข้างต้นรหัสทำงานในวงอนันต์ประการแรกคิวจะถึงขนาดดึงเหตุการณ์ใหม่หากคิวว่างเปล่าแล้ววงเพียง รีสตาร์ทหลังจากระยะเวลาการนอนหลับสั้น ๆ เรียกว่า heartbeat หากพบเหตุการณ์ประเภทของมันถูกประเมินแล้วโมดูลที่เกี่ยวข้องทั้งกลยุทธ์หรือตัวจัดการการดำเนินการถูกเรียกใช้เพื่อจัดการเหตุการณ์และอาจสร้างใหม่ที่กลับไปยังคิว ส่วนประกอบพื้นฐานที่เราจะสร้างขึ้นสำหรับระบบการค้าของเรา ได้แก่ ตัวจัดการราคาต่อไปนี้ - การทำเช่นนี้จะทำให้การเชื่อมต่อที่ยาวนานเปิดกว้างขึ้น เซิร์ฟเวอร์ OANDAs และส่งข้อมูลติ๊กเช่นการเสนอราคาถามผ่านการเชื่อมต่อสำหรับเครื่องมือใด ๆ ที่เราสนใจอีกครั้ง Generator สัญญาณเชิงกลยุทธ์ - จะดำเนินการตามลำดับของเหตุการณ์เห็บและใช้พวกเขาเพื่อสร้างคำสั่งซื้อขายที่จะดำเนินการโดยดำเนินการตัวจัดการดำเนินการ handler - ใช้ชุดของเหตุการณ์การสั่งซื้อและสุ่มสี่สุ่มห้าปฏิบัติกับ OANDA. Events - วัตถุเหล่านี้เป็นข้อความที่ถูกส่งผ่านไปรอบ ๆ ในคิวเหตุการณ์เราต้องการเพียงสองอย่างสำหรับการใช้งานนี้ ได้แก่ TickEvent และ OrderEvent. Main Entry Point - จุดเข้าหลักยังรวมถึงลูปการค้าที่ polls อย่างต่อเนื่องคิวข้อความและ dispatches ข้อความไปยังคอมโพเนนต์ที่ถูกต้องซึ่งมักเรียกว่า loop เหตุการณ์หรือตัวจัดการเหตุการณ์เราจะหารือเกี่ยวกับการใช้งานของรหัสในรายละเอียดที่ด้านล่างของ บทความคือรายการที่สมบูรณ์ของไฟล์รหัสต้นฉบับทั้งหมดถ้าคุณวางไว้ในไดเรกทอรีเดียวกันและเรียกใช้งูหลามคุณจะเริ่มต้นสร้างคำสั่งสมมติว่าคุณมีไฟล์ d ใน ID บัญชีและโทเค็นการรับรองความถูกต้องของคุณจาก OANDA. Python Implementation การปฏิบัติที่ไม่ดีในการจัดเก็บรหัสผ่านหรือคีย์การรับรองความถูกต้องภายในโค้ดแบ็ทเป็นคุณไม่สามารถคาดเดาได้ว่าใครจะได้รับอนุญาตให้เข้าถึงโครงการในระบบการผลิตที่เราจัดเก็บข้อมูลรับรองเหล่านี้ไว้ เป็นตัวแปรสภาพแวดล้อมกับระบบแล้วสอบถาม envvars เหล่านี้ทุกครั้งที่รหัส redeployed เพื่อให้แน่ใจว่ารหัสผ่านและโทเค็น auth จะไม่ถูกเก็บไว้ในระบบควบคุมเวอร์ชันอย่างไรก็ตามเนื่องจากเรามีความสนใจเพียงอย่างเดียวในการสร้างระบบการค้าของเล่นและไม่ เกี่ยวข้องกับรายละเอียดการผลิตในบทความนี้เราจะแยกโทเค็นการตรวจสอบเหล่านี้แทนลงในไฟล์การตั้งค่าในไฟล์การกำหนดค่าต่อไปนี้เรามีพจนานุกรมชื่อ ENVIRONMENTS ซึ่งจัดเก็บปลายทาง API สำหรับทั้ง OANDA ราคาสตรีมมิ่ง API และ API การซื้อขายแต่ละพจนานุกรมย่อย มีจุดเชื่อมต่อ API ที่แยกกัน 3 ชุดและ sandbox ที่ใช้กันทั่วไป Sandbox API ใช้สำหรับทดสอบโค้ดและตรวจสอบว่า t นี่ไม่มีข้อผิดพลาดหรือข้อผิดพลาดไม่มีการรับประกันการปฏิบัติงานจริงของ API จริงหรือปฏิบัติ API การปฏิบัติในสาระสำคัญให้ความสามารถในการค้ากระดาษนั่นคือมันมีคุณสมบัติทั้งหมดของ API จริงในบัญชีการปฏิบัติงานจำลอง API จริงก็คือ - มันคือการซื้อขายสดถ้าคุณใช้ปลายทางที่ในรหัสของคุณจะซื้อขายกับยอดเงินบัญชีของคุณอยู่อย่างระมัดระวังเป็นสำคัญเมื่อซื้อขายกับ API ปฏิบัติจำได้ว่าค่าใช้จ่ายในการทำธุรกรรมที่สำคัญของผลกระทบต่อตลาด ไม่ถือว่าเนื่องจากธุรกิจการค้าไม่ได้อยู่ในสภาพแวดล้อมจริงต้นทุนนี้ต้องถูกคิดในรูปแบบอื่นโดยใช้รูปแบบผลกระทบจากตลาดหากคุณต้องการประเมินประสิทธิภาพอย่างสมเหตุสมผลในต่อไปนี้เราใช้บัญชีการปฏิบัติตามที่กำหนดโดย DOMAIN เราต้องการสองพจนานุกรมแยกต่างหากสำหรับโดเมนหนึ่งสำหรับองค์ประกอบสตรีมมิ่งและการซื้อขาย API ในที่สุดเรามี ACCESSTOKEN และ ACCOUNTID ฉันเต็มสองด้านล่างด้วย du ID mmy ดังนั้นคุณจะต้องใช้ของคุณเองซึ่งสามารถเข้าถึงได้จากหน้าบัญชี OANDA ขั้นตอนต่อไปคือการกำหนดเหตุการณ์ที่คิวจะใช้เพื่อช่วยให้ทุกส่วนของการสื่อสารแต่ละเราต้องสอง TickEvent และ OrderEvent แรก เก็บข้อมูลเกี่ยวกับข้อมูลในตลาดตราสารเช่นการเสนอราคาที่ดีที่สุดและเวลาการค้าส่วนที่สองใช้ในการส่งคำสั่งไปยังผู้ดำเนินการและมีเครื่องมือจำนวนหน่วยการค้าตลาดประเภทสั่งซื้อหรือวงเงินและด้านข้างเช่น ซื้อและขายในอนาคตหลักฐานรหัสเหตุการณ์ของเราที่เราจะสร้างชั้นฐานที่เรียกว่าเหตุการณ์และมีเหตุการณ์ทั้งหมดสืบทอดมาจากนี้รหัสให้ไว้ด้านล่างในระดับต่อไปที่เราจะสร้างจะจัดการกับกลยุทธ์การค้าในนี้ สาธิตเราจะสร้างกลยุทธ์ค่อนข้างไร้สาระที่เพิ่งได้รับทั้งหมดของตลาดเห็บและเมื่อทุก 5 ติ๊กสุ่มซื้อหรือขาย 10,000 หน่วยของ EUR USD เห็นได้ชัดว่านี่เป็นกลยุทธ์ที่น่าขัน แต่ก็เป็นที่ยอดเยี่ยม สำหรับวัตถุประสงค์ในการทดสอบเพราะมันเป็นเรื่องง่ายที่จะเข้าใจและเข้าใจในรายการไดอารี่ในอนาคตเราจะแทนที่นี้ด้วยบางสิ่งบางอย่างที่น่าตื่นเต้นมากที่หวังว่าจะเปิดไฟล์ profit. The สามารถพบได้ด้านล่าง Let s ทำงานผ่านมันและดูสิ่งที่เกิดขึ้นประการแรก เรานำเข้าไลบรารีแบบสุ่มและวัตถุ OrderEvent จากเราต้องการ lib แบบสุ่มเพื่อเลือกคำสั่งซื้อหรือขายแบบสุ่มเราจำเป็นต้อง OrderEvent เนื่องจากเป็นกลยุทธ์ที่วัตถุจะส่งคำสั่งไปยังคิวเหตุการณ์ซึ่งจะดำเนินการในภายหลังโดย handler คลาส TestRandomStrategy ใช้เครื่องมือในกรณีนี้คือ EUR USD จำนวนหน่วยและคิวเหตุการณ์เป็นชุดของพารามิเตอร์จากนั้นจะสร้างตัวนับทิกส์ที่ใช้บอกว่ามีกี่กรณีที่ TickEvent ได้เห็นส่วนใหญ่ งานที่เกิดขึ้นในวิธี calculatesignals ซึ่งใช้เวลาเพียงเหตุการณ์กำหนดไม่ว่าจะเป็น TickEvent อื่นละเว้นและเพิ่มติ๊กเคาน์เตอร์แล้วตรวจสอบเพื่อดูว่า cou nt หารด้วย 5 และสุ่มซื้อหรือขายด้วยคำสั่งตลาดจำนวนหน่วยที่ระบุไม่ได้เป็นกลยุทธ์การค้าที่ยิ่งใหญ่ที่สุดในโลก แต่จะเหมาะสำหรับวัตถุประสงค์ในการทดสอบ API ของ OANDA ของเราต่อไป คอมโพเนนต์คือตัวจัดการการดำเนินการคลาสนี้ถูกมอบหมายให้ทำหน้าที่กับอินสแตนซ์ OrderEvent และทำการร้องขอไปยังโบรกเกอร์ในกรณีนี้ OANDA เป็นแบบใบ้นั่นคือไม่มีการจัดการความเสี่ยงหรือการซ้อนทับแบบ potfolio การดำเนินการจะดำเนินการตามคำสั่งใด ๆ ได้รับมอบเราต้องผ่านข้อมูลการตรวจสอบสิทธิ์ทั้งหมดไปยังชั้น Execution รวมทั้งการปฏิบัติโดเมนจริงหรือ sandbox โทเค็นการเข้าถึงและรหัสบัญชีจากนั้นเราจะสร้างการเชื่อมต่อที่ปลอดภัยกับ Pythons ที่สร้างขึ้นในไลบรารีส่วนใหญ่ของงาน เกิดขึ้นใน executeorder วิธีการที่ต้องการเหตุการณ์เป็นพารามิเตอร์จากนั้นจะสร้างพจนานุกรมสองชุด - ส่วนหัวและ params พจนานุกรมเหล่านี้จะถูกเข้ารหัสอย่างถูกต้องบางส่วน โดย urllib ห้องสมุด Python อื่นที่จะส่งเป็นคำขอ POST เพื่อ OANDAs API เราผ่านพารามิเตอร์ Content-Type และ Authorization ซึ่งรวมถึงข้อมูลการพิสูจน์ตัวตนของเรานอกจากนี้เราเข้ารหัสพารามิเตอร์ซึ่งรวมถึงตราสาร EUR USD หน่วยประเภทคำสั่ง และด้านซื้อขายสุดท้ายเราขอและบันทึกการตอบสนองคอมโพเนนต์ที่ซับซ้อนที่สุดของระบบการซื้อขายคือวัตถุ StreamingForexPrices ซึ่งจัดการการปรับปรุงราคาตลาดจาก OANDA มีสองวิธีคือ connecttostream และ streamtoqueue วิธีแรกใช้ Python ขอให้ไลบรารีเชื่อมต่อกับซ็อกเก็ตสตรีมมิ่งที่มีส่วนหัวและพารามิเตอร์ที่เหมาะสมพารามิเตอร์ต่างๆจะรวมถึง ID บัญชีและรายการเครื่องมือที่จำเป็นซึ่งควรจะรับฟังเพื่อการปรับปรุงในกรณีนี้เป็นเพียงเงิน EUR เท่านั้นหมายเหตุบรรทัดต่อไปนี้จะบอกถึงการเชื่อมต่อ สตรีมและเก็บไว้จึงเปิดในลักษณะยาวทำงานวิธีที่สอง streamtoqueue จริงพยายามเชื่อมต่อกับกระแสถ้า การตอบสนองไม่ประสบความสำเร็จเช่นรหัสการตอบสนองไม่ได้เป็น 200 แล้วเราก็กลับมาและออกถ้าประสบความสำเร็จเราพยายามที่จะโหลดแพ็คเก็ต JSON กลับเข้ามาในพจนานุกรม Python สุดท้ายเราจะแปลงพจนานุกรม Python ด้วยเครื่องมือราคาเสนอถามและประทับเวลาลงใน TickEvent ที่ถูกส่งไปยังคิวของเหตุการณ์ขณะนี้เรามีองค์ประกอบสำคัญทั้งหมดในสถานที่ขั้นตอนสุดท้ายคือการห่อหุ้มทุกสิ่งที่เราเขียนไว้ในโปรแกรมหลักเป้าหมายของไฟล์นี้คือการสร้างสองส่วนแยกกัน เธรดหนึ่งที่เรียกใช้ตัวจัดการการกำหนดราคาและอีกชุดหนึ่งซึ่งเรียกใช้ตัวจัดการการซื้อขายเราจำเป็นต้องใช้สองเธรดแยกกันใส่เพียงแค่เราดำเนินการสองชิ้นส่วนแยกต่างหากซึ่งทั้งสองอย่างนี้ทำงานอย่างต่อเนื่องถ้าเราสร้าง non - threaded แล้ว socket สตรีมมิ่งที่ใช้สำหรับการปรับปรุงการกำหนดราคาจะไม่เคยปล่อยกลับไปที่เส้นทางรหัสหลักและดังนั้นเราจะไม่จริงดำเนินการซื้อขายใด ๆ ในทำนองเดียวกันถ้าเราวิ่งห่วงการค้าดูด้านล่างเราจะไม่ ctually กลับเส้นทางการไหลไปยังราคาสตรีมซ็อกเก็ตดังนั้นเราต้องมีหลายหัวข้อหนึ่งสำหรับแต่ละองค์ประกอบเพื่อให้พวกเขาสามารถดำเนินการได้อย่างอิสระพวกเขาทั้งสองจะสื่อสารกันผ่านคิวเหตุการณ์ให้เราตรวจสอบนี้ bit futher เราสร้าง สองหัวข้อแยกกับบรรทัดต่อไปนี้เราผ่านฟังก์ชันหรือชื่อวิธีการไปยังอาร์กิวเมนต์คำหลักเป้าหมายแล้วผ่าน iterable เช่นรายการหรือ tuple เพื่ออาร์กิวเมนต์คำหลัก args ซึ่งแล้วส่งผ่านอาร์กิวเมนต์เหล่านั้นไปยังฟังก์ชันวิธีการที่เกิดขึ้นจริงในที่สุดเรา เริ่มต้นเธรดทั้งสองด้วยบรรทัดต่อไปนี้ดังนั้นเราจึงสามารถเรียกใช้สองวนลูปไม่มีที่สิ้นสุดได้อย่างมีประสิทธิภาพส่วนรหัสอย่างอิสระซึ่งทั้งสองสื่อสารผ่านคิวกิจกรรมหมายเหตุว่าไลบรารีเธรดแบบ Python ไม่ได้สร้างสภาวะแวดล้อมมัลติเธรดแบบ multi-core ที่แท้จริงเนื่องจาก การดำเนินการของ CPython ของ Python และ Global Interpreter Lock GIL หากคุณต้องการอ่านเพิ่มเติมเกี่ยวกับ multithreading ใน Python โปรดดูที่บทความนี้ลองดู ฉันส่วนที่เหลือของรหัสในรายละเอียดประการแรกเรานำเข้าห้องสมุดที่จำเป็นทั้งหมดรวมทั้ง Queue threading และเวลาจากนั้นเราจะนำเข้าไฟล์โค้ดข้างต้นทั้งหมดที่ผมเองชอบที่จะใช้ประโยชน์จากการตั้งค่าใด ๆ ซึ่งเป็นนิสัยผมหยิบขึ้นมาจากการทำงานร่วมกับ Django หลังจากที่เรากำหนดฟังก์ชันการค้าซึ่งได้อธิบายไว้ใน Python-pseudocode ข้างต้นวงขณะที่ไม่มีขีด จำกัด จะดำเนินการในขณะที่ True ที่ polls อย่างต่อเนื่องจากคิวกิจกรรมและข้ามเพียงวงถ้าพบว่าว่างเปล่าหากเหตุการณ์พบแล้วมัน เป็น TickEvent หรือ OrderEvent และคอมโพเนนต์ที่เหมาะสมถูกเรียกใช้เพื่อดำเนินการในกรณีนี้เป็นทั้งตัวจัดการกลยุทธ์หรือตัวประมวลผลลูปจากนั้นจะนอนหลับสำหรับวินาทีการเต้นของหัวใจในกรณีนี้ 0 5 วินาทีและต่อเนื่องในที่สุดเรากำหนด จุดหลักของรหัสในฟังก์ชันหลักเป็นอย่างดีแสดงความคิดเห็นด้านล่าง แต่ฉันจะสรุปที่นี่ในสาระสำคัญเรา instantiate คิวเหตุการณ์และกำหนดหน่วยเครื่องมือเราจะสร้าง t เขา StreamingForexPrices ราคาสตรีมมิ่งชั้นแล้วต่อมาดำเนินการดำเนินการจัดการทั้งสองได้รับรายละเอียดการตรวจสอบที่จำเป็นที่จะได้รับโดย OANDA เมื่อสร้างบัญชีแล้วเราสร้างตัวอย่าง TestRandomStrategy สุดท้ายเรากำหนดสองหัวข้อและจากนั้นเริ่มต้น them. To ใช้รหัสที่คุณ เพียงแค่ต้องวางไฟล์ทั้งหมดไว้ในไดเร็กทอรีเดียวกันและเรียกข้อมูลต่อไปนี้ที่ terminal โปรดสังเกตว่าการหยุดโค้ดในขั้นตอนนี้จำเป็นต้องใช้กระบวนการ Python อย่างหนักผ่านทาง Ctrl-Z หรือเทียบเท่าผมไม่ได้เพิ่มเธรดเพิ่มเติมใน จัดการหาที่จะจำเป็นในการหยุดรหัสอย่างปลอดภัยวิธีที่อาจเป็นไปได้ที่จะหยุดรหัสบนเครื่อง Ubuntu Linux คือการพิมพ์แล้วส่งผ่านผลลัพธ์ของหมายเลขกระบวนการนี้ไปสู่ที่อื่นที่ใด PROCESSID ต้องถูกแทนที่ด้วย ผลลัพธ์ของ pgrep โปรดทราบว่านี่ไม่ใช่การปฏิบัติที่ดีโดยเฉพาะอย่างยิ่งในบทความต่อ ๆ ไปเราจะสร้างกลไกการเริ่มต้นหยุดที่ซับซ้อนมากขึ้นซึ่งทำให้การใช้กระบวนการ supervi ของ Ubuntu เพื่อให้ระบบการซื้อขายทำงานได้ 24 7. ผลลัพธ์ที่ได้หลังจาก 30 วินาทีขึ้นอยู่กับช่วงเวลาของวันเทียบกับชั่วโมงการซื้อขายหลักสำหรับ EUR USD สำหรับโค้ดข้างต้นจะแสดงไว้ด้านล่าง 5 บรรทัดแรกที่แสดง ข้อมูลการติ๊กของ JSON ที่ส่งคืนจาก OANDA ด้วยราคาเสนอซื้อจากนั้นคุณจะเห็นผลลัพธ์การดำเนินการตามคำสั่งรวมทั้งการตอบกลับของ JSON ที่ส่งคืนจาก OANDA เพื่อยืนยันการเปิดการซื้อขายเพื่อซื้อ 10,000 ยูโรและราคาที่ได้รับ จะทำงานต่อไปเรื่อย ๆ จนกว่าคุณจะฆ่าโปรแกรมด้วยคำสั่ง Ctrl-Z หรือคล้ายกันในบทความต่อ ๆ ไปเราจะดำเนินการปรับปรุงบางอย่างที่จำเป็นมากรวมทั้งกลยุทธ์ที่แท้จริง - กลยุทธ์ด้านอัตราแลกเปลี่ยนที่เหมาะสมเพื่อสร้างสัญญาณที่สร้างผลกำไร Infrastructure ของผลิตภัณฑ์ - Remote การใช้งานเซิร์ฟเวอร์และระบบการเฝ้าติดตาม 24 7 ที่มีความสามารถในการเริ่มต้นหยุดงานการจัดกลุ่มและการบริหารความเสี่ยง - การลงทุนและการซ้อนทับความเสี่ยงสำหรับคำสั่งซื้อทั้งหมดที่เสนอจากกลยุทธ์กลยุทธ์หลายอย่าง - การสร้าง ผลงานของกลยุทธ์ที่รวมเข้ากับการจัดการความเสี่ยงเช่นเดียวกับ backtester เหตุการณ์ที่ขับเคลื่อนด้วยเหตุการณ์เราจำเป็นต้องสร้างโมดูล backtesting forex ซึ่งจะช่วยให้เราดำเนินการวิจัยอย่างรวดเร็วและทำให้การปรับใช้กลยุทธ์ทำได้ง่ายขึ้น อย่าลืมเปลี่ยน ACCOUNTID และ ACCESSTOKEN เพียงแค่เริ่มต้นการซื้อขายเชิงปริมาณ

No comments:

Post a Comment