리소스 로딩... 로딩...

"TradingView" 경고 신호 거래를 실현하기 위해 FMZ Quant에 확장 API를 사용

저자:니나바다스, 창작: 2022-03-30 16:28:09, 업데이트: 2022-03-31 17:32:25

FMZ에서 확장 API를 사용하여 TradingView 경고 신호 거래를 실현하십시오.

빌리빌리에서 동영상 링크

FMZ 퀀트 트레이딩 플랫폼의 확장 API는 최근에 업그레이드되었으며, 업그레이드는 직접 액세스 모드를 지원하므로 자동 거래를 위해 TradingView 경고 신호를 FMZ의 봇에 쉽게 보낼 수 있습니다. 확장 API가 무엇인지 모르는 경우, 이제 자세히 들어보십시오.

FMZ 퀀트 플랫폼의 확장 API

FMZ API 문서의 관련 부분의 링크

확장 API의 주요 기능은 FMZ 퀀트 거래 플랫폼의 다양한 기능에 대한 인터페이스를 제공하는 것입니다. 즉, 팩을 동시에 시작하는 봇, 봇 시작 및 정지 시점, 봇 정보 세부 정보를 읽는 등과 같은 프로그래밍 작업. 우리는 TradingView 경고 신호 거래를 구현하기 위해 FMZ 확장 API를 사용합니다.CommandRobot(RobotId, Cmd)확장된 API에서 인터페이스. 이 인터페이스는 지정된 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 퀀트 거래 플랫폼의

Use the extended API on FMZ Quant to realize “TradingView” alert signal trading

상호 작용 버튼을 클릭하여 bot의 구매 명령을 받을 수 있는 능력을 테스트합니다.

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 KEYaccess_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

신호가 발동되면 0.02 동전을 구매하고 명령 문자열은"buy:0.02"의 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의 전략 봇과 협력 할 수 있습니다.

시그널 모니터링의 주문 봇의 전략 코드는 연구 및 연구에만 사용됩니다. 실제 봇의 사용에 최적화 및 조정되어야합니다. 또한 선물을 지원합니다. 시장 주문 모드로 설정하는 것이 좋습니다. 자세한 내용은 전략 코드 매개 변수를 참조하십시오. 질문이나 제안이 있으시면 메시지를 남겨주세요.


더 많은 내용