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

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

लेखक:निनाबादास, बनाया गयाः 2022-03-30 16:28:09, अद्यतन किया गयाः 2022-03-31 17:32:25

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

बिलीबिली पर वीडियो लिंक

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

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

एफएमजेड एपीआई प्रलेखन में संबंधित भाग का लिंक

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

विस्तारित एपीआई का उपयोग करने के लिए, आपको पहले अपना खाता बनाना होगाAPI KEYएफएमजेड परःimg

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

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

प्रत्यक्ष पहुँच मोड सीधे लिखने का संकेत देता हैAPI KEYURL की क्वेरी में; उदाहरण के लिए FMZ Quant प्लेटफॉर्म के विस्तारित API तक पहुँचने वाला URL इस प्रकार लिखा जा सकता हैः

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.

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

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

img

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

img

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

img

सेटWebHookइस बिंदु पर, आप इसे स्थापित करने के बारे में चिंता करने की जरूरत नहीं है. चलो पहले एफएमजेड क्वांट ट्रेडिंग प्लेटफॉर्म पर संकेतों की निगरानी करने वाले बॉट को चलाते हैं.

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

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

// global variable 
var BUY = "buy"     // Note: the command used for spot
var SELL = "sell"   //       the command used for futures 
var LONG = "long"   //       the command used for futures
var SHORT = "short" //       the command used for futures
var COVER_LONG = "cover_long"   // the command used for futures
var COVER_SHORT = "cover_short" // the command used for futures

function main() {
    // Empty the logs; delete, if not needed 
    LogReset(1)

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

    // Judge whether it is spot or futures 
    var eType = 0
    var eName = exchange.GetName()
    var patt = /Futures_/
    if (patt.test(eName)) {
        Log("The added platform is a futures platform:", 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 platform is a spot platform:", eName, "#32CD32")
    }
    
    var lastMsg = ""
    var acc = _C(exchange.GetAccount)
    while(true) {
        var cmd = GetCommand()
        if (cmd) {
            // Detect the interactive command 
            lastMsg = "Command:" + cmd + "Time:" + _D()
            var arr = cmd.split(":")
            if (arr.length != 2) {
                Log("Wrong cmd 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("Spot trading platforms are 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("Futures trading platforms are 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)])   // Used during testing 
        LogStatus(_D(), eName, "The command received last time:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
        Sleep(1000)
    }
}

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

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

img

खरीदने के लिए आदेश प्राप्त करने के लिए बॉट क्षमता का परीक्षण करने के लिए बातचीत बटन पर क्लिक करें.

img

हम देख सकते हैं कि बॉट द्वारा प्राप्त कमांड स्ट्रिंग हैःbuy:0.01.

हम केवल ले जाया पैरामीटर होना करने की जरूरत हैbuy:0.01प्रवेश के दौरानCommandRobotFMZ Quant विस्तारित एपीआई के इंटरफेस WebHook अनुरोध URL में, जब TradingView अलर्ट ट्रिगर किया जाता है।

ट्रेडिंग व्यू का वेबहूक कॉन्फ़िगरेशन

ट्रेडिंग व्यू पर वापस, हम वेबहूक के यूआरएल भरें. अपने स्वयं के भरेंAPI KEYमेंaccess_keyऔरsecret_keyपैरामीटर के लिएmethodतय है, हम केवल विस्तारित एपीआई का उपयोग करने की जरूरत हैCommandRobot;argsपैरामीटर के रूप में है[robot ID, command string], हम सीधे बॉट पृष्ठ के माध्यम से रोबोट आईडी प्राप्त कर सकते हैं, जैसा कि चित्र में दिखाया गया हैःimg

इस बार जब हम संकेत ट्रिगर, 0.02 सिक्का खरीदते हैं, और कमांड स्ट्रिंग हैः"buy:0.02". यह वेबहूक URL को पूरा करता है.

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

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

img

संकेत के ट्रिगर होने की प्रतीक्षा करें। जब बॉट सिग्नल प्राप्त करता है, तो आप पृष्ठ के ऊपरी दाईं ओर सिग्नल अलर्ट और पृष्ठ के निचले दाईं ओर ट्रिगर लॉग देख सकते हैं।

बॉट ने संकेत प्राप्त किया:img

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

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


अधिक