संसाधन लोड हो रहा है... लोड करना...

ट्रेडिंग व्यू अलर्ट सिग्नल ट्रेडिंग का एहसास करने के लिए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई का उपयोग करें

लेखक:FMZ~Lydia, बनाया गयाः 2022-12-14 13:42:41, अद्यतन किया गयाः 2023-09-20 10:17:53

img

ट्रेडिंग व्यू अलर्ट सिग्नल ट्रेडिंग का एहसास करने के लिए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई का उपयोग करें

एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई को हाल ही में प्रत्यक्ष पहुंच का समर्थन करने के लिए अपग्रेड किया गया है, ताकि यह स्वचालित ट्रेडिंग के लिए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म रोबोट को ट्रेडिंगव्यू अलर्ट सिग्नल आसानी से भेज सके। यदि आप नहीं जानते कि विस्तार एपीआई क्या है, तो मुझे ध्यान से सुनें।

एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई

एफएमजेड पर एपीआई प्रलेखन के कुछ लिंक (https://www.fmz.com/api)

विस्तारित एपीआई का मुख्य कार्य प्रोग्रामेटिक संचालन के लिए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विभिन्न कार्यों के लिए इंटरफेस प्रदान करना है, जैसे कि एक साथ बैचों में रोबोट शुरू करना, रोबोट को शुरू करने और रोकने का समय, रोबोट सूचना विवरण पढ़ना, आदि। हम एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई का उपयोग ट्रेडिंगव्यू अलर्ट सिग्नल ट्रेडिंग की मांग योजना को महसूस करने के लिए करते हैं, जो केवलCommandRobot(RobotId, Cmd)विस्तारित एपीआई में इंटरफेस। यह इंटरफेस एक निर्दिष्ट आईडी के साथ रोबोट को इंटरैक्टिव निर्देश भेज सकता है, और रोबोट निर्देश प्राप्त करने के बाद संबंधित संचालन (जैसे खरीदने, बेचने, आदि के लिए एक आदेश रखने) निष्पादित कर सकता है। विस्तारित एपीआई का उपयोग करने के लिए, आप एक बनाने की जरूरत हैAPI KEYपहले अपने स्वयं के एफएमजेड खाते के लिएः

img

रहस्य की कुंजीAPI KEYमें शामिल हैaccess keyऔरsecret key. API KEYकार्यक्रमात्मक संचालन के एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म को मात्रात्मक बनाने की कुंजी है, इसलिए इसे ठीक से रखा जाना चाहिए और खुलासा नहीं किया जाना चाहिए।API KEYFMZ पर, आप अनुमतियाँ निर्दिष्ट कर सकते हैं. उदाहरण के लिए ऊपर के आंकड़े केवल देता हैAPI KEYपहुँचने की अनुमतिCommandRobot(RobotId, Cmd)इस उदाहरण के लिए, सुरक्षा कारणों के आधार पर, कृपया केवल विस्तारितAPI KEYपर एफएमजेड अनुमतिCommandRobot(RobotId, Cmd) interface.

विस्तारित एपीआई का प्रत्यक्ष पहुँच मोड

प्रत्यक्ष पहुँच मोड का अर्थ है किAPI KEYसीधे यूआरएल क्वेरी में लिखा जाता है. उदाहरण के लिए, एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर विस्तारित एपीआई तक पहुंचने के लिए यूआरएल लिखा जा सकता हैः

https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]

कहाँhttps://www.fmz.com/api/v1इंटरफ़ेस पता है,?इसके पश्चात्Query, पैरामीटरaccess_keyगुप्त कुंजी उदाहरण के लिए xxx द्वारा दर्शाई जाती है (जब आप इसका उपयोग करते हैं तो अपने स्वयं के FMZ खाते की access_key भरें). पैरामीटरsecret_keyyyyy द्वारा दर्शाया जाता है (जब आप इसका उपयोग करते हैं तो अपने स्वयं के खाते secret_key में भरें). पैरामीटरmethodएक्सेस किए जाने वाले विस्तारित एपीआई इंटरफ़ेस का विशिष्ट नाम है, औरargsके पैरामीटर हैmethodइंटरफेस बुलाया जाना है.

हम FMZ क्वांट ट्रेडिंग प्लेटफ़ॉर्म रोबोट को लेनदेन आदेश भेजने के लिए सिग्नल स्रोत के रूप में ट्रेडिंगव्यू का उपयोग करते हैं। वास्तव में हम केवलCommandRobot interface.

ट्रेडिंगदृश्य

सबसे पहले, आपके पास ट्रेडिंगविiew प्रो स्तर का खाता होना चाहिए. अलर्ट में वेबहूड फ़ंक्शन का उपयोग बेसिक स्तर पर नहीं किया जा सकता है.

ट्रेडिंग व्यू चार्ट में, आप चार्ट या अन्य स्क्रिप्ट एल्गोरिदम के लिए एक संकेतक जोड़ सकते हैं। यहाँ, हम सबसे अधिक इस्तेमाल कियाMACDसंकेतक, और फिर हम 1 मिनट के लिए K-लाइन अवधि सेट (तेज संकेत ट्रिगर और आसान प्रदर्शन के लिए) ।

चार्ट पर राइट क्लिक करें और पॉप-अप मेनू से एड अलर्ट चुनें.

सेटWebHookAlert पॉप-अप विंडो में. इस बिंदु पर, हम FMZ क्वांट ट्रेडिंग प्लेटफॉर्म पर निगरानी संकेत रोबोट चला सकते हैं पहले.img

निगरानी संकेत आदेश रोबोट

रणनीति स्रोत कोडः

// Global variable
var BUY = "buy"     // Note: The command used for spot
var SELL = "sell"   //      The command used for spot
var LONG = "long"   // The command used for future
var SHORT = "short" // The command used for future
var COVER_LONG = "cover_long"   // The command used for future
var COVER_SHORT = "cover_short" // The command used for future

function main() {
    // Clear the log and delete it if not needed
    LogReset(1)

    // Set precision
    exchange.SetPrecision(QuotePrecision, BasePrecision)

    // Identify future or spot
    var eType = 0
    var eName = exchange.GetName()
    var patt = /Futures_/
    if (patt.test(eName)) {
        Log("The added exchange is a futures exchange:", eName, "#FF0000")
        eType = 1
        if (Ct == "") {
            throw "Ct Contract set to null"
        } else {
            Log(exchange.SetContractType(Ct), "set contract:", Ct, "#FF0000")
        }
    } else {
        Log("The added exchange is a spots exchange:", eName, "#32CD32")
    }
    
    var lastMsg = ""
    var acc = _C(exchange.GetAccount)
    while(true) {
        var cmd = GetCommand()
        if (cmd) {
            // Detect interactive commands
            lastMsg = "command:" + cmd + "time:" + _D()
            var arr = cmd.split(":")
            if (arr.length != 2) {
                Log("cmd incorrect information:", cmd, "#FF0000")
                continue
            }

            var action = arr[0]
            var amount = parseFloat(arr[1])

            if (eType == 0) {
                if (action == BUY) {               
                    var buyInfo = IsMarketOrder ? exchange.Buy(-1, amount) : $.Buy(amount)
                    Log("buyInfo:", buyInfo)
                } else if (action == SELL) {        
                    var sellInfo = IsMarketOrder ? exchange.Sell(-1, amount) : $.Sell(amount)
                    Log("sellInfo:", sellInfo)
                } else {
                    Log("The spots exchange is not supported!", "#FF0000")
                }
            } else if (eType == 1) {
                var tradeInfo = null
                var ticker = _C(exchange.GetTicker)
                if (action == LONG) {
                    exchange.SetDirection("buy")
                    tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                } else if (action == SHORT) {        
                    exchange.SetDirection("sell")
                    tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                } else if (action == COVER_LONG) {        
                    exchange.SetDirection("closebuy")
                    tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                } else if (action == COVER_SHORT) {        
                    exchange.SetDirection("closesell")
                    tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                } else {
                    Log("The futures exchange is not supported!", "#FF0000")
                }
                if (tradeInfo) {
                    Log("tradeInfo:", tradeInfo)
                }
            } else {
                throw "eType error, eType:" + eType
            }
            acc = _C(exchange.GetAccount)
        }
        var tbl = {
            type : "table", 
            title : "status information", 
            cols : ["data"], 
            rows : []
        }
        // tbl.rows.push([JSON.stringify(acc)])   // Use it when testing
        LogStatus(_D(), eName, "Last received command:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
        Sleep(1000)
    }
}

रणनीति स्रोत कोड (https://www.fmz.com/strategy/203063)

रणनीति कोड बहुत सरल है. यह रिटर्न मूल्य का पता लगाता हैGetCommandजब एक इंटरैक्टिव संदेश रणनीति कार्यक्रम को भेजा जाता है, तोGetCommandfunction संदेश लौटाता है, और रणनीति कार्यक्रम संदेश सामग्री के अनुसार संबंधित लेनदेन ऑपरेशन करता है। इंटरैक्टिव फ़ंक्शन का परीक्षण करने के लिए इस रणनीति पर इंटरैक्टिव बटन सेट किया गया है। उदाहरण के लिए, इस रणनीति को चलाएं और रोबोट को कॉन्फ़िगर करेंWexApp, एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म का एक सिमुलेशन एक्सचेंज।

हम इंटरैक्टिव बटन पर क्लिक करें परीक्षण करने के लिए रोबोट के लिए आदेश प्राप्त करने के लिए आदेश प्राप्त करने के फ़ंक्शन, तो हम देख सकते हैं कि रोबोट द्वारा प्राप्त कमांड स्ट्रिंग हैःbuy:0.01.

हम केवल WebHook अनुरोध यूआरएल बनाने की जरूरत है जब ट्रेडिंगव्यू अलर्ट एक्सेस करने के लिए ट्रिगर किया जाता हैCommandRobotएफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म के विस्तारित एपीआई के इंटरफ़ेस, ले जाया पैरामीटर हैbuy:0.01.

ट्रेडिंग व्यू का वेबहूक सेट करें

ट्रेडिंग दृश्य में वापस, हम वेबहूक के यूआरएल भरें. पैरामीटर के लिए अपने स्वयं के एपीआई कुंजी भरेंaccess_key, secret_key.methodहम केवल पहुँचने की जरूरत हैCommandRobotविस्तारितएपीआई इंटरफ़ेस. पैरामीटरargsके रूप में है[Robot ID, Command String]. हम रोबोट आईडी प्राप्त कर सकते हैं रोबोट पृष्ठ के माध्यम से, सीधे के रूप में चित्र में दिखाया गया हैः

img

इस बार, हम सिग्नल ट्रिगर करते हैं, 0.02 सिक्के खरीदते हैं, और कमांड स्ट्रिंग हैःbuy:0.02. तब WebHook URL पूरा हो गया है. यह विधि केवल URL में संकेत लिखने का समर्थन करती है. यदि आप अलर्ट संदेश की सामग्री प्राप्त करना चाहते हैं जो टीवी रणनीति द्वारा ही भेजी जा सकती है, तो देखेंhttps://www.fmz.com/api#प्रत्यक्ष सत्यापन।

https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args= [191755,"buy:0.02"]

ट्रेडिंग व्यू पर सेट करेंः

img

संकेत के लिए ट्रिगर करने के लिए प्रतीक्षा करें... संकेत के लिए ट्रिगर करने के लिए प्रतीक्षा करें... संकेत के लिए ट्रिगर करने के लिए प्रतीक्षा करें... ...

img

फिर रोबोट सिग्नल प्राप्त करेगा, इस तरह, हम विभिन्न चार्ट कार्यों का उपयोग कर सकते हैं और ट्रेडिंग व्यू पर संकेतक एल्गोरिदम आप चाहते हैं स्वचालित व्यापार प्राप्त करने के लिए एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म के रणनीति रोबोट के साथ सहयोग करने के लिए।

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


संबंधित

अधिक