您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何使用發明者量化交易平臺擴展API實現TradingView報警信號交易,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
發明者API文檔相關部分鏈接
擴展API的主要作用是給程序化操作發明者量化交易平臺上的各種功能提供接口,例如同時批量啟動機器人,定時機器人啟動、停止,讀取機器人信息詳情等。我們使用發明者量化交易平臺擴展API實現TradingView報警信號交易這個需求計劃只用擴展API中的CommandRobot(RobotId, Cmd)
接口即可,這個接口可以給指定ID的機器人發送交互指令,機器人接收到指令即可執行對應操作(例如下單買入、賣出等)。
要使用擴展API,首先需要創建自己的發明者賬號的API KEY
:
API KEY
秘鑰由access key
和secret key
組成,API KEY
即程序化操作發明者量化交易平臺的鑰匙,所以一定要妥善保管,切勿泄露。
直接訪問模式是指把API KEY
直接寫在URL的Query中,例如訪問發明者量化交易平臺擴展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_key
秘鑰用yyyy表示(使用時具體填寫自己的賬號secret_key),參數method
是要訪問的擴展API接口具體名稱,args
為要調用的method
接口的參數。
我們使用TradingView作為信號源,向發明者量化交易平臺機器人發送交易命令,其實就只用CommandRobot
這個接口。
首先你要有個TradingView Pro級別的賬戶,Basic級別是無法使用報警中的WebHood功能的。我們進入TradingView的圖表。
向圖表添加一個指標,也可以是其它的腳本算法。這里為了方便演示我們使用最常用的MACD
指標,然后設置K線周期為1分鐘(為了讓信號更快的觸發,方便演示)。
在圖表上點擊右鍵,彈出菜單中選擇「添加警報」。
在「警報」彈窗中設置WebHook
,到了這一步可以先不用著急設置,我們先把發明者量化交易平臺這邊的監控信號的機器人運行起來。
策略源碼:
// 全局變量var BUY = "buy"var SELL = "sell"var LONG = "long"var SHORT = "short"var COVER_LONG = "cover_long"var COVER_SHORT = "cover_short"function main() {// 清空日志,如不需要,可以刪除LogReset(1) // 設置精度exchange.SetPrecision(QuotePrecision, BasePrecision)// 識別期貨還是現貨var eType = 0var eName = exchange.GetName()var patt = /Futures_/if (patt.test(eName)) {Log("添加的交易所為期貨交易所:", eName, "#FF0000")eType = 1if (Ct == "") {throw "Ct 合約設置為空"} else { Log(exchange.SetContractType(Ct), "設置合約:", Ct, "#FF0000") } } else { Log("添加的交易所為現貨交易所:", eName, "#32CD32") } var lastMsg = ""var acc = _C(exchange.GetAccount)while(true) {var cmd = GetCommand()if (cmd) {// 檢測交互命令lastMsg = "命令:" + cmd + "時間:" + _D()var arr = cmd.split(":")if (arr.length != 2) {Log("cmd信息有誤:", 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("現貨交易所不支持!", "#FF0000") } } else if (eType == 1) { var tradeInfo = nullvar 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("期貨交易所不支持!", "#FF0000") }if (tradeInfo) {Log("tradeInfo:", tradeInfo) } } else { throw "eType error, eType:" + eType}acc = _C(exchange.GetAccount) }var tbl = { type : "table", title : "狀態信息", cols : ["數據"], rows : [] }tbl.rows.push([JSON.stringify(acc)])LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`") Sleep(1000) } }
策略源碼
策略代碼十分簡單,檢測GetCommand
函數的返回值,當有交互消息發送給策略程序時,GetCommand
函數會返回這個消息,然后策略程序根據消息內容作出對應的交易操作。該策略上已經設置了交互按鈕,可以測試交互功能,例如運行起來這個策略,給機器人配置發明者量化交易平臺的模擬交易所WexApp
。
點擊一下交互按鈕,測試一下機器人接收到命令買入的功能。
可以看到機器人接收到的命令字符串為:buy:0.01
。
我們只需讓TradingView警報觸發時,WebHook請求URL中訪問發明者量化交易平臺擴展API的CommandRobot
接口時,攜帶的參數為buy:0.01
即可。
回到TradingView中,我們填寫WebHook的URL。給access_key
、secret_key
參數填寫上自己的API KEY
。method
固定的,我們要訪問的就只是CommandRobot
這個擴展API接口,args
參數為[機器人ID,命令字符串]
的形式,機器人ID我們可以通過機器人頁面直接獲取,如圖:
這次我們讓信號觸發時,買入0.02個幣,命令字符串就為:"buy:0.02"
。這樣WebHook URL就完成了。
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755,"buy:0.02"]
在TradingView上設置:
等待信號觸發...
等待信號觸發..
等待信號觸發.
...
機器人接收到了信號:
這樣就可以使用TradingView上的豐富的圖表功能、指標算法配合發明者量化交易平臺的策略機器人,實現自己想要的自動化交易,相對于把TradingView上的策略移植成JavaScript、Python語言難度直線下降。
上述就是小編為大家分享的如何使用發明者量化交易平臺擴展API實現TradingView報警信號交易了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。