資源の読み込みに... 荷物...

"TradingView"警告信号取引を実現するために,FMZ Quantの拡張APIを使用

作者: リン・ハーンニナバダス, 作成日:2022-03-30 16:28:09, 更新日:2022-03-31 17:32:25

TradingViewアラートシグナル取引を実現するためにFMZ上の拡張APIを使用

ビリビリの動画リンク

FMZ Quant トレーディングプラットフォームの拡張 API は最近アップグレードされ,直接アクセスモードをサポートし,自動取引のために TradingView 警告信号を簡単に FMZ のボットに送ることができます.拡張 API が何であるか知らない場合は,今,詳細に聞いてください.

FMZ量子プラットフォームの拡張API

FMZ API ドキュメンテーションの関連部分へのリンク

拡張APIの主な機能は,FMZ Quant取引プラットフォームのさまざまな機能のためのインターフェースを提供することであり,バッチを同時に起動するボット,ボットの開始と停止をタイミングする,ボットの情報詳細を読み取るなど,プログラム操作のためのものです.我々はFMZ拡張APIを使用して,TradingView警告信号取引を実装します.この需要は,ボットの動作を制御するツールを使用する必要があります.CommandRobot(RobotId, Cmd)このインターフェースは,指定されたIDでボットにインタラクティブなコマンドを送信し,ボットが対応する操作 (購入または販売の注文など) を実行することができます.

拡張APIを使用するには,まず自分のアカウントを作成する必要がありますAPI KEYFMZでは: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このメッセージが返信され,その後戦略プログラムはメッセージの内容に基づいて対応する取引操作を行う. インタラクションボタンが戦略に設定されており,インタラクティブな機能をテストすることができます. 例えば,戦略が操作されると,ボットはシミュレーションプラットフォームで構成されます.WexAppFMZ Quantの取引プラットフォームです

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アクセスする際にCommandRobotFMZ Quant の拡張 API のインターフェースを WebHook リクエスト URL で,TradingView アラートが起動したとき.

WebHook トレーディングビューの設定

WebHook の URL を記入します.API KEYについてaccess_keyそしてsecret_keyパラメータmethod拡張 API にアクセスするだけですCommandRobotについてargsパラメータは,[robot ID, command string]図のようにボットページから直接ロボットIDを取得できますUse the extended API on FMZ Quant to realize “TradingView” alert signal trading

コマンド文字列は:"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

この方法で,TradingViewの豊かなチャート機能と指標アルゴリズムを使用して,FMZ Quantの戦略ボットと協力して,あなたが望む自動化された取引を実現することができます.

監視シグナルの注文ボットの戦略コードは,研究および研究のみです.実際のボットの使用のために最適化および調整する必要があります.また,フューチャーもサポートします.市場注文モードに設定することをお勧めします.詳細については,戦略コードパラメータを参照してください. 質問や提案があれば メッセージを残してください


もっと見る