पिछले लेखों में, हमने इतने सारे क्रिप्टोक्यूरेंसी, प्रोग्रामिंग और मात्रात्मक ट्रेडिंग की बुनियादी अवधारणाओं को सीखा है। अंत में, हम विषय पर आगे बढ़ सकते हैं और रणनीति के बारे में बात कर सकते हैं। इस लेख में, हम एक साथ एक सरल रणनीति को लागू करना सीखेंगे।
इस समय किसी ने कहा होगा:
मैं कोड नहीं लिख सकता!
यह सच है. यह वास्तव में किसी के लिए काफी मुश्किल है जो कंप्यूटर सॉफ्टवेयर में प्रमुख नहीं है या प्रोग्रामिंग कार्य में संलग्न नहीं है, अपने आप को एक पूरी ट्रेडिंग रणनीति विकसित करने के लिए। क्योंकि आपको एक्सचेंज इंटरफ़ेस को डॉक करने की शुरुआत से पूर्व-कार्य की एक श्रृंखला करनी होगी (शायद आपका ट्रेडिंग लॉजिक प्रोग्राम केवल 100 पंक्तियां है, लेकिन अन्य कोडिंग कार्य करने के लिए काफी अधिक है, और यह ट्रेडिंग लॉजिक लिखने की तुलना में अधिक कठिन है।)
इस समय, यदि आपके पास एक आसान उपकरण है, तो यह काफी सरल है, कम से कम कठिनाई 70% तक कम हो जाती है। आप कल्पना कर सकते हैं कि यह कितना सुविधाजनक और तेज़ है यदि आप केवल ट्रेडिंग लॉजिक खुद लिखते हैं, और अन्य सभी एक्सचेंज इंटरफ़ेस कनेक्शन, हस्ताक्षर सत्यापन, कॉन्फ़िगरेशन फ़ाइलें, ऑपरेटिंग वातावरण निर्माण, यूआई इंटरफ़ेस लेखन, इंटरैक्टिव लेखन और इतने पर सभी तैयार हैं।
तुम विश्वास नहीं करते? चलो यह कोशिश करते हैं!
हम जिस उपकरण का उपयोग करते हैं वह हैः एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म (FMZ.COM) ग्रिड रणनीति डिजाइन का मूल वास्तव में ग्रिड खरीदने और बेचने का तर्क है, इसलिए यह कुछ ऐसा है जिसे एक रणनीति डिजाइन करने से पहले स्पष्ट किया जाना चाहिए। हमारा लक्ष्य रणनीति डिजाइन को सरल और समझने में आसान बनाना है, इसलिए जितने कम पैरामीटर और जितना सरल तर्क, बेहतर।
निम्नलिखित एक रणनीति के डिजाइन का मूल प्रवाह हैः
सरल शब्दों में, यह है कि आपकी रणनीति क्या, कैसे, और क्या कार्य करने जा रही है। यह जानकारी एक दस्तावेज़ (नोटपैड या कुछ और) में लिखी जा सकती है इससे पहले कि आप रणनीति कोड लिखें। एफएमजेड पर रणनीतियों को विकसित करना बहुत सरल है, प्लेटफॉर्म ने आपके लिए इन आवश्यकताओं के लिए समाधान तैयार किए हैं, और मुझे इन आवश्यकताओं को नोटपैड में लिखने की आवश्यकता नहीं है (जो प्रबंधित करने के लिए बहुत सुविधाजनक नहीं है) । मैं सीधे रणनीति नोट्स में रणनीति आवश्यकताओं को लिखता हूं।
बस समाप्त करने के बाद रणनीति को बचाने के लिए याद है, और फिर हम रणनीति आवश्यकताओं लिखेंगे (रणनीति आवश्यकताओं स्थिर नहीं हैं, और यह भी विकास के दौरान रिकॉर्ड करने के लिए संभव है) ।
XXX_USDT
, जैसेBTC_USDT
.अस्पष्ट विचारों के लिए, हम शुरुआत में चित्र और विश्लेषण कर सकते हैं।
एक ग्रिड एक आधार बिंदु के रूप में प्रारंभिक मूल्य से ऊपर और नीचे दोनों दिशाओं में बनाया जा सकता है। ग्रिड एक परत-दर-परत खरीद लाइन और बिक्री लाइन है। ग्राफ को देखते हुए, हम देख सकते हैं कि प्रत्येक रेखा में दो संभावनाएं हैंः
एक फ़ंक्शन लिखें जो ग्रिड डेटा संरचना का निर्माण करता हैः
function createNet(begin, diff) { // begin, diff are parameters, begin is the initial price, diff is the grid spacing (the spacing of the equal difference grid is the price)
var oneSideNums = 10 // The grid generates 10 bars on the upward and downward sides. The above chart is a side of the generation of 2 bars (AB side, CD side) and the generation of 10 bars, you can imagine them by yourself.
var up = [] // Used to store the upward "grid line" data structure
var down = [] // Used to store the downward "grid line" data structure
for (var i = 0 ; i < oneSideNums ; i++) { // Determine the number of times according to the size of oneSideNums, and construct the "grid line" data structure cyclically
var upObj = { // Construct an upward "gridline" data structure
buy : false, // Buy marker, initial marker is false, meaning no buy
sell : false, // Sell marker ...
price : begin + diff / 2 + i * diff, // The price level represented by this "grid line" can be observed according to the cycle, and the price level is rising in turn.
}
up.push(upObj) // The constructed "gridline" data structure is placed into the up array
var j = (oneSideNums - 1) - i // The change in j during the loop is: 9 ~ 0
var downObj = {
buy : false,
sell : false,
price : begin - diff / 2 - j * diff,
}
if (downObj.price <= 0) { // The price cannot be less than or equal to 0
continue
}
down.push(downObj) // The constructed "gridline" data structure is placed in down array
}
return down.concat(up) // Add up after down to form a grid array structure with grid line prices from small to large
}
आप प्रभाव देखने के लिए इस फ़ंक्शन को अलग से चला सकते हैं. [डिबगिंग टूल्स] या [बैकटेस्टिंग सिस्टम] एफएमजेड पर ऐसे छोटे कोड को डिबग करने के लिए बहुत सुविधाजनक हैं.
निर्मित डेटा का अवलोकन किया जा सकता है।
[
{"buy":false,"sell":false,"price":5},
{"buy":false,"sell":false,"price":15},
{"buy":false,"sell":false,"price":25},
{"buy":false,"sell":false,"price":35},
{"buy":false,"sell":false,"price":45},
{"buy":false,"sell":false,"price":55},
{"buy":false,"sell":false,"price":65},
{"buy":false,"sell":false,"price":75},
{"buy":false,"sell":false,"price":85},
{"buy":false,"sell":false,"price":95},
{"buy":false,"sell":false,"price":105}, // 100 is the starting price, starting from 105 and going up the first line, with an interval of 10
{"buy":false,"sell":false,"price":115}, // ...
{"buy":false,"sell":false,"price":125},
{"buy":false,"sell":false,"price":135},
{"buy":false,"sell":false,"price":145},
{"buy":false,"sell":false,"price":155},
{"buy":false,"sell":false,"price":165},
{"buy":false,"sell":false,"price":175},
{"buy":false,"sell":false,"price":185},
{"buy":false,"sell":false,"price":195}
]
ग्रिड की डेटा संरचना का विश्लेषण करने के बाद, हमें ग्रिड रणनीति के विशिष्ट ट्रेडिंग तर्क पर विचार करने की आवश्यकता है। वास्तव में, खरीदने और बेचने का तर्क बहुत सरल है। हमने इसे पहले ही ऊपर दिए गए चार्ट में खींचा है, खरीदने का अर्थ है नीचे एक निश्चित रेखा को पार करना, और बेचने का अर्थ है ऊपर एक निश्चित रेखा को पार करना। तो आप ऊपर और नीचे के क्रॉसिंग को कैसे दिखाते हैं? यह भी बहुत सरल है, हम केवल दो क्षणों की मूल्य स्थिति की तुलना करके न्याय कर सकते हैं।
अभी भी पिछले चार्ट का उपयोग कर रहा है।
t1 एक क्षण है, t2 t1 के बाद एक क्षण है, ऊपर रेखा C पार न्याय करने के लिए, हम केवल न्याय करने की जरूरत हैP1 < C
औरP2 > C
.
इसी तरह, रेखा बी के नीचे पार किया न्याय करने के लिए, हम केवल निर्धारित करने की जरूरत हैP1 > B
औरP3 < B
.
उस समय, हम केवल पार करने की जरूरत है (पार करने के लिए आम तौर पर के रूप में जाना जाता हैएक-एक करके देखो) ग्रिड सरणी में प्रत्येक रेखा, और तय करें कि इसे ऊपर या नीचे पार करना है। क्या यह सरल है?
ऊपर और नीचे की कीमत के क्रॉसिंग को पकड़ने के बाद, क्या इन क्रियाओं को ट्रिगर करते समय ऑर्डर देना संभव है?
स्पष्ट रूप से, यह संभव नहीं है। यदि कीमत एक ही रेखा पर बार-बार ऊपर और नीचे पार करती है, तो क्या यह एक ही मूल्य स्तर पर बार-बार ट्रेडिंग के लिए शुल्क बर्बाद नहीं करेगा? इसलिए, अभी भी ऊपर और नीचे की कीमत पार करने के लिए निर्णय की शर्तों की एक श्रृंखला है, जिसके लिए हम अभी बनाए गए ग्रिड लाइन डेटा संरचना में खरीद / बिक्री मार्कर का उपयोग करना आवश्यक है (उदाहरण के लिएः {
पढ़ने के लिए धन्यवाद, हम अगले अंक में समझाएंगे और सीखेंगे।