विज़ुअलाइज़ेशन मॉड्यूल बनाने के लिए ट्रेडिंग रणनीतियों को सीखना एक शुरुआती पाठ है, विज़ुअलाइज़ेशन मॉड्यूल बनाने, जोड़ने के लिए एक वैचारिक समझ है, और एक बहुत ही सरल तरीका है। इसके बाद, अन्य मॉड्यूल का उपयोग करना सीखना आसान हो जाता है। कुछ अधिक जटिल कार्यों को एक साथ जोड़ा जा सकता है।
पिछले अध्ययनों और परीक्षणों में, हम कुछ "लेनदेन श्रेणियों" के मॉड्यूल से संपर्क कर चुके हैं। उदाहरण के लिएः "एक्सचेंज एक्सेस मार्केट" मॉड्यूल "एक्सचेंजों को K-लाइन प्राप्त करें" मॉड्यूल ...
ये सभी पहले से ही इस्तेमाल किए गए हैं, लेकिन इनका वर्णन नहीं किया गया है।
रोबोट ट्रेडिंग का उपयोग करके रणनीति लिखने में, एक से अधिक एक्सचेंज ऑब्जेक्ट जोड़े जा सकते हैं, जैसे कि हेजिंग की रणनीति। या फिर आपको एक्सचेंज के ऑब्जेक्ट्स पर एक बार जाने की आवश्यकता है, जब आप बाजार में जाते हैं। इस बिंदु पर, आपको एक्सचेंज नंबर प्राप्त करने के लिए मॉड्यूल का उपयोग करना होगा।
हम पहले एक सरल संरचना का उपयोग करके वर्तमान में कॉन्फ़िगर किए गए एक्सचेंजों की संख्या प्रिंट कर सकते हैंः
वास्तव में, यह जावास्क्रिप्ट नीति कोड को कॉल करने जैसा हैः
function main () {
Log(exchanges.length)
}
हम इस संयोजन मॉड्यूल को चलाने के परिणामों को देखते हैंः
जैसा कि आप देख सकते हैं कि हमने 3 एक्सचेंज ऑब्जेक्ट्स जोड़े हैं, जो तीन अलग-अलग एक्सचेंज खातों का प्रतिनिधित्व करते हैं, और लॉग आउटपुट को 3 के रूप में पुनः परीक्षण करते हैं।
जब तीन एक्सचेंज ऑब्जेक्ट जोड़े जाते हैं, तो ड्रॉपडाउन बॉक्स तीन विकल्प दिखाता है। एक लूपिंग मॉड्यूल को पहले से सीखें, लूपिंग प्रकार में।
एक और मॉड्यूल जो हम पहले से सीखते हैं वह है:इस तरह के एक बयान में कहा गया है,
हम एक घुमावदार मॉड्यूल के माध्यम से जोड़े गए एक्सचेंज नामों का उपयोग करते हैं एक मॉड्यूल का उपयोग करके यह निर्धारित किया जाता है कि क्या वर्तमान चक्र की गिनती उस एक्सचेंज के नाम से मेल खाती है जिसे आप प्रिंट करना चाहते हैं।
रजिस्ट्रेशन के बादः
उदाहरण के लिए, जावास्क्रिप्ट नीति कोडः
function main () {
for (var i = 1 ; i <= exchanges.length ; i++) {
if (i == 1) {
Log(exchanges[0].GetName())
} else if (i == 2) {
Log(exchanges[1].GetName())
} else {
Log(exchanges[2].GetName())
}
}
}
एक सरल उदाहरण वर्तमान सेट के पहले एक्सचेंज ऑब्जेक्ट के लेनदेन जोड़े को प्राप्त करता है और text चर को मान देता है (विभिन्न श्रेणी में पहले से बनाया गया) ।
परीक्षण के परिणामः
यदि आप जावास्क्रिप्ट नीति कोड को कॉल करते हैंः
function main () {
var text = exchange.GetCurrency()
Log(text)
}
यह मॉड्यूल बहुत महत्वपूर्ण है, ऑर्डर ऑपरेशन के लिए, पहला पिन (पिन) स्थान मूल्य चर को एम्बेड करता है, जो ऑर्डर मूल्य को निर्दिष्ट करने के लिए उपयोग किया जाता है, या सीधे एक निश्चित संख्या दर्ज कर सकता है।
दूसरा
उदाहरण के लिए, हम एक उदाहरण लिखते हैं कि वर्तमान टिकट लेन-देन डेटा के आधार पर नवीनतम मूल्य, 10 यूरो के साथ भुगतान किया गया है, और आदेश आईडी प्रिंट किया गया है।
रजिस्ट्रेशन के बादः
उदाहरण के लिए, निम्नलिखित जावास्क्रिप्ट नीति कोडः
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
Log(id)
}
यह मॉड्यूल उन सभी असाइनमेंट ऑर्डरों को वापस करता है जो वर्तमान लेन-देन के लिए अपूर्ण हैं, जो एक सूची संरचना (एरे) को वापस करते हैं जिसे सूची प्रकार के मॉड्यूल (सर्किट ऑपरेशन आदि) के साथ संसाधित किया जा सकता है। उदाहरण के लिए, हम ऊपर दिए गए पैटर्न को थोड़ा संशोधित करते हैं, आदेश देने के समय 10 डॉलर के मूल्य को घटाकर 10 डॉलर में बदल देते हैं। आदेश तुरंत समाप्त नहीं होता है, लेकिन खरीद और बिक्री की गहराई में लटका होता है (यानी, खरीदें, खरीदें, खरीदें, खरीदें) । फिर हम "ऑर्डर के लिए वर्तमान लेनदेन प्राप्त करें" मॉड्यूल का उपयोग करते हैं, जो PENDING स्थिति में ऑर्डर की सूची प्राप्त करता है। आदेशों के बाद के लेनदेन को प्रभावित करने से बचने के लिए, हम "वर्तमान लेनदेन को प्राप्त करें" मॉड्यूल को निष्पादित करने के बाद आदेशों की सूची प्रिंट करते हैं और तुरंत "असामान्यताओं को फेंकने" मॉड्यूल का उपयोग करके प्रक्रिया को रोकते हैं।
इस तरह की एक तस्वीर सामने आई।
इस मामले में, यह स्पष्ट है कि इस तरह के एक छोटे से लेनदेन के लिए, यह केवल एक बार होगा जब आप एक नए लेनदेन के लिए भुगतान करेंगे। इसके बाद वे ऑर्डर प्राप्त करते हैं जो लेनदेन के लिए प्रतीक्षा कर रहे हैं और उन्हें प्रिंट करते हैं। अंत में, एक असामान्यता छोड़ दें और कार्यक्रम को रोक दें।
यह पूरी तरह से एक साथ रखा गया मॉड्यूल है जो जावास्क्रिप्ट नीति को कॉल करता हैः
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
Log(exchange.GetOrders())
throw "stop"
}
इस मॉड्यूल का उपयोग ऑर्डर रद्द करने के लिए किया जाता है।
कई परिदृश्यों में रणनीति बनाने के लिए इस तरह के संचालन की आवश्यकता होती हैः
इस तरह से, हम अपने ग्राहकों के लिए एक नया विकल्प चुनते हैं।
यह निश्चित रूप से "वसूली मॉड्यूल" का उपयोग करता है, और जब हम वसूली मॉड्यूल सीखते हैं, तो हम वर्तमान लेनदेन के लिए ऑर्डर प्राप्त करने के लिए टायर 5 टायर का उपयोग कर सकते हैं।
सबसे पहले, सभी आदेशों को रद्द करने के लिए परीक्षण करने के लिए, एक आदेश को लटका देना स्पष्ट नहीं है, हम दो बार आदेश देना शुरू करते हैं, दोनों आदेशों को अलग करने के लिए कीमतों की संख्या अलग होती है।
वर्तमान लंबित सूची में आदेशों को देखने के लिए "लिस्ट में प्रत्येक तत्व पर जाएं" मॉड्यूल का उपयोग करें।जब क्रॉस किया जाता है, तो प्रत्येक निकाले गए ऑर्डर को चर मॉड्यूल order ((में बनाया जाता है, जैसा कि चित्र में दिखाया गया है) के लिए असाइन किया जाता है।उपकरण प्रकार मॉड्यूल का उपयोग करकेःऑर्डर आईडी निकालें, इसे रद्द करने के लिए ऑर्डर मॉड्यूल पर भेजें और रद्द करने के लिए ऑर्डर मॉड्यूल को निष्पादित करें।
पुनः परीक्षण चल रहा हैः
जावास्क्रिप्ट नीति का उपयोग करके वर्णन करेंः
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
Log(id2)
var orders = exchange.GetOrders()
Log(orders)
for (var i in orders) {
var order = orders[i]
Log(exchange.CancelOrder(order.Id))
}
}
इस मॉड्यूल का स्थान एक ऑर्डर आईडी चर मॉड्यूल तक पहुंचता है, जो ऑर्डर विवरण वापस कर सकता है।
यहां देखें कि कौन से ऑर्डर वापस आ गएः
और 5 टन के उदाहरण में चलने वाले परिणामों का तुलना करके यह पाया जा सकता है कि प्रिंट किए गए ऑर्डर एक अलग ऑर्डर सूचना है, जिसमें कोई भी नहीं है[]
मध्य कोष्ठक में पैकेज।
चूंकि उदाहरण में कंक्रीट 5 कंक्रीट में सूची लौटाता है, इसलिए यह उदाहरण एक अलग आदेश सूचना लौटाता है ((मॉड्यूल द्वारा भेजे गए कंक्रीट के स्थान पर आईडी चर के आधार पर मॉड्यूल प्राप्त करना) ।)
उपरोक्त उदाहरण जावास्क्रिप्ट नीति को निष्पादित करने के समान हैंः
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(exchange.GetOrder(id))
}
उपरोक्त मॉड्यूल में हम एक-एक करके सीखते हैं, एक्सचेंजों का परीक्षण करते हैं जिन्हें हम कमोडिटी फ्यूचर्स के रूप में सेट करते हैं।
रीसेट सेटिंग्सःनिम्नलिखित उदाहरणों में, इस सेटिंग के अनुसार पुनः परीक्षण किया जाता है।
सीटीपी कमोडिटी फ्यूचर्स और फ्यूचर्स कंपनी सर्वर कनेक्टिविटी स्टेटस मॉड्यूल का निर्धारण करें
कमोडिटी फ्यूचर्स के बाजार में खुलने का समय बंद होने का समय होता है, और बंद होने पर, कनेक्शन नहीं हो सकता है।
अनुबंध मॉड्यूल सेट करें
जब एक्सचेंज के ऑब्जेक्ट को वायदा एक्सचेंज के रूप में कॉन्फ़िगर किया जाता है, तो अनुबंध सेट नहीं किया जाता है, सीधे बाजार तक पहुंच जाता है, तो त्रुटि दर्ज की जाती हैः
हम MA909 के लिए एक अनुबंध स्थापित करते हैं, मेथॉल वर्तमान में मुख्य अनुबंध है।इस प्रकार MA909 अनुबंध के लिए वर्तमान टिक मूल्य का नवीनतम मूल्य प्राप्त होता है।
फ्यूचर्स ट्रेडिंग के लिए एकतरफा मॉड्यूल सेट करें
निष्पादित करने के लिए उपशीर्षक
एक ही दिशा निर्दिष्ट करने की आवश्यकता है, क्योंकि वायदा हैः
खरीदेंः अधिक शेयर
sell: खाली भंडारण
closebuy: एक ही स्थान पर
closesell: रिक्त भंडारण
चार दिशाएँ (कमोडिटी वायदा दो और दिशाएँः closebuy_today, closeesell_today, और closebuy_today) ।
उदाहरण के लिए, यदि आप एक मॉड्यूल को खरीदने के लिए सेट करते हैं, तो आप दो अर्थों के साथ एक बहु-स्थान और एक खाली स्थान बनाते हैं, जिससे द्विआधारीकरण होता है। इसलिए, एक स्पष्ट दिशा निर्धारित करने के लिए "फ्यूचर्स ट्रेडिंग के नीचे एक दिशा निर्धारित करें" मॉड्यूल की आवश्यकता होती है।
एक बार फिर से जांच में पाया गयाः
उदाहरण के लिए, जावास्क्रिप्ट नीति कोडः
function main () {
while (true) {
if (exchange.IO("status")) {
exchange.SetContractType("MA909")
Log(exchange.GetTicker().Last)
exchange.SetDirection("buy")
Log(exchange.Buy(1000, 1))
throw "stop"
} else {
Log("未连接商品期货前置机")
}
Sleep(1000)
}
}
डिजिटल मुद्राओं के लिए वायदा का उपयोग मूल रूप से समान है जैसा कि ऊपर दिए गए 8 में है।
अनुबंध कोड OKEX के उदाहरण के रूप में हो सकता हैः
बिटकॉइनः
लीवर मॉड्यूल सेट करें
डिजिटल मुद्राओं के लिए वायदा लाभ उठाने के लिए प्रयोग किया जाता है।
# 注意 : 回测不支持。
उदाहरण के लिए, जावास्क्रिप्ट नीतिः
function main () {
exchange.SetMarginLevel(10)
}
विज़ुअलाइज़ेशन पैटर्न रणनीतियाँः
अधिक रणनीतियों के लिएःhttps://www.fmz.com/square
इस श्रृंखला के अन्य लेख
अलिनएक महीने से अधिक समय तक प्रोग्रामिंग करने के बाद, मैं अभी भी रणनीति नहीं लिख सकता, और अब यह सभी ब्लॉक पर निर्भर है!
आविष्कारक मात्रा - छोटे सपनेइस लेख की श्रृंखला को जारी रखने के लिए धन्यवाद। वास्तव में, प्रत्येक उदाहरण के पीछे संबंधित जावास्क्रिप्ट नीति कोड के आधार पर, जेएस में नीति लिखने में आसानी होती है।