ภาษาอัลกอริทึม QPILE สำหรับการเขียนโปรแกรมหุ่นยนต์ซื้อขายสำหรับ QUIK
หุ่นยนต์ซื้อขายสามารถเขียนในภาษาเฉพาะ คล้ายกับรหัสโปรแกรม QPILE เป็นหนึ่งในนั้น บทความจะพิจารณาภาษานี้ เปรียบเทียบภาษา QPILE กับ
LUAและยังให้ตัวอย่างของโรบ็อตในภาษานี้ด้วย
- ข้อมูลทั่วไปเกี่ยวกับ QPILE
- ทำงานกับโต๊ะ
- โครงสร้าง QPILE
- ชนิดข้อมูล
- นิพจน์
- ฟังก์ชั่น
- โปรแกรมดีบัก
- QPILE หรือ LUA?
- จะสร้างหุ่นยนต์ซื้อขายบน QPILE ได้อย่างไร?
- หุ่นยนต์ซื้อขายบน QPILE – โซลูชั่นสำเร็จรูป
- หุ่นยนต์เคลื่อนที่เฉลี่ย
- เครื่องคำนวณตำแหน่ง N. Moroshkin
- ตัวกรองระดับเสียง
- ตัวเลือก Greeks
- หุ่นยนต์ซื้อขาย TRIX สำหรับ QUIK
- ตัวประมวลผลล่วงหน้า M4
ข้อมูลทั่วไปเกี่ยวกับ QPILE
QPILE เป็นตัวย่อที่ย่อมาจาก QUIK Programmable Interface และ Logic Environment
นี่คือชุดคำสั่งที่แปลโดยเวิร์กสเตชัน QUIK ส่วนใหญ่จะใช้ในการคำนวณราคาพอร์ตของหลักทรัพย์ ภาษายังใช้สำหรับ:
- การคำนวณใหม่แบบไดนามิกของราคาสินทรัพย์ของลูกค้าบนเดสก์ท็อปของโบรกเกอร์และในพอร์ตการลงทุน ในกรณีหลัง ราคารวมจะถูกคำนวณใหม่ด้วย
- การค้นหาตัวบ่งชี้ที่ขาดหายไปโดยใช้อัลกอริธึมและข้อมูลสำหรับการให้กู้ยืมเพื่อมาร์จิ้น
- การพัฒนากลยุทธ์การซื้อขายที่เหมาะสม
ภาษาอธิบายโครงสร้างของตาราง: การแต่งตั้งคอลัมน์และแถวสูตร ในระยะหลัง สามารถใช้การคำนวณทางคณิตศาสตร์ ตัวแปร ข้อมูลจากตารางอื่นได้ รหัสโปรแกรมที่โหลดจากเซิร์ฟเวอร์ QUIK หรือจากดิสก์ของผู้ใช้จะถูกประมวลผลโดยล่ามภาษาซึ่งคำนวณค่าในสูตร ตารางของโปรแกรมเดียวมีแหล่งข้อมูลเดียว แต่การคำนวณจะไม่ซ้ำกันและไม่ส่งผลต่อประสิทธิภาพของระบบ เมื่อทำงานกับตาราง QUIK ตารางบน QPILE จะมีฟังก์ชันมาตรฐาน QUIK ในที่ทำงานมีโปรแกรมแก้ไขข้อบกพร่องรหัส QPILE https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm ภาษาช่วยให้คุณอธิบายตารางใหม่ด้วยโครงสร้างที่กำหนด ไฮไลต์เซลล์ด้วยค่าบางอย่าง คำนวณฟิลด์ตามนิพจน์ทางคณิตศาสตร์และตรรกะ ผู้ใช้จะได้รับการแจ้งเตือนในรูปแบบสัญญาณเสียงหรือข้อความ ตารางบน QPILE สามารถแก้ไข พิมพ์ คัดลอก ส่งออกผ่านเซิร์ฟเวอร์ ODBC และ DDE ข้อมูลเริ่มต้นมาจากตาราง QUIK:
- ธุรกรรม ซึ่งรวมถึงการดำเนินการและไม่มีตัวตน
- คำสั่ง รวมถึงคำสั่งหยุด สำหรับการซื้อขายที่ไม่ต้องสั่งโดยแพทย์และคำสั่ง – รายงานสำหรับการซื้อขายในข้อตกลงการชำระบัญชี
- “พอร์ตลูกค้า”, “ซื้อ/ขาย”
- ข้อมูลจากตำแหน่งของผู้เข้าร่วมด้วยเงิน บัญชีซื้อขาย ตราสาร
ไม่สามารถคัดลอกตารางที่ยึดตาม QPILE ไปยังไฟล์ข้อความผ่านเมนูบริบทและส่งออกไปยังระบบการวิเคราะห์ทางเทคนิค และไม่สามารถพัฒนาแผนภูมิโดยยึดตามตารางเหล่านั้นได้ ตารางที่ใช้ QPILE ไม่สามารถกรองหรือเรียงลำดับได้
ทำงานกับโต๊ะ
ในการโหลดรหัสโปรแกรม คุณต้องเลือกเมนูบริการ จากนั้นเลือกสคริปต์ QPILE คุณยังสามารถใช้การรวมกัน Ctrl+F11 หลังจากคุณต้องคลิก “เพิ่ม” และเลือกไฟล์ที่ต้องการ มีนามสกุล .qpl และชื่อจะปรากฏในรายการสคริปต์ที่พร้อมใช้งาน
- ชื่อตาราง;
- จำนวนคอลัมน์และไคลเอนต์
- รายชื่อตัวระบุและลูกค้า
- รายการพารามิเตอร์และซอร์สโค้ดของไฟล์
โครงสร้าง QPILE
ชนิดข้อมูล
- สตริง – สตริง
- ดับเบิ้ลเป็นเลขทศนิยม
- ของสะสม – ของสะสม
- แผนที่ – แอสโซซิเอทีฟอาเรย์ – ลำดับของคู่ที่ช่วยให้คุณได้รับข้อมูลด้วยคีย์
นิพจน์
ใช้การดำเนินการเลขคณิตของการบวก การลบ การคูณ การหาร นิพจน์เชิงตรรกะ “และ”, “หรือ” เท่ากับ, มากกว่า, น้อยกว่า, ความไม่เท่าเทียมกัน, การสร้างเงื่อนไข “ถ้า … แล้ว … ” ก็ถูกนำมาใช้เช่นกัน
ฟังก์ชั่น
ฟังก์ชันสามารถอยู่ที่ใดก็ได้ในโปรแกรมและมีชื่อต่างกัน มีฟังก์ชันและฟังก์ชันทางคณิตศาสตร์ทั้งหมด 18 กลุ่ม เพื่อรับค่าของตารางและพารามิเตอร์ อาร์เรย์ที่เชื่อมโยง รายการตาราง และงานอื่นๆ ชั้นประถมศึกษาปีแรก:
- ฟังก์ชันทางคณิตศาสตร์ที่ให้คุณคืนค่าของไซน์ โคไซน์ แทนเจนต์ โคแทนเจนต์ของอาร์กิวเมนต์ คำนวณเลขชี้กำลังของอาร์กิวเมนต์ สร้างตัวเลขสุ่ม ฯลฯ
- คำสั่งทั่วไป : NEW_GLOBAL เพื่อเริ่มต้นตัวแปรส่วนกลางและ MESSAGE เพื่อเปิดข้อความ
ฟังก์ชั่นที่จะทำงานร่วมกับ:
- ของสะสมของวัตถุ (Collection) . ช่วยให้คุณสร้างคอลเลกชันใหม่ ส่งคืนองค์ประกอบตามจำนวนที่ต้องการ แทนที่หรือแทรกค่าที่ต้องการ
- แอสโซซิเอ ทีฟอาเรย์(MAP) ช่วยสร้างและจัดการอาร์เรย์
- ไฟล์ – ทำงานกับไฟล์ข้อความ รักษาบันทึกล็อกของโปรแกรม ชื่อไฟล์อาจมีพาธไปยังไฟล์นั้น
- สตริง _
- กราฟ _ ฟังก์ชัน GET_CANDLE เพื่อเข้าถึงข้อมูลแท่งเทียน และ GET_CANDLE EX เพื่อส่งคืนอาร์เรย์ที่เชื่อมโยง
- แอปพลิเคชัน สร้างคำสั่งซื้อและส่งไปยังระบบการซื้อขาย
- แท็ก การก่อสร้างและการติดตั้งของพวกเขาบนแผนภูมิ การเพิ่ม การลบป้ายกำกับ การรับและการตั้งค่าพารามิเตอร์สำหรับป้ายกำกับเฉพาะ
นอกจากนี้ยังมีฟังก์ชันสำหรับ:
- สำหรับการเข้าถึงแถวของตาราง QUIK ที่กำหนดเองและรายการพารามิเตอร์ที่มี การเข้าถึงข้อมูลตารางที่ทำงาน ซึ่งรวมถึง GET_ITEM เพื่อส่งคืน MAP และ GET_NUMBER_OF เพื่อส่งคืนจำนวนรายการ
- ในการทำงานกับตารางโปรแกรม คำสั่งเหล่านี้ทำงานบนตาราง OWN สามารถอ่านได้โดยฟังก์ชันมาตรฐานจากย่อหน้าก่อนหน้าและโดยฟังก์ชันเหล่านี้ กลุ่มนี้มีคำสั่งสำหรับเพิ่ม แก้ไข และลบแถวที่มีดัชนี และล้างตาราง OWN โดยสมบูรณ์
เพื่อรับค่าใช้:
- ตารางการซื้อขายในปัจจุบัน รับพารามิเตอร์ข้อมูลการแลกเปลี่ยนโดยใช้คำสั่ง GET_PARAM (_EX)
- หน้าต่างใบเสนอราคา การรับค่าของราคาตราสาร
- ตารางตำแหน่งตามตราสารและเงิน การรับข้อมูลเกี่ยวกับลูกค้า บริษัท ตราสาร บัญชีเงินฝากด้วยรหัส
ฟังก์ชั่นบริการ – ส่งคืนวันที่ของเซสชั่นการซื้อขายปัจจุบัน, อนุกรมที่เชื่อมโยง, วันที่และเวลาปัจจุบัน, กำหนดสถานะการเชื่อมต่อ, ขัดจังหวะโหมดการคำนวณ
โปรแกรมดีบัก
การควบคุมการทำงานของโปรแกรมทีละขั้นตอนจะดำเนินการในหน้าต่าง “ดีบัก” เปิดจากเมนูบริบท “เริ่มการคำนวณในโหมดแก้ไขข้อบกพร่อง” นอกจากนี้ยังสามารถเปิดได้ด้วยคำสั่ง breakpoint() และบรรทัดโปรแกรมจะถูกเน้นด้วยสีแดง หน้าต่างประกอบด้วยฟิลด์ที่มีรหัสโปรแกรมและค่าตัวแปร ที่ด้านล่างของหน้าต่างจะมีปุ่ม “ขั้นตอนต่อไป”, “ดำเนินการต่อไป”, “หยุดการคำนวณ” การกด F5 จะเป็นการดำเนินการของโปรแกรมต่อไป ชุดค่าผสม Shift + F5 จะหยุดการดีบัก ปุ่ม F10 จะนำไปยังบรรทัดถัดไป
QPILE หรือ LUA?
LUA เป็นภาษาการเขียนโปรแกรมใหม่สำหรับการสร้างหุ่นยนต์ซื้อขาย เช่นเดียวกับ QPILE มันถูกนำไปใช้ในเทอร์มินัล QUIK https://articles.opexflow.com/programming/lua.htm ไซต์ที่อุทิศให้กับการพัฒนาหุ่นยนต์ซื้อขายสำหรับการซื้อขายแสดงข้อดีของภาษา LUA เหนือ QPILE ดังนั้นจึงสามารถทำหน้าที่เป็นสคริปต์และไบต์โค้ดที่ไม่ได้คอมไพล์ พร้อมกับเครื่องมือสำหรับนักพัฒนาและกลไกการเขียนโปรแกรมเชิงวัตถุ ออบเจ็กต์ที่เขียนด้วยภาษาโปรแกรมอื่นสามารถเชื่อมต่อกับโปรแกรม LUA ได้ LUA มีข้อมูล 8 ประเภท รวมทั้ง metatables ภาษา LUA เป็นแบบมัลติเธรด รวดเร็ว และธุรกรรมและเหตุการณ์เทอร์มินัลเป็นแบบอะซิงโครนัส LUA เป็นเรื่องธรรมดามากกว่า QPILE และมีการเขียนส่วนขยายไว้มากมาย
เลิกใช้งานภาษา QPILE แล้ว ผู้เชี่ยวชาญในฟอรัมแนะนำให้ใช้ LUA แม้ว่าจะยังคงใช้โปรแกรมที่มีประโยชน์และมีประสิทธิภาพอยู่
อย่างไรก็ตาม ภาษา QPILE นั้นเรียบง่ายเมื่อเทียบกับ LUA ดังนั้นหากคุณไม่มีประสบการณ์ในการเขียนโปรแกรม จะดีกว่าที่จะเลือก QPILE ในภาษานี้ คุณสามารถเขียนหุ่นยนต์อย่างง่ายได้ หากคุณไม่ต้องการทำการคำนวณที่ซับซ้อน
จะสร้างหุ่นยนต์ซื้อขายบน QPILE ได้อย่างไร?
ในการสร้างที่ปรึกษาการซื้อขาย คุณจะต้องมีโปรแกรมต่อไปนี้:
- ไอที ควิก.
- โปรแกรมแก้ไขโค้ด Notepad++
- คำแนะนำเกี่ยวกับ QPILE
- ปลั๊กอิน XML สำหรับการตรวจจับโค้ดใน Notepad++
ดาวน์โหลดและติดตั้งโปรแกรมเหล่านี้ เปิดใช้งานไวยากรณ์ภาษาโดยวาง userDefineLang.xml ในพาธ C:\Users\User\ AppData\Roaming\Notepad++\
บล็อก “การตั้งค่าผู้ใช้” เสริมด้วยตัวแปร NUMBER และ INTERVAL ซึ่งจะใช้ในฟังก์ชันการรับแถบ N สุดท้าย ฟังก์ชัน DATETIME ตั้งค่าวันที่และเวลาของเซิร์ฟเวอร์ และเรียกใช้ฟังก์ชันวันที่และเวลาปัจจุบัน CURDATE และ CURTIME เวลาปัจจุบันถูกแปลงเป็นตัวเลขในบรรทัดที่ 24 บรรทัดที่ 26 ตั้งเวลาให้อัลกอริทึมทำงานตั้งแต่ 10:00:01 ถึง 18:40:00 UTC
หุ่นยนต์ซื้อขายบน QPILE – โซลูชั่นสำเร็จรูป
หุ่นยนต์เคลื่อนที่เฉลี่ย
หุ่นยนต์สาธิตไม่เหมาะสำหรับการซื้อขายจริง
เครื่องคำนวณตำแหน่ง N. Moroshkin
โปรแกรมสำหรับคำนวณระดับของ drawdown สูงสุดที่อนุญาตและเป้าหมายสำหรับตำแหน่ง long และ short ที่ราคาเสนอขายและราคาเสนอปัจจุบัน ระดับจะถูกคำนวณสำหรับ 2 ค่าของปริมาณรายการตำแหน่ง หุ่นยนต์ค้นหาปริมาณตำแหน่งที่อนุญาตเมื่อกำหนดคำสั่งหยุดในขั้นตอนเดียวจากราคาเปิดด้วยการคำนวณการเปิดตำแหน่งในทิศทางของการเติบโตของแท่ง ระดับที่พบจะถูกป้อนลงในหน้าต่างเทอร์มินัล ซึ่งจะสะท้อนให้เห็นในกราฟราคาในภายหลัง ธุรกรรมได้รับการแก้ไขสำหรับตราสารที่กำหนด หากตำแหน่งถูกเปิด หุ่นยนต์จะเริ่มคำนวณพารามิเตอร์ ขึ้นอยู่กับการเปลี่ยนแปลงในตำแหน่ง ใบสั่งที่ได้รับมอบหมายจะถูกปรับปรุง
ตัวกรองระดับเสียง
หุ่นยนต์พอร์ตโฟลิโอสำหรับคำนวณค่าเฉลี่ยเลขคณิตของปริมาตรของแท่งเทียนและเปรียบเทียบกับผลคูณเฉลี่ยโดยค่าสัมประสิทธิ์ X ทำงานอย่างถูกต้องกับแผนภูมิที่ลงจุดในช่วงเวลาที่เลือก
ตัวเลือก Greeks
ผลงานสำหรับการคำนวณและแสดงตัวเลือก “กรีก” แตกต่างจากวิธี Black-Showers
หุ่นยนต์ซื้อขาย TRIX สำหรับ QUIK
โปรแกรมนี้ใช้ตัวบ่งชี้ TRIX เมื่อตัวบ่งชี้ปิดเหนือเส้นศูนย์ ระดับที่กำหนด หุ่นยนต์เข้ารับตำแหน่ง Long สถานะปิดโดย Take Profit, Stop Loss หรือ Trailing Stop
ตัวประมวลผลล่วงหน้า M4
โปรแกรมทำงานกับ QPILE และ Lua รวมไฟล์เก็บถาวรที่มีไฟล์เรียกทำงาน เอกสารประกอบ และไฟล์ DLL ที่มีการแยกวิเคราะห์นิพจน์ทั่วไป ในการใช้โปรแกรม คุณต้องแตกไฟล์ปฏิบัติการและวาง regexp2 ในพาธ C:\Windows บทเรียนเกี่ยวกับ QPILE สำหรับ QUIK: https://youtu.be/vMTXwDUujpI การติดตั้งสคริปต์บน QPILE ในเทอร์มินัล Quik: https://youtu.be/0B7qL8Svh7I ส่วนบน github ที่อธิบายการใช้ภาษาอัลกอริธึม QPILE ที่สร้างขึ้นใน เวิร์กสเตชันระบบ QUIK อยู่ที่ลิงค์ – https://euvgub.github.io/quik_user_manual/ch8.html QPILE เป็นภาษาที่ล้าสมัย แต่ค่อนข้างง่ายและเข้าถึงได้แม้กระทั่งผู้ค้ามือใหม่ หุ่นยนต์ซื้อขายและโปรแกรมที่พิสูจน์ตัวเองมาเป็นเวลานานยังคงทำงานต่อไป อย่างไรก็ตาม สำหรับงานที่ซับซ้อนมากขึ้น ควรใช้ LUA
0к