डिजिटल मुद्रा स्पॉट (ट्यूटोरियल) के लिए नई शेयर रणनीति की सदस्यता लें

लेखक:लिडिया, बनाया गयाः 2022-11-08 17:02:28, अद्यतन किया गयाः 2023-09-20 10:31:51

img

पिछले दिनों में, मुझे टेलीग्राम समूह के उपयोगकर्ताओं से कुछ निजी संदेश प्राप्त हुए, वे संदर्भ के लिए नई शेयर रणनीति की सदस्यता के डिजाइन उदाहरण की उम्मीद करते हैं। कभी-कभी, वे नए शेयरों की सदस्यता लेना चाहते हैं जब एक्सचेंज नई मुद्राओं को लैंड करता है, इसलिए इस लेख में, हम नए शेयरों की सदस्यता के लिए एक सरल उपकरण रणनीति डिजाइन करेंगे।

रणनीतिक आवश्यकताएं

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

जरूरतें बहुत सरल हैं, लेकिन जो लोग डिजिटल मुद्रा बाजार में कोई प्रोग्रामिंग नींव नहीं है, वे शुरू करने में सक्षम नहीं हो सकता है, तो चलो इसे लागू करने के लिए शुरू करते हैं।

रणनीति कोड

रणनीति पैरामीटर की परिभाषाः

यहाँ हम इन 7 मापदंडों को आदेश देने जैसे संचालन को नियंत्रित करने के लिए परिभाषित करते हैं।

img

कोड कार्यान्वयन:

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("placed an order successfully", orderId)
        }        
    }
    return ordersIDs
}

function main() {
    if (symbol == "null" || pendingPrice == -1 || pendingAmount == -1 || pendingPrice == -1 || deltaPrice == -1 || deltaAmount == -1) {
        throw "Parameter setting error"
    }
    exchange.SetCurrency(symbol)
    // Block error messages
    SetErrorFilter("GetDepth")
    while (true) {
        var msg = ""
        var depth = exchange.GetDepth()
        if (!depth || (depth.Bids.length == 0 && depth.Asks.length == 0)) {
            // No depth
            msg = "No depth data, wait!"
            Sleep(500)
        } else {
            // Obtain depth
            Log("Place orders concurrently!")
            var ordersIDs = pendingOrders(ordersNum, pendingPrice, pendingAmount, deltaPrice, deltaAmount)
            while (true) {
                var orders = _C(exchange.GetOrders)
                if (orders.length == 0) {
                    Log("The current number of pending orders is 0, and the operation is stopped")
                    return 
                }
                var tbl = {
                    type: "table",
                    title: "The current pending orders",
                    cols: ["id", "price", "amount"], 
                    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


संबंधित

अधिक