FMZ Quant トレーディング プラットフォームの拡張 API を使用して,TradingView 警告信号取引を実現します.

作者: リン・ハーンリディア, 作成日:2022-12-14 13:42:41, 更新日:2023-09-20 10:17:53

img

FMZ Quant トレーディング プラットフォームの拡張 API を使用して,TradingView 警告信号取引を実現します.

FMZ Quant Trading Platformの拡張APIは,直接アクセスをサポートするために最近アップグレードされました. これにより,自動取引のためにFMZ Quant Trading PlatformロボットにTradingView警告信号を簡単に送信できます.拡張APIが何であるか知らない場合は,注意して聞いてください.

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

FMZのAPIドキュメントへのリンク (https://www.fmz.com/api)

拡張APIの主な機能は,プログラム操作のためのFMZ量子取引プラットフォームのさまざまな機能のためのインターフェースを提供することです. 例えば,ロボットを同時でバッチで起動し,ロボットが起動し停止するタイミング,ロボット情報詳細を読み取ることなど.CommandRobot(RobotId, Cmd)このインターフェースは,指定されたIDでロボットにインタラクティブな指示を送信し,ロボットが指示を受けた後に対応する操作 (購入,販売の注文など) を実行することができます. 拡張APIを使用するには,API KEYまず,自分のFMZ口座について:

img

秘密の鍵API KEY構成されるaccess keyそしてsecret key. API KEYプログラム操作のFMZ量子取引プラットフォームを定量化するための鍵であるため,適切に保管され,開示されることはありません.API KEYFMZでは,許可を指定できます.例えば,上の図は,API KEYアクセスする許可CommandRobot(RobotId, Cmd)この例では,セキュリティ上の考慮に基づいて, 拡張されたAPI KEYFMZへのアクセス許可についてCommandRobot(RobotId, Cmd) interface.

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

直接アクセスモードは,API KEYURL Query に直接書き込まれる.例えば,FMZ Quant Trading Platform の拡張 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 レベルのアカウントが必要です. WebHood 機能は Basic レベルでは使用できません.

グラフまたは他のスクリプトアルゴリズムにインディケーターを追加することができます. ここで,私たちは最も一般的に使用されるMACDK線周期を1分に設定します (より速い信号発信と簡単な実証のため)

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

セットWebHookこの時点で,我々は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戦略プログラムにインタラクティブなメッセージを送信すると,GetCommandインタラクティブなボタンはこの戦略に設定されています. たとえば,この戦略を実行し,ロボットを設定します.WexAppFMZ量子取引プラットフォームのシミュレーション取引所です

ロボットに受信されるコマンド文字列は:buy:0.01.

WebHook 要求の URL は TradingView 警告が起動したときに WebHook 要求の URL を作成する必要がありますCommandRobotFMZ 量子取引プラットフォームの拡張APIのインターフェースで,運ばれるパラメータはbuy:0.01.

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

パラメータのためのあなたの独自のAPI KEYを入力してください.access_key, secret_key.....method固定されています.我々は,単にアクセスする必要がありますCommandRobotextendedAPIインターフェース パラメータargsその形は[Robot ID, Command String]ロボットIDを ロボットページから直接取得できます.

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

ロボットはシグナルを受け取り,TradingViewの様々なチャート機能と指標アルゴリズムを使用して,FMZ Quant Trading Platformの戦略ロボットと協力して,望む自動取引を達成できます.

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


関連性

もっと