"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では:img

API KEY構成されるaccess keyそしてsecret key; API KEYFMZ Quant トレーディングプラットフォームをプログラム的に操作する鍵です.API KEY例えば,上の図は,ただ,この設定の設定だけを示します.API KEYアクセスする許可CommandRobot(RobotId, Cmd)この例では,セキュリティ上の理由から,アクセス許可をCommandRobot(RobotId, Cmd)FMZへのインターフェースが拡張API KEY.

拡張APIの直接アクセスモード

直接アクセスモードは,直接書き表示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アクセスする拡張 API インターフェイスの特定名,およびargsは,このパラメータです.methodインターフェースを呼び出します.

FMZボットに取引コマンドを送信する信号源として使用します. 実際には,我々はただCommandRobot interface.

トレーディングView

まず,TradingView Pro アカウントが必要です. Basic レベルでは WebHood 機能をアラートで使用できません. TradingView のチャートに入ります.

img

このグラフにインディケーターを追加すると,他のスクリプトアルゴリズムも使用できます. ここで,実証の便利のために,最も一般的に使用されるMACDインジケーターを押して,K線期間を1分に設定します (信号の起動速度を速くし,実証を容易にするため)

img

右クリックして,ポップアップメニューから"警告追加"を選択します.

img

セットWebHookこの時点で,設定を心配する必要はありません. まず FMZ Quant 取引プラットフォームのシグナルを監視するボットを実行しましょう.

監視信号の注文ボット

戦略のソースコード:

// 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の取引プラットフォームです

img

ボットが購入命令を受信する能力をテストするために,インタラクションボタンをクリックします.

img

ボットが受信するコマンド文字列は: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を取得できますimg

コマンド文字列は:"buy:0.02"WebHookのURLを完了しました.

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

トレーディングビューで設定:

img

信号が発信されるのを待って ボットが信号を受け取ると ページ右上部に信号アラートと ページ右下部にトリガーログが表示されます

ロボットが信号を受け取ったimg

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

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


もっと