
पिछले दो दिनों में, टेलीग्राम समूह में एक उपयोगकर्ता ने मुझे एक निजी संदेश भेजा जिसमें आईपीओ रणनीति के लिए एक डिज़ाइन उदाहरण की उम्मीद थी। कभी-कभी जब कोई एक्सचेंज नए कॉइन सूचीबद्ध करता है, तो आप उनमें से कुछ को हथियाना चाहते हैं। यह लेख एक सरल नए कॉइन रणनीति को डिज़ाइन करता है।
उदाहरण के लिए, वर्तमान में एक निश्चित एक्सचेंज पर, एक निश्चित ट्रेडिंग जोड़ी: XXX_USDT, अभी तक एक्सचेंज पर सूचीबद्ध नहीं हुई है। लेकिन यह जल्द ही ऑनलाइन आ रहा है। इस एक्सचेंज के XXX_USDT बाजार की निगरानी के लिए एक प्रोग्राम की आवश्यकता है। एक बार जब इस ट्रेडिंग जोड़ी की ऊपरी सीमा पूरी हो जाती है, तो इसका व्यापार किया जा सकता है। फिर 10 सीमा खरीद आदेश जारी करें, मात्रा निर्दिष्ट करें, और सिक्के प्राप्त करने के लिए ऑर्डर दें। इसे खरीदने से कार्य पूरा हो जाता है। यदि आप इसे नहीं खरीद सकते, तो इसे तब तक रोक कर रखें जब तक कि सभी ऑर्डर निष्पादित न हो जाएं और आप सिक्के खरीद न लें।
आवश्यकता बहुत सरल है, लेकिन जिन लोगों को क्रिप्टोकरेंसी सर्कल में कोई प्रोग्रामिंग फाउंडेशन नहीं है, वे शायद यह नहीं जानते होंगे कि कहां से शुरू करें। आगे, हम इस आवश्यकता को साकार करने पर काम करेंगे।
रणनीति पैरामीटर परिभाषा:
यहां हम ऑर्डर देने जैसे कार्यों को नियंत्रित करने के लिए कई पैरामीटर परिभाषित करते हैं।

कोड कार्यान्वयन:
function pendingOrders(ordersNum, price, amount, deltaPrice, deltaAmount) {
var routineOrders = []
var ordersIDs = []
for (var i = 0 ; i < ordersNum ; i++) {
var routine = exchange.Go("Buy", price + i * deltaPrice, amount + i * deltaAmount)
routineOrders.push(routine)
Sleep(ApiReqInterval)
}
for (var i = 0 ; i < routineOrders.length ; i++) {
var orderId = routineOrders[i].wait()
if (orderId) {
ordersIDs.push(orderId)
Log("成功挂单", orderId)
}
}
return ordersIDs
}
function main() {
if (symbol == "null" || pendingPrice == -1 || pendingAmount == -1 || pendingPrice == -1 || deltaPrice == -1 || deltaAmount == -1) {
throw "参数设置错误"
}
exchange.SetCurrency(symbol)
// 屏蔽错误信息
SetErrorFilter("GetDepth")
while (true) {
var msg = ""
var depth = exchange.GetDepth()
if (!depth || (depth.Bids.length == 0 && depth.Asks.length == 0)) {
// 没有深度
msg = "没有深度数据,等待!"
Sleep(500)
} else {
// 获取到深度
Log("并发下单!")
var ordersIDs = pendingOrders(ordersNum, pendingPrice, pendingAmount, deltaPrice, deltaAmount)
while (true) {
var orders = _C(exchange.GetOrders)
if (orders.length == 0) {
Log("当前挂单个数0,停止运行")
return
}
var tbl = {
type: "table",
title: "当前挂单",
cols: ["id", "价格", "数量"],
rows: []
}
_.each(orders, function(order) {
tbl.rows.push([order.Id, order.Price, order.Amount])
})
LogStatus(_D(), "\n`" + JSON.stringify(tbl) + "`")
Sleep(500)
}
}
LogStatus(_D(), msg)
}
}
रणनीति एक्सचेंज एपीआई और ऑर्डर बुक इंटरफ़ेस का पता लगाती है। ऑर्डर बुक डेटा उपलब्ध होने के बाद, रणनीति ऑर्डर देने के लिए एक्सचेंज.गो फ़ंक्शन का उपयोग करती है। ऑर्डर देने के बाद, वर्तमान लंबित ऑर्डर की स्थिति की लूप में जांच की जाएगी। रणनीति का वास्तव में परीक्षण नहीं किया गया है। यहाँ केवल एक कोड डिज़ाइन संदर्भ है। जो लोग रुचि रखते हैं वे उपयोग के लिए फ़ंक्शन संशोधित और जोड़ सकते हैं।
पूरी रणनीति: https://www.fmz.com/strategy/358383