FMZ 퀀트 트레이딩 플랫폼의 확장 API는 최근에 업그레이드되었으며, 업그레이드는 직접 액세스 모드를 지원하므로 자동 거래를 위해 TradingView 경고 신호를 FMZ의 봇에 쉽게 보낼 수 있습니다. 확장 API가 무엇인지 모르는 경우, 이제 자세히 들어보십시오.
확장 API의 주요 기능은 FMZ 퀀트 거래 플랫폼의 다양한 기능에 대한 인터페이스를 제공하는 것입니다. 즉, 팩을 동시에 시작하는 봇, 봇 시작 및 정지 시점, 봇 정보 세부 정보를 읽는 등과 같은 프로그래밍 작업. 우리는 TradingView 경고 신호 거래를 구현하기 위해 FMZ 확장 API를 사용합니다.CommandRobot(RobotId, Cmd)
확장된 API에서 인터페이스. 이 인터페이스는 지정된 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 퀀트 거래 플랫폼의
상호 작용 버튼을 클릭하여 bot의 구매 명령을 받을 수 있는 능력을 테스트합니다.
보트에서 받은 명령 문자열은 다음과 같습니다.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를 얻을 수 있습니다.
신호가 발동되면 0.02 동전을 구매하고 명령 문자열은"buy:0.02"
웹
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[443999,"buy:0.02"]
트레이딩 뷰로 설정:
신호가 발사될 때까지 기다려 로봇이 신호를 수신하면 페이지 오른쪽 상단에 신호 알림을 볼 수 있고 페이지 오른쪽 하단에 트리거 로그를 볼 수 있습니다.
로봇이 신호를 수신했습니다.
이 방법으로, 당신은 풍부한 차트 기능과 TradingView의 지표 알고리즘을 사용하여 원하는 자동 거래를 실현하기 위해 FMZ Quant의 전략 봇과 협력 할 수 있습니다.
시그널 모니터링의 주문 봇의 전략 코드는 연구 및 연구에만 사용됩니다. 실제 봇의 사용에 최적화 및 조정되어야합니다. 또한 선물을 지원합니다. 시장 주문 모드로 설정하는 것이 좋습니다. 자세한 내용은 전략 코드 매개 변수를 참조하십시오. 질문이나 제안이 있으시면 메시지를 남겨주세요.