FMZ Quant トレーディングプラットフォームの拡張 API は最近アップグレードされ,直接アクセスモードをサポートし,自動取引のために TradingView 警告信号を簡単に FMZ のボットに送ることができます.拡張 API が何であるか知らない場合は,今,詳細に聞いてください.
拡張APIの主な機能は,FMZ Quant取引プラットフォームのさまざまな機能のためのインターフェースを提供することであり,バッチを同時に起動するボット,ボットの開始と停止をタイミングする,ボットの情報詳細を読み取るなど,プログラム操作のためのものです.我々はFMZ拡張APIを使用して,TradingView警告信号取引を実装します.この需要は,ボットの動作を制御するツールを使用する必要があります.CommandRobot(RobotId, Cmd)
このインターフェースは,指定されたIDでボットにインタラクティブなコマンドを送信し,ボットが対応する操作 (購入または販売の注文など) を実行することができます.
拡張APIを使用するには,まず自分のアカウントを作成する必要がありますAPI KEY
FMZでは:
### 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
FMZ Quantの取引プラットフォームです
ボットが購入命令を受信する能力をテストするために,インタラクションボタンをクリックします.
ボットが受信するコマンド文字列は:buy:0.01
.
運ばれたパラメータがbuy:0.01
アクセスする際にCommandRobot
FMZ Quant の拡張 API のインターフェースを WebHook リクエスト URL で,TradingView アラートが起動したとき.
WebHook の URL を記入します.API KEY
についてaccess_key
そしてsecret_key
パラメータmethod
拡張 API にアクセスするだけですCommandRobot
についてargs
パラメータは,[robot ID, command string]
図のようにボットページから直接ロボットIDを取得できます
コマンド文字列は:"buy:0.02"
WebHookのURLを完了しました.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[443999,"buy:0.02"]
トレーディングビューで設定:
信号が発信されるのを待って ボットが信号を受け取ると ページ右上部に信号アラートと ページ右下部にトリガーログが表示されます
ロボットが信号を受け取った
この方法で,TradingViewの豊かなチャート機能と指標アルゴリズムを使用して,FMZ Quantの戦略ボットと協力して,あなたが望む自動化された取引を実現することができます.