Forex Trading Diary 1 - การซื้อขาย Forex แบบอัตโนมัติกับ OANDA API. I ที่กล่าวมาก่อนหน้านี้ในบทความ QuantStart 2014 In Review ที่ฉันจะใช้บางส่วนของการเขียนเกี่ยวกับการซื้อขาย Forex อัตโนมัติในปี 2015 ทำให้ฉันเองมักดำเนินการวิจัยในตลาดหุ้นและตลาดฟิวเจอร์ส ฉันคิดว่ามันจะสนุกและการศึกษาที่จะเขียนเกี่ยวกับประสบการณ์ของฉันในการเข้าสู่ตลาดอัตราแลกเปลี่ยนในรูปแบบของไดอารี่แต่ละรายการไดอารี่จะพยายามที่จะสร้างทุกคนก่อน แต่ยังควรจะค่อนข้างตัวเองในการบรรจุในรายการแรกนี้ ของไดอารี่ฉันจะอธิบายถึงวิธีการตั้งค่าบัญชีการเป็นนายหน้าซื้อขายหลักทรัพย์ใหม่กับ OANDA รวมถึงวิธีการสร้างเครื่องมือการซื้อขายแบบมัลติเธรดที่ขับเคลื่อนโดยเหตุการณ์ซึ่งจะสามารถดำเนินการเทรดได้โดยอัตโนมัติทั้งในด้านการปฏิบัติและการตั้งค่าสดในปีที่แล้วเราใช้เวลา มากเวลามองไปที่ backtester เหตุการณ์ขับเคลื่อนหลักสำหรับหุ้นและ ETFs หนึ่งที่ฉันนำเสนอด้านล่างนี้มุ่งสู่ forex และสามารถใช้สำหรับการซื้อขายกระดาษทั้งหรืออยู่ trading. I ได้เขียน คำแนะนำต่อไปนี้ทั้งหมดสำหรับ Ubuntu 14 04 แต่ควรจะแปลเป็น Windows หรือ Mac OS X โดยใช้การแจกจ่าย Python เช่น Anaconda ไลบรารีเพิ่มเติมที่ใช้สำหรับเครื่องมือการค้า Python เป็นไลบรารีที่ต้องการซึ่งจำเป็นสำหรับการสื่อสารกับ OANDA API เนื่องจากเป็นโพสต์แรกเกี่ยวกับการซื้อขายแลกเปลี่ยนเงินตราต่างประเทศโดยตรงและโค้ดที่นำเสนอด้านล่างนี้สามารถปรับให้เข้ากับสภาพแวดล้อมการซื้อขายแบบสดได้อย่างตรงไปตรงมาข้าพเจ้าขอนำเสนอคำปฏิเสธดังต่อไปนี้คำแถลงการค้าการแลกเปลี่ยนเงินตราต่างประเทศที่ทำกำไรมีระดับสูง ของความเสี่ยงและอาจไม่เหมาะสำหรับนักลงทุนทุกรายผลการดำเนินงานที่ผ่านมาไม่ได้เป็นตัวบ่งชี้ถึงผลการดำเนินงานในอนาคตระดับการใช้อำนาจในระดับสูงสามารถทำงานได้ดีกับคุณและของคุณก่อนที่จะตัดสินใจลงทุนในอัตราแลกเปลี่ยนคุณควรพิจารณาวัตถุประสงค์การลงทุนระดับของ ประสบการณ์และความเสี่ยงความเป็นไปได้ที่คุณสามารถรักษาบางส่วนหรือทั้งหมดของการลงทุนครั้งแรกของคุณและดังนั้น คุณไม่ควรลงทุนเงินที่คุณไม่สามารถจะสูญเสียคุณควรตระหนักถึงความเสี่ยงทั้งหมดที่เกี่ยวข้องกับการซื้อขายแลกเปลี่ยนเงินตราต่างประเทศและขอคำแนะนำจากที่ปรึกษาทางการเงินอิสระหากคุณมีข้อสงสัยใด ๆ ซอฟต์แวร์นี้มีให้ตามที่เป็นอยู่และใด ๆ ที่แสดงหรือโดยนัย การรับประกันโดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของความสามารถในเชิงพาณิชย์และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะจะถูกปฏิเสธไม่ว่าในกรณีใด ๆ ผู้สำเร็จราชการแผ่นดินหรือผู้ร่วมสมทบต้องไม่รับผิดต่อความเสียหายโดยทางตรงโดยทางอ้อมอุบัติเหตุพิเศษเป็นแบบอย่างหรือเป็นผลสืบเนื่องซึ่งรวมถึง แต่ ไม่ จำกัด เฉพาะการจัดหาสินค้าหรือบริการทดแทนการสูญหายของการใช้ข้อมูลหรือผลกำไรหรือการหยุดชะงักทางธุรกิจอย่างไรก็ตามเกิดขึ้นและในทฤษฎีความรับผิดใด ๆ ไม่ว่าจะในสัญญาความรับผิดที่เข้มงวดหรือการละเมิดรวมทั้งประมาทหรือที่เกิดขึ้นในการใช้งานใด ๆ ของซอฟต์แวร์นี้แม้ว่าจะได้รับคำแนะนำเกี่ยวกับความเป็นไปได้ของความเสียหายดังกล่าวการตั้งค่าบัญชีกับ OANDA คำถามแรกที่ต้องคำนึงถึงคือเลือก OANDA S แนะนำหลังจากบิตของ Googling รอบสำหรับโบรกเกอร์ forex ที่มี APIs ฉันเห็นว่า OANDA ได้เปิดตัว REST API ที่ถูกต้องซึ่งสามารถสื่อสารกับภาษาเกือบทุกภาษาได้อย่างง่ายดายหลังจากอ่านเอกสาร API ของนักพัฒนาซอฟต์แวร์แล้ว ตัดสินใจที่จะทดลองใช้อย่างน้อยที่สุดกับบัญชีการฝึกปฏิบัติเพื่อให้ชัดเจน - ฉันไม่มีความสัมพันธ์กับ OANDA ก่อนหน้านี้และกำลังให้คำแนะนำนี้จากประสบการณ์ที่ จำกัด ในการเล่น API และการใช้งานสั้น ๆ สำหรับตลาด การดาวน์โหลดข้อมูลในขณะที่ทำงานที่กองทุนก่อนหน้านี้ถ้าใครได้เจอนายหน้าซื้อขาย forex อื่น ๆ ที่มี API แบบเดียวกันในปัจจุบันด้วยเช่นกันฉันยินดีที่จะให้ข้อมูลแก่พวกเขาได้ดีก่อนที่จะใช้ API จำเป็นต้องสมัครใช้งาน เมื่อต้องการทำเช่นนี้ให้ไปที่ลิงก์ลงชื่อสมัครใช้คุณจะเห็นหน้าจอต่อไปนี้ด้วยหน้าจอลงชื่อสมัครใช้ของ DOMA จากนั้นคุณจะสามารถลงชื่อเข้าใช้ด้วยข้อมูลรับรองการเข้าสู่ระบบได้ตรวจสอบให้แน่ใจว่าได้เลือก fxTradePractice จากหน้าจอลงชื่อเข้าใช้หน้าจอการลงชื่อเข้าใช้ของ DOMA เมื่อคุณต้องการจดบันทึกหมายเลขบัญชีของคุณซึ่งอยู่ใต้ส่วนหัว Black Funds ข้างเหมืองหลักเป็นหมายเลข 7 หลักนอกจากนี้คุณ นอกจากนี้ยังต้องสร้างโทเค็น API ส่วนบุคคลโดยคลิกจัดการการเข้าถึง API ภายใต้แท็บการดำเนินการอื่น ๆ ที่ด้านล่างซ้ายในขั้นตอนนี้คุณจะสามารถสร้างโทเค็น API ได้คุณจะต้องใช้คีย์นี้เพื่อใช้ภายหลังเพื่อตรวจสอบให้แน่ใจ คุณจะต้องเปิดตัวแอพพลิเคชั่น FXTrade Practice ซึ่งจะช่วยให้เราสามารถดูใบสั่งซื้อที่ดำเนินการได้และการสูญเสียกำไรจากกระดาษของเราหากคุณใช้ระบบ Ubuntu คุณจำเป็นต้องติดตั้งเวอร์ชันที่แตกต่างกันเล็กน้อย Java โดยเฉพาะรุ่น Oracle ของ Java 8 หากคุณไม่ได้ทำแบบจำลองการปฏิบัติงานนี้จะไม่โหลดจากเบราว์เซอร์ที่ฉันเรียกใช้คำสั่งเหล่านี้ในระบบของฉันตอนนี้คุณจะสามารถเริ่มต้นสภาพแวดล้อมการซื้อขายปฏิบัติกลับไปที่แดชบอร์ดของ OANDA คลิกสีเขียว hi ghlighted เปิดการเชื่อมโยง FXTrade Practice จะมีกล่องโต้ตอบ Java ถามว่าคุณต้องการเรียกใช้หรือไม่คลิกเรียกใช้และเครื่องมือ fxTrade Practice จะโหลด My default เป็นแผนภูมิเทียน 15 นาทีที่ EUR USD พร้อมแผง Quote ในด้านซ้าย. screen. At การปฏิบัติที่จุดนี้เราพร้อมที่จะเริ่มต้นการออกแบบและการเข้ารหัสระบบการซื้อขายอัตโนมัติของเรากับ Forex OANDA API. Overview ของ Trading Architecture. If คุณได้รับต่อไปนี้ชุดเหตุการณ์ backtester เหตุการณ์สำหรับหุ้นและ ETFs ที่ฉันสร้างขึ้นในปีที่แล้ว, คุณจะได้รับรู้ถึงวิธีการดังกล่าวเหตุการณ์ที่ขับเคลื่อนด้วยระบบการซื้อขายสำหรับบรรดาผู้ที่ยังใหม่กับซอฟต์แวร์ขับเคลื่อนเหตุการณ์ฉันขอแนะนำให้อ่านผ่านบทความเพื่อให้ได้ข้อมูลเชิงลึกบางอย่างในการทำงานในสาระสำคัญทั้ง โปรแกรมจะถูกดำเนินการใน infinte ในขณะที่ห่วงที่จะสิ้นสุดลงเมื่อระบบการซื้อขายถูกปิดกลไกการสื่อสารกลางของโปรแกรมจะได้รับผ่านทางคิวที่มี event. The คิวเป็น queried อย่างต่อเนื่อง เพื่อตรวจสอบเหตุการณ์ใหม่เมื่อเหตุการณ์ถูกถอดออกจากส่วนบนสุดของคิวแล้วจะต้องมีการจัดการโดยส่วนที่เหมาะสมของโปรแกรมดังนั้นฟีดข้อมูลตลาดอาจสร้าง TickEvent s ซึ่งจะถูกวางลงในคิวเมื่อราคาในตลาดใหม่มาถึง A สร้างกลยุทธ์การสร้างสัญญาณอาจสร้าง OrderEvent s ที่จะถูกส่งไปยังนายหน้าซื้อขายหลักทรัพย์ประโยชน์ของระบบดังกล่าวจะได้รับจากข้อเท็จจริงที่ว่ามัน doesn t เรื่องลำดับหรือชนิดของเหตุการณ์ที่จะวางไว้ในคิวเช่นที่พวกเขามักจะ ได้รับการจัดการอย่างถูกต้องโดยองค์ประกอบด้านขวาภายในโปรแกรมนอกจากนี้ส่วนต่างๆของโปรแกรมสามารถเรียกใช้ในหัวข้อที่แยกต่างหากซึ่งหมายความว่าไม่มีการรอคอยใด ๆ สำหรับส่วนประกอบใด ๆ ก่อนการประมวลผลอื่น ๆ ซึ่งมีประโยชน์อย่างมากในสถานการณ์การค้าอัลกอริทึมที่ข้อมูลตลาด ตัวจัดการการให้อาหารและเครื่องกำเนิดสัญญาณกลยุทธ์มีลักษณะการทำงานที่แตกต่างกันอย่างมากมายรอบการซื้อขายหลักจะได้รับโดย pseudo - รหัส Python ต่อไปนี้เป็นที่เรากล่าวข้างต้นปลา e ทำงานในลูป infinite ประการแรกคิวถูกสำรวจเพื่อดึงข้อมูลเหตุการณ์ใหม่ถ้าคิวว่างเปล่า loop จะรีสตาร์ทหลังจากระยะเวลาการนอนหลับสั้น ๆ เรียกว่า heartbeat หากพบเหตุการณ์ประเภทของมันจะถูกประเมินจากนั้นจึงเกี่ยวข้อง โมดูลทั้งกลยุทธ์หรือตัวจัดการดำเนินการเรียกว่าเพื่อจัดการกับเหตุการณ์และอาจสร้างใหม่ที่กลับไปยังคิวองค์ประกอบพื้นฐานที่เราจะสร้างสำหรับระบบการค้าของเรารวมถึงต่อไปนี้ Handler PriceStreaming - นี้จะเก็บ การเชื่อมต่อระยะยาวที่เปิดอยู่กับเซิร์ฟเวอร์ OANDAs และส่งข้อมูล tick เช่นการเสนอราคาถามผ่านการเชื่อมต่อสำหรับเครื่องมือใด ๆ ที่เราสนใจอีกครั้ง Generator สัญญาณเชิงกลยุทธ์ - จะดำเนินการตามลำดับเหตุการณ์ติ๊กและใช้เพื่อสร้างคำสั่งซื้อขายที่จะดำเนินการ โดยตัวดำเนินการ handler. Execution Handler - ใช้ชุดของเหตุการณ์การสั่งซื้อและสุ่มสี่สุ่มห้ารันกับ OANDA. Events - วัตถุเหล่านี้เป็นข้อความที่ถูกส่งผ่านรอบเหตุการณ์ ue เราต้องใช้เพียงสองอย่างเท่านั้นคือ TickEvent และ OrderEvent. Main Entry Point - จุดเข้าหลักยังรวมถึงลูปการค้าที่คอยสำรวจคิวข้อความและส่งข้อความไปยังคอมโพเนนต์ที่ถูกต้องอย่างต่อเนื่องซึ่งมักเรียกได้ว่าเป็นลูปเหตุการณ์ หรือ handler เหตุการณ์เราจะหารือเกี่ยวกับการใช้รหัสในรายละเอียดที่ด้านล่างของบทความเป็นรายการที่สมบูรณ์ของไฟล์รหัสต้นฉบับทั้งหมดถ้าคุณวางไว้ในไดเรกทอรีเดียวกันและใช้งูหลามคุณจะเริ่มสร้างคำสั่งสมมติว่าคุณมี กรอกรหัสบัญชีและโทเค็นการรับรองความถูกต้องจาก OANDA. Python Implementation การปฏิบัติที่ไม่ดีในการจัดเก็บรหัสผ่านหรือคีย์รับรองความถูกต้องภายใน codebase เนื่องจากคุณไม่สามารถคาดเดาได้ว่าใครจะได้รับอนุญาตให้เข้าถึงโครงการในระบบการผลิตที่เราเก็บข้อมูลรับรองเหล่านี้ไว้ เป็นตัวแปรสภาพแวดล้อมกับระบบแล้วสอบถาม envvars เหล่านี้ทุกครั้งที่รหัส redeployed นี้เพื่อให้แน่ใจว่ารหัสผ่านและโทเค็น auth จะไม่ ที่เก็บไว้ในระบบควบคุมเวอร์ชันอย่างไรก็ตามเนื่องจากเรามีความสนใจเพียงอย่างเดียวในการสร้างระบบการซื้อขายของเล่นและไม่เกี่ยวกับรายละเอียดการผลิตในบทความนี้เราจะแยกโทเค็นการตรวจสอบเหล่านี้ออกเป็นไฟล์การตั้งค่าในไฟล์การกำหนดค่าต่อไปนี้ มีพจนานุกรมชื่อ ENVIRONMENTS ซึ่งจัดเก็บปลายทาง API สำหรับทั้ง API ราคาของ OANDA และ API การซื้อขายแต่ละพจนานุกรมย่อยมีจุดเชื่อมต่อ API 3 ชุดแยกกันจริงและ sandbox API แบบ sandbox API ใช้สำหรับทดสอบโค้ดและตรวจสอบว่าไม่มีข้อผิดพลาด หรือข้อผิดพลาดไม่มีการรับประกันเวลาทำงานของ API จริงหรือการปฏิบัติ API การปฏิบัติซึ่งสาระสำคัญให้ความสามารถในการค้ากระดาษนั่นคือมีคุณลักษณะทั้งหมดของ API จริงในบัญชีการปฏิบัติจริง API จริงคือ เพียงแค่นั้นมันคือการซื้อขายสดหากคุณใช้ปลายทางนั้นในรหัสของคุณจะซื้อขายกับยอดเงินในบัญชีอยู่ของคุณเป็นพิเศษระมัดระวังเมื่อมีการซื้อขายกับการปฏิบัติ ce API โปรดจำไว้ว่าค่าใช้จ่ายในการทำธุรกรรมที่สำคัญไม่กระทบต่อผลกระทบของตลาดเนื่องจากธุรกิจการค้าไม่ได้ถูกนำไปวางไว้ในสิ่งแวดล้อมต้นทุนดังกล่าวจะต้องคิดในรูปแบบอื่นหากใช้รูปแบบผลกระทบจากตลาดหากคุณต้องการประเมินประสิทธิภาพอย่างสมจริง ต่อไปนี้เรากำลังใช้บัญชีการปฏิบัติตามที่กำหนดโดยการตั้งค่า DOMAIN เราจำเป็นต้องมีพจนานุกรมสองชุดสำหรับโดเมนแต่ละส่วนสำหรับองค์ประกอบการสตรีมและการซื้อขาย API ในที่สุดเรามี ACCESSTOKEN และ ACCOUNTID ที่กรอกข้อมูลด้านล่างทั้งสองด้วยรหัสดัมมานเพื่อให้คุณ จะต้องใช้ของคุณเองซึ่งสามารถเข้าถึงได้จากหน้าบัญชี OANDA ขั้นตอนต่อไปคือการกำหนดเหตุการณ์ที่คิวจะใช้เพื่อช่วยให้ทุกส่วนของการสื่อสารเป็นองค์ประกอบเราจำเป็นต้องมี TickEvent และ OrderEvent สองตัวแรกเก็บข้อมูลเกี่ยวกับเครื่องมือ ข้อมูลการตลาดเช่นการเสนอราคาที่ดีที่สุดถามและเวลาการค้าที่สองจะใช้ในการส่งคำสั่งไปยังตัวจัดการการดำเนินการและจึงมีเครื่องมือ, จำนวนหน่วยเพื่อการค้าตลาดประเภทสั่งซื้อหรือวงเงินและด้านข้างคือการซื้อและขายเพื่อพิสูจน์รหัสเหตุการณ์ในอนาคตของเราเราจะสร้างคลาสพื้นฐานที่เรียกว่าเหตุการณ์และมีเหตุการณ์ทั้งหมดสืบทอดมาจากรหัสนี้มีไว้ด้านล่าง in ชั้นเรียนถัดไปที่เราจะสร้างจะจัดการกลยุทธ์การซื้อขายในการสาธิตนี้เราจะสร้างกลยุทธ์ค่อนข้างไร้สาระที่ได้รับทั้งหมดของตลาดเห็บและเมื่อทุก 5 tick สุ่มซื้อหรือขาย 10,000 หน่วยของ EUR USD เห็นได้ชัดว่านี่เป็นกลยุทธ์ที่น่าขัน แต่ก็เป็นเรื่องที่ยอดเยี่ยมสำหรับจุดประสงค์ในการทดสอบเพราะมันเป็นเรื่องง่ายที่จะเข้าใจและเข้าใจในรายการไดอารีในอนาคตเราจะแทนที่เรื่องนี้ด้วยสิ่งที่น่าตื่นเต้นอย่างยิ่งที่หวังจะเปลี่ยนเป็นไฟล์กำไร s ทำงานผ่านมันและดูสิ่งที่เกิดขึ้นประการแรกเรานำเข้าห้องสมุดสุ่มและวัตถุ OrderEvent จากเราต้องการสุ่ม lib เพื่อเลือกสุ่มซื้อหรือสั่งซื้อเราต้อง OrderEvent เช่นนี้เป็นอย่างไร วัตถุยุทธศาสตร์จะส่งคำสั่งไปยังคิวเหตุการณ์ซึ่งจะดำเนินการโดยผู้ดำเนินการจัดการชั้นเรียน TestRandomStrategy จะใช้เครื่องมือในกรณีนี้คือ EUR USD จำนวนหน่วยและคิวเหตุการณ์เป็นชุดของพารามิเตอร์จากนั้นจะสร้าง เคาน์เตอร์เห็บที่ใช้ในการบอกวิธีการหลายกรณี TickEvent ได้เห็นมากที่สุดของงานที่เกิดขึ้นในวิธี calculersignals ซึ่งก็ใช้เวลาเป็นเหตุการณ์ที่กำหนดไม่ว่าจะเป็น TickEvent อื่นละเว้นและเพิ่มขึ้นติ๊กเคาน์เตอร์แล้วมันจะตรวจสอบเพื่อดู ถ้านับเป็นหารด้วย 5 แล้วสุ่มซื้อหรือขายด้วยคำสั่งตลาดจำนวนหน่วยที่ระบุไม่ได้เป็นกลยุทธ์การค้าที่ยิ่งใหญ่ที่สุดของโลก แต่จะเหมาะสำหรับวัตถุประสงค์ในการทดสอบการเป็นนายหน้าซื้อขายหลักทรัพย์ OANDA ของเรา คอมโพเนนต์ต่อไปคือตัวจัดการการดำเนินการชั้นนี้ถูกมอบหมายให้ทำหน้าที่ในกรณี OrderEvent และทำการร้องขอไปยังโบรกเกอร์ในกรณีนี้ OANDA ในแบบโง่ซึ่งก็คือไม่มีความเสี่ยงมานา การดำเนินการจัดการจะดำเนินการคำสั่งใด ๆ ที่ได้รับมอบเราต้องส่งข้อมูลการตรวจสอบสิทธิ์ทั้งหมดไปยังชั้น Execution รวมถึงการปฏิบัติตามโดเมนจริงหรือ sandbox โทเค็นการเข้าถึงและรหัสบัญชีจากนั้นเราจะสร้าง การเชื่อมต่อที่ปลอดภัยกับหนึ่ง Pythons ที่สร้างขึ้นในไลบรารีส่วนใหญ่ของงานที่เกิดขึ้นใน executeorder วิธีการที่ต้องใช้เหตุการณ์เป็นพารามิเตอร์จากนั้นจะสร้างพจนานุกรมสองชุด - ส่วนหัวและ params พจนานุกรมเหล่านี้จะได้รับการเข้ารหัสอย่างถูกต้องบางส่วนโดย urllib อีกห้องสมุดหลาม ที่จะส่งเป็นคำขอ POST ไปยัง OANDAs API เราจะผ่านพารามิเตอร์ส่วนหัว Content-Type และ Authorization ซึ่งรวมถึงข้อมูลการตรวจสอบสิทธิ์ของเรานอกจากนี้เราเข้ารหัสพารามิเตอร์ซึ่ง ได้แก่ เครื่องมือ EUR USD หน่วยประเภทคำสั่งซื้อและการซื้อด้านข้าง เราทำคำขอและบันทึกการตอบสนองคอมโพเนนต์ที่ซับซ้อนที่สุดของระบบการซื้อขายคือวัตถุ StreamingForexPrices ซึ่งจัดการ การปรับปรุงราคาตลาดจาก OANDA มีสองวิธีคือ connecttostream และ streamtoqueue วิธีแรกใช้ห้องสมุดคำขอ Python เพื่อเชื่อมต่อกับซ็อกเก็ตสตรีมมิ่งที่มีส่วนหัวและพารามิเตอร์ที่เหมาะสมพารามิเตอร์ต่างๆจะรวมถึง ID บัญชีและรายการเครื่องมือที่จำเป็นซึ่งควรจะฟัง สำหรับการปรับปรุงในกรณีนี้เป็นเพียง EUR USD หมายเหตุบรรทัดต่อไปนี้จะบอกการเชื่อมต่อที่จะสตรีมและจึงเก็บไว้เปิดในลักษณะที่ยาวนานวิธีที่สอง streamtoqueue จริงพยายามที่จะเชื่อมต่อกับกระแสถ้าการตอบสนองไม่ได้ ที่ประสบความสำเร็จเช่นรหัสการตอบสนองไม่ได้เป็น 200 แล้วเราก็กลับและออกถ้าประสบความสำเร็จเราพยายามที่จะโหลดแพ็คเก็ต JSON กลับเข้ามาในพจนานุกรมหลามในที่สุดเราจะแปลงพจนานุกรมภาษาหลวงกับเครื่องดนตรีเสนอราคาและเวลาใน TickEvent ที่ จะถูกส่งไปยังคิวเหตุการณ์ขณะนี้เรามีองค์ประกอบสำคัญทั้งหมดในสถานที่ขั้นตอนสุดท้ายคือการห่อทุกอย่างที่เราเขียนไว้จนถึงขั้นตอนหลัก เป้าหมายของไฟล์นี้คือการสร้างเธรดที่แยกกันสองแบบซึ่งเรียกใช้ตัวจัดการการกำหนดราคาและอีกชุดหนึ่งซึ่งเรียกใช้ตัวจัดการการซื้อขายเราจำเป็นต้องใช้สองเธรดแยกกันใส่เพียงแค่เรากำลังดำเนินการสองชิ้นส่วนแยกกันทั้งสองโค้ด ของที่ทำงานอย่างต่อเนื่องถ้าเราจะสร้างโปรแกรมที่ไม่ใช่ threaded แล้วซ็อกเก็ตสตรีมมิ่งที่ใช้สำหรับการปรับปรุงการกำหนดราคาจะไม่เคยปล่อยกลับไปที่เส้นทางรหัสหลักและด้วยเหตุนี้เราจะไม่จริงดำเนินการซื้อขายใด ๆ ในทำนองเดียวกันถ้าเราขับรถ ห่วงการค้าดูด้านล่างเราจะไม่จริงกลับเส้นทางการไหลไปซ็อกเก็ตราคาสตรีมดังนั้นเราต้องมีหลายหัวข้อหนึ่งสำหรับแต่ละองค์ประกอบเพื่อให้พวกเขาสามารถดำเนินการได้อย่างอิสระพวกเขาทั้งสองจะสื่อสารกันผ่านทางคิวเหตุการณ์ ลองดูอีกสักหน่อยเราจะสร้างเธรดที่แยกกันสองแบบด้วยบรรทัดต่อไปนี้เราจะส่งต่อฟังก์ชันหรือชื่อเมธอดไปยังอาร์กิวเมนต์คำหลักที่กำหนดเป้าหมายแล้วส่งผ่านข้อมูลที่ซ้ำซ้อนเช่นรายการหรือ tuple ไปจนถึง args keywor d อาร์กิวเมนต์ซึ่งแล้วส่งผ่านอาร์กิวเมนต์เหล่านั้นไปยังฟังก์ชันวิธีการที่เกิดขึ้นจริงในที่สุดเราเริ่มต้นเธรดทั้งสองด้วยบรรทัดต่อไปนี้ดังนั้นเราจึงสามารถเรียกใช้สองวนลูปไม่มีที่สิ้นสุดได้อย่างมีประสิทธิภาพส่วนรหัสอย่างอิสระซึ่งทั้งสองสื่อสารผ่านคิวเหตุการณ์ทราบว่า Python threading library ไม่ได้สร้าง multi-core multithreaded จริงเนื่องจาก CPython ใช้งาน Python และ Global Global Interpreter Lock GIL หากคุณต้องการอ่านเพิ่มเติมเกี่ยวกับ multithreading ใน Python โปรดดูที่บทความนี้ลองดูที่ ส่วนที่เหลือของโค้ดในรายละเอียดประการแรกเรานำเข้าไลบรารีที่จำเป็นทั้งหมดรวมถึงเธรดเธรดและเวลาจากนั้นเราจะนำเข้าไฟล์โค้ดทั้งหมดข้างต้นฉันเองชอบที่จะใช้ประโยชน์จากการตั้งค่าใด ๆ ซึ่งเป็นนิสัยที่ฉันหยิบขึ้นมาจากการทำงานกับ Django. After ที่เรากำหนดฟังก์ชันการค้าซึ่งได้อธิบายไว้ใน Python-pseudocode เหนือวงขณะที่ไม่มีที่สิ้นสุดจะดำเนินการในขณะที่ True ที่ polls อย่างต่อเนื่องจาก t เขาเหตุการณ์คิวและข้ามเฉพาะห่วงถ้าพบว่าว่างเปล่าหากเหตุการณ์พบแล้วจะเป็น TickEvent หรือ OrderEvent และคอมโพเนนต์ที่เหมาะสมถูกเรียกเพื่อดำเนินการออกในกรณีนี้เป็นทั้งตัวจัดการกลยุทธ์หรือตัวดำเนินการ ห่วงแล้วก็นอนหลับสำหรับวินาทีการเต้นของหัวใจในกรณีนี้ 0 5 วินาทีและต่อเนื่องสุดท้ายเรากำหนด entrypoint หลักของรหัสในฟังก์ชันหลักเป็นอย่างดีแสดงความคิดเห็นด้านล่าง แต่ฉันจะสรุปที่นี่ในสาระสำคัญเรา instantiate คิวเหตุการณ์และกำหนด หน่วยเครื่องมือแล้วเราจะสร้าง StreamingForexPrices ราคาสตรีมมิ่งชั้นแล้วต่อมาดำเนินการดำเนินการจัดการทั้งสองได้รับรายละเอียดการตรวจสอบที่จำเป็นที่ได้รับโดย OANDA เมื่อสร้างบัญชีแล้วเราสร้างตัวอย่าง TestRandomStrategy สุดท้ายเรากำหนดสองหัวข้อแล้วเริ่มต้นพวกเขา . เพื่อเรียกใช้รหัสคุณเพียงแค่ต้องวางไฟล์ทั้งหมดในไดเรกทอรีเดียวกันและเรียกต่อไปนี้ที่ terminal. Note ที่จะหยุดรหัสที่ ขั้นตอนนี้ต้องใช้กระบวนการ Python อย่างหนักผ่านทาง Ctrl-Z หรือเทียบเท่าฉันไม่ได้เพิ่มเธรดเพิ่มเติมในการจัดการการค้นหาว่าจำเป็นต้องหยุดโค้ดอย่างปลอดภัยวิธีที่อาจเป็นไปได้ที่จะหยุดรหัสบนเครื่อง Ubuntu Linux คือ เพื่อพิมพ์จากนั้นส่งต่อหมายเลขผลลัพธ์ของหมายเลขกระบวนการนี้ไปเป็นข้อมูลต่อไปนี้ในกรณีที่ PROCESSID ต้องถูกแทนที่ด้วยผลลัพธ์ของ pgrep โปรดทราบว่านี่ไม่ใช่วิธีปฏิบัติที่ดีโดยเฉพาะในบทความต่อ ๆ ไปเราจะสร้างกลไกการเริ่มต้นหยุดที่มีความซับซ้อนมากขึ้น ใช้การควบคุมกระบวนการของอูบุนตูเพื่อให้ระบบการซื้อขายทำงานได้ 24 7. ผลลัพธ์หลังจาก 30 วินาทีขึ้นไปทั้งนี้ขึ้นอยู่กับช่วงเวลาของวันเทียบกับชั่วโมงการซื้อขายหลักสำหรับ EUR USD สำหรับโค้ดข้างต้น ห้าบรรทัดแรกแสดงข้อมูลการติ๊ก JSON ที่ส่งคืนจาก OANDA ด้วยราคาเสนอซื้อในภายหลังจากนั้นคุณจะเห็นผลลัพธ์การดำเนินการตามคำสั่งซื้อรวมทั้งการตอบกลับของ JSON ที่ส่งคืนจาก OANDA เพื่อยืนยันการเปิดการซื้อขายเพื่อซื้อ 10,000 หน่วย EUR USD และราคาที่ได้รับที่นี่จะยังคงทำงานไปเรื่อย ๆ จนกว่าคุณจะฆ่าโปรแกรมโดยใช้คำสั่ง Ctrl-Z หรือคล้ายกันในบทความต่อ ๆ ไปเราจะดำเนินการปรับปรุงที่จำเป็นมาก ๆ รวมทั้งกลยุทธ์ที่แท้จริง - เหมาะสม กลยุทธ์การทำกำไร - การใช้เซิร์ฟเวอร์ระยะไกลและระบบการเฝ้าติดตาม 24 7 ที่มีความสามารถในการเริ่มต้นหยุดงานการจัดกลุ่มและการบริหารความเสี่ยง - Portfolio และการซ้อนทับความเสี่ยงสำหรับคำสั่งซื้อที่แนะนำทั้งหมดจากกลยุทธ์กลยุทธ์หลายกลยุทธ์ - การสร้างกลยุทธ์ด้านการลงทุน ที่รวมเข้ากับการจัดการความเสี่ยงซ้อนทับด้วย backtester เหตุการณ์ที่ขับเคลื่อนด้วยเหตุการณ์เราจำเป็นต้องสร้างโมดูล backtesting forex ซึ่งจะช่วยให้เราดำเนินการวิจัยอย่างรวดเร็วและทำให้สามารถปรับใช้กลยุทธ์ได้ง่ายขึ้น จำไว้ว่าให้เปลี่ยน ACCOUNTID และ ACCESSTOKEN เพียงแค่เริ่มต้นกับการซื้อขายเชิงปริมาณการสร้างรายได้ด้วย Python การทำเงินกับ Python ในขณะที่เพื่อนบอกฉันเกี่ยวกับบางอย่างที่เรียกว่าสกุลเงินของชุมชนยังทราบว่าเป็น Local Exchange Trading System ความคิดพื้นฐานที่เป็นที่ คนในพื้นที่ทางภูมิศาสตร์สามารถแลกเปลี่ยนสินค้าและบริการกับหน่วยงานที่แลกเปลี่ยนกันได้มากกว่าเงินสดแบบเดิมตัวอย่างเช่นคุณสามารถตัดหญ้าสักสองสามสนามเพื่อแลกกับบทเรียนกีตาร์ได้แม้ว่าจะไม่มีสนามหญ้าของครูกีตาร์คุณกำลังตัดหญ้าอยู่ก็ตาม ไม่มีเงินตราทางกายภาพเช่นนี้สมาชิกของสกุลเงินของชุมชนพึ่งพาอาสาสมัครในการติดตามเท่าใดสกุลเงินที่พวกเขาเองฉันคิดว่านี่เป็นความคิดที่มหัศจรรย์มันส่งเสริมการแลกเปลี่ยนสุขภาพโดยไม่จำเป็นต้องสิ่งที่โคลนกับสิ่งที่เป็นหยาบคายเป็นเงินสด แต่สิ่งที่หลงฉัน หลังจากบิตของการวิจัยเป็นวิธีการที่ทั้งระบบอยู่ในความต้องการหายนะของเครื่องจักรมีสถานที่ที่ไม่มีศูนย์เพื่อดูบัญชีหรือวิธีการทำธุรกรรมออนไลน์ของคุณและ ฉันคิดว่าควรจะมีเพื่อให้ได้รับโครงการงานอดิเรกของฉันไม่กี่เดือนที่ผ่านมาฉันได้รับการสร้างเว็บไซต์ดังกล่าวซึ่งได้มาเมื่อเร็ว ๆ นี้ร่วมกันไปยังจุดที่ฉันต้องการจะวัดความสนใจมากออกมีฉัน haven t แม้มา ขึ้นกับชื่อยังดังนั้นฉันได้รับการเรียกมันโดยชื่อเล่นค่อนข้างปฏิภาณของเว็บไซต์สกุลเงินคำเตือนสำหรับชื่อที่ทำให้เข้าใจผิดของการโพสต์นี้ฉันโดยไม่ต้องอัปยศผู้ใช้สกุลเงินเว็บไซต์สามารถสร้างสกุลเงินที่พวกเขาสามารถใช้เพื่อติดตาม ชนิดของหนี้ใด ๆ ผู้สร้างสกุลเงินหรือผู้ให้บริการตั้งนโยบายเกี่ยวกับวิธีการสร้างรายใหม่และการจัดการเมื่อสร้างขึ้นเงินสามารถส่งไปยังผู้ใช้รายอื่นโดยตรงกับชื่อผู้ใช้หรือทางอ้อมผ่านทางที่อยู่อีเมลและผู้ใช้สามารถจัดการกองทุนของพวกเขาโดยการสร้างต่างๆ บัญชีเมื่อมีการส่งเงินไปให้ผู้ใช้ผู้ให้บริการไม่มีการควบคุมมากขึ้นเนื่องจากผู้ใช้มีอิสระในการจัดเก็บเงินหรือส่งให้ผู้อื่นด้วยความตั้งใจและจุดประสงค์ของเว็บไซต์สกุลเงินเหมือนกับการทำธุรกรรมออนไลน์แม้ว่าจะมีผู้ใช้ที่ดีกว่า อินเตอร์เฟซกว่า ระบบธนาคารออนไลน์ใด ๆ ที่ฉันเคยใช้มาซึ่งมักจะเป็นเขตพื้นที่ที่ใช้งานได้ผู้ใช้ยังสามารถดูจำนวนเงินที่ได้รับการผลิตและจำนวนเงินที่ใช้อยู่ในปัจจุบันคือไม่ได้จัดเก็บโดยผู้ให้บริการซึ่งจะช่วยรักษาความไว้วางใจในระบบ คุณอาจจะคิดว่าเสียงนี้คุ้นเคยถ้าคุณเคยเจอโครงการ Bitcoin แต่มีความแตกต่างอย่างมีนัยสำคัญบางส่วนความแตกต่างที่ใหญ่ที่สุดคือเว็บไซต์สกุลเงินยังคงต้องการความไว้วางใจในบุคคลหรือองค์กรที่มีการจัดการสกุลเงินเช่นผู้ให้บริการและมี ไม่มีการบังคับใช้ความขาดแคลนของผู้ให้บริการสกุลเงินใหม่สามารถสร้างรายได้ใหม่ได้ตามที่เห็นสมควรมีการทับซ้อนกันเล็กน้อย แต่กรณีการใช้สกุลเงินของเว็บไซต์สกุลเงินอาจกว้างขึ้นถึงแม้ว่าจะมีขนาด จำกัด เมื่อเทียบกับโครงการ Bitcoin Community currency projects เป็นสิ่งที่ฉันคิดไว้เมื่อทำงาน เกี่ยวกับเรื่องนี้ แต่ก็สามารถใช้ได้กับความหลากหลายของการใช้งานอื่น ๆ ตัวอย่างเช่นสมมติว่าครอบครัวเราจะเรียกพวกเขาว่า Smiths มีเด็กเล็ก ๆ น้อย ๆ ที่ไม่ชอบทำ th ดังนั้นพ่อแม่จึงสร้างสกุลเงินที่เรียกว่า Smith Dollars เมื่อ Little Bobby Smith ทำการบ้านหรือทำความสะอาดห้องของเขาพ่อแม่ของเขาจะส่งเขาไป 10 Smith Dollars เมื่อ Bobby มี Smith Dollars 100 คนเขาสามารถจ่ายเงินให้กับเกมวิดีโอใหม่หรือ ใช้เวลา 15 ชั่วโมงในการรับชั่วโมงพิเศษ แต่ถ้าเขาต้องการเขาก็สามารถส่งน้องสาวของเขาไปหา Smith Dollars อีกครั้งเพื่อแลกกับเงินกู้จากแล็ปท็อปของเธอการใช้งานอื่น ๆ อาจเป็นพนักงานคอยติดตามผู้ที่ไปโดนโดนัทหรือแลกเปลี่ยนความโปรดปราน จินตนาการของคุณสำหรับเว็บไซต์ one. Currency ที่สร้างขึ้นด้วย Django และฉันเคยใช้ห้องสมุด Bootstrap ที่ยอดเยี่ยมสำหรับชุดรูปแบบเว็บไซต์สามารถใช้งานได้ในขณะนี้ แต่ยังมีบางสิ่งที่ฉันต้องการจะทำก่อนที่จะผลักดันมันอยู่ที่ใดก็ได้ เพียงเพื่อพิสูจน์ว่าไม่ได้ vaporware นี่เป็นหน้าจอไม่กี่ฉันจะมองหากล้าหาญสองสามเพื่อช่วยฉันทดสอบนี้ฉันวางแผนที่จะทำ beta ส่วนตัวที่ฐานข้อมูลจะถูกเช็ดอย่างสมบูรณ์ก่อนที่จะไปอยู่ชั่วขณะนี้ จะให้โอกาสฉันอีกครั้ง หากคุณสนใจที่จะช่วยออกกรุณาติดต่อหรือ 1 นี้ถ้าคุณกำลังอ่านใน Google ฉัน d ยังมีความสนใจในข้อเสนอแนะสำหรับชื่อที่ดีสำหรับ โครงการนี้ดูเหมือนว่าโดเมนใด ๆ กับการอ้างอิงถึงเงินหรือสกุลเงินที่ถ่ายไม่น่าแปลกใจฉัน suppose. I m ขึ้นสำหรับการช่วยทดสอบรักความคิดนี้ x. Reply เพื่อ Jean Paldan. Did คุณได้ดูกระเพื่อมสำหรับวิธีการ ทำให้ระดับนี้เงินจำนวนที่คุณได้รับจะได้รับจากเงินสำรองที่คนอื่นให้และถ้าคุณต้องการทำธุรกิจกับใครบางคนที่ไม่ได้ให้เงินช่วยเหลือคุณจะพยายามหาทางเปลี่ยนเงินให้มากกว่า คนดังนั้นทั้งสองของคุณมีค่าเผื่อบางส่วนที่ส่วนท้ายของห่วงโซ่ที่ตรงไป Arne Babenhauserheide. Value Function RLDirect RL ค่าฟังก์ชัน RL Q-learning Q-learning5 การเรียนรู้ RL แบบออนไลน์ Q-learningQ-table การเรียนรู้ RRL RRL5 RRL. RRL กรอบการเทรดทางการเงินอาร์เอ็นเอ็กซ์อาร์เอ็น - ผู้ค้ารายย่อยฉบับใหม่ 1. สัญญาณการซื้อขายแบบซื้อขายระยะสั้นที่ยาวเป็นกลางถือเป็นสัดส่วนที่แตกต่างกัน Sharp Ratio น้ำหนัก DSR ยาวหรือสั้น Ft sign sum w r w F vt Ft -1,1 short -1, ยาว 1 น้ำหนักเวกเตอร์ vt threshold ของเครือข่ายประสาทเทอร์โบ pt - .1 น้ำหนัก vt vector ค่า Pt Rt Rt F rt - ค่าใช้จ่ายในการทำ Ft - F 1. อัตราส่วน Sharpe Ratio DSR Sharpe Ratio DSR หมวก 0 Dt Frac
Il Dollaro Il Dollaro (Forex ISO USD), สกุลเงินเหรียญสหรัฐอเมริกา (USD), สกุลเงินดอลลาร์สหรัฐ (USD), สกุลเงินดอลลาร์สหรัฐ (USD) La prima quotazione dellEuro dopo il 1 gennaio 1999, giorno dellintroduzione per i soli mercati finanziari, stata di 1,18 ดอลลาร์ต่อ 1 ยูโร. La prima quotazione dopo il 1 gennaio 2002, giorno dellintroduzione dellEuro con banconote e monete, stata di 0,89 Dollari ต่อ 1 ยูโร. Il Dollaro ใช้จ่ายผ่านบัตรเครดิตในต่างประเทศ (Forex Market) Monete e Banconote Il Dollaro (ซิมโบโล USD USD) diviso ใน 100 เซ็นต์ (simbolo) Monete: 1 (เงิน), 5, 10, 25, 50 เซ็นต์ e 1 dollaro - Banconote: 1, 2, 5, 10, 20, 50, 100 dollari Convertitore Euro Dollaro สร้างขึ้นในรูปแบบที่แตกต่างกัน 2 การแปลงเป็นค่าใช้จ่ายต่อความช่วยเหลือของแต่ละบุคคล subito il valore nellaltra divisa. การโฆษณาของคุณต่อหุ้นของ Quanto Vale และ Dollaro ในสกุลเงินยูโรซึ่งเป็นราคาที่ต่ำกว่าหนึ่งดอลลาร์ในสกุลเงินดอลลาร์สหรัฐและสกุลดอลลาร์ Dollello euro nello spazio a destra. ใช้งานได้ดีในขณะที่ฉันอยู่ในช่วงเวลาที่เป็นจ...
Comments
Post a Comment