রিসোর্স লোড হচ্ছে... লোডিং...

"ট্রেডিংভিউ" সতর্কতা সংকেত ট্রেডিং উপলব্ধি করতে FMZ Quant এ বর্ধিত API ব্যবহার করুন

লেখক:নিনাবাদাস, সৃষ্টিঃ ২০২২-০৩-৩০ 16:28:০৯, আপডেটঃ ২০২২-০৩-৩১ 17:32:25

ট্রেডিং ভিউ সতর্কতা সংকেত ট্রেডিং উপলব্ধি করতে এফএমজেডে এক্সটেন্ডেড এপিআই ব্যবহার করুন

বিলিবিলির ভিডিও লিঙ্ক

এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বর্ধিত এপিআই সম্প্রতি আপগ্রেড করা হয়েছে, এবং আপগ্রেডটি সরাসরি অ্যাক্সেস মোডকে সমর্থন করে, যাতে ট্রেডিংভিউ সতর্কতা সংকেতটি স্বয়ংক্রিয় ট্রেডিংয়ের জন্য এফএমজেডের বটগুলিতে সহজেই পাঠানো যেতে পারে। যদি আপনি জানেন না যে একটি বর্ধিত এপিআই কী, এখন আমাকে বিস্তারিতভাবে শুনুন।

এফএমজেড কোয়ান্ট প্ল্যাটফর্মের বর্ধিত এপিআই

FMZ API ডকুমেন্টেশনে সম্পর্কিত অংশের লিঙ্ক

সম্প্রসারিত এপিআই এর প্রধান ফাংশন হল এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের বিভিন্ন ফাংশনের জন্য ইন্টারফেস সরবরাহ করা, যেমন একযোগে ব্যাচ স্টার্ট বট, টাইমিং বট স্টার্ট এবং স্টপ, বট তথ্য বিশদ পড়া ইত্যাদি। আমরা ট্রেডিংভিউ সতর্কতা সংকেত ট্রেডিং বাস্তবায়নের জন্য এফএমজেড সম্প্রসারিত এপিআই ব্যবহার করি। এই চাহিদাটি কেবলমাত্রCommandRobot(RobotId, Cmd)এক্সটেন্ডেড এপিআইতে ইন্টারফেস। এই ইন্টারফেসটি নির্দিষ্ট আইডি সহ বটকে ইন্টারেক্টিভ কমান্ড পাঠাতে পারে এবং বট সংশ্লিষ্ট ক্রিয়াকলাপগুলি সম্পাদন করতে পারে (যেমন ক্রয় বা বিক্রয় অর্ডার দেওয়া ইত্যাদি)

বর্ধিত এপিআই ব্যবহার করার জন্য, আপনাকে প্রথমে আপনার নিজের অ্যাকাউন্ট তৈরি করতে হবেAPI KEYএফএমজেডেঃUse the extended API on FMZ Quant to realize “TradingView” alert signal trading


### Direct Access Mode of Extended API 

The direct access mode indicates directly writing ```API KEY``` in the Query of URL; for example, the URL accessing the extended API of FMZ Quant platform can be written as: 

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


Among them, ```https://www.fmz.com/api/v1``` is the interface address; ```?``` is followed by ```Query```; the parameter ```access_key``` is, for example, represented by xxx (when using, fill in the access_key of your own FMZ account); the parameter ```secret_key``` is represented by yyyy (when using, fill in your own account secret_key); the parameter ```method``` is the specific name of the extended API interface to be accessed, and ```args``` is the parameter of the ```method``` interface to be called.

We use TradingView as a signal source to send trading commands to the FMZ bots. In fact, we only use the ```CommandRobot``` interface.

### TradingView

First of all, you need to have a TradingView Pro account. The Basic level cannot use the WebHood function in the alert. We enter the Chart of TradingView.

![Use the extended API on FMZ Quant to realize "TradingView" alert signal trading](/upload/asset/269159723a8d53f907d86.png)  

Add an indicator to the chart, and other script algorithms can also be used. Here, for the convenience of demonstration, we use the most commonly used ```MACD``` indicator, and then set the K-line period to 1 minute (in order to make the signal trigger faster and facilitate the demonstration).

![Use the extended API on FMZ Quant to realize "TradingView" alert signal trading](/upload/asset/26980a2ff4858e1ed81e6.png) 

Right-click on the chart and select "Add Alert" from the pop-up menu.

 ![Use the extended API on FMZ Quant to realize "TradingView" alert signal trading](/upload/asset/2689e1efab8e133c43188.png) 

Set ```WebHook``` in the "Alert" pop-up window. At this point, you don't have to worry about setting it. Let's first run the bot that monitors the signals on FMZ Quant trading platform.

### Ordering Bot of Monitoring Signal 

Strategy source code:
```js
// 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এফএমজেড কোয়ান্ট ট্রেডিং প্ল্যাটফর্মের।

Use the extended API on FMZ Quant to realize “TradingView” alert signal trading

ক্রয় করার জন্য একটি কমান্ড পেতে বট ক্ষমতা পরীক্ষা করতে ইন্টারঅ্যাকশন বোতামে ক্লিক করুন।

Use the extended API on FMZ Quant to realize “TradingView” alert signal trading

আমরা দেখতে পাচ্ছি যে বট দ্বারা প্রাপ্ত কমান্ড স্ট্রিং হলঃbuy:0.01.

আমরা শুধুমাত্র বহন প্যারামিটার করা প্রয়োজনbuy:0.01অ্যাক্সেস করার সময়CommandRobotযখন ট্রেডিং ভিউ সতর্কতা ট্রিগার করা হয় তখন ওয়েবহুক অনুরোধ ইউআরএলে এফএমজেড কোয়ান্ট এক্সটেন্ডেড এপিআইয়ের ইন্টারফেস।

ট্রেডিং ভিউ এর ওয়েবহুক কনফিগারেশন

ট্রেডিংভিউ ফিরে, আমরা ওয়েবহুক এর URL পূরণ. আপনার নিজের পূরণAPI KEYমধ্যেaccess_keyএবংsecret_keyপ্যারামিটারmethodস্থির করা হয়, আমরা শুধুমাত্র বর্ধিত এপিআই অ্যাক্সেস করতে হবেCommandRobot;argsপ্যারামিটারটি হল[robot ID, command string], আমরা সরাসরি বট পৃষ্ঠার মাধ্যমে রোবট আইডি পেতে পারি, যেমন চিত্রটিতে দেখানো হয়েছেঃUse the extended API on FMZ Quant to realize “TradingView” alert signal trading

এইবার যখন আমরা সিগন্যালটি ট্রিগার করব, 0.02 মুদ্রা কিনব, এবং কমান্ড স্ট্রিং হবেঃ"buy:0.02". যে WebHook URL সম্পূর্ণ.

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

ট্রেডিংভিউতে সেট করুনঃ

Use the extended API on FMZ Quant to realize “TradingView” alert signal trading

সিগন্যালের জন্য অপেক্ষা করুন। যখন বট সিগন্যালটি পায়, আপনি পৃষ্ঠার উপরের ডানদিকে সিগন্যাল সতর্কতা দেখতে পাবেন, এবং পৃষ্ঠার নীচে ডানদিকে ট্রিগার লগগুলি দেখতে পাবেন।

বট সিগন্যালটি পেয়েছে:Use the extended API on FMZ Quant to realize “TradingView” alert signal trading

এই ভাবে, আপনি ট্রেডিং ভিউতে সমৃদ্ধ চার্ট ফাংশন এবং সূচক অ্যালগরিদম ব্যবহার করে আপনার পছন্দসই স্বয়ংক্রিয় ট্রেডিং উপলব্ধি করতে FMZ Quant এর কৌশল বটের সাথে সহযোগিতা করতে পারেন। ট্রেডিং ভিউতে কৌশলগুলি জাভাস্ক্রিপ্ট এবং পাইথনে প্রতিস্থাপনের তুলনায় অসুবিধা হ্রাস পেয়েছে।

অর্ডারিং বট অফ মনিটরিং সিগন্যাল এর কৌশল কোডটি কেবল গবেষণা এবং গবেষণার জন্য। এটি বাস্তব বটগুলির ব্যবহারের জন্য অনুকূলিতকরণ এবং সামঞ্জস্য করা দরকার। এটি ফিউচারগুলিও সমর্থন করে। আমরা এটিকে মার্কেট অর্ডার মোডে সেট করার পরামর্শ দিই। বিস্তারিত জানার জন্য, দয়া করে কৌশল কোড পরামিতিগুলি দেখুন। যদি আপনার কোন প্রশ্ন বা পরামর্শ থাকে, দয়া করে একটি বার্তা ছেড়ে দিন।


আরও দেখুন