溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

發(fā)布時(shí)間:2021-12-18 13:41:10 來(lái)源:億速云 閱讀:263 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

發(fā)明者API文檔相關(guān)部分鏈接

擴(kuò)展API的主要作用是給程序化操作發(fā)明者量化交易平臺(tái)上的各種功能提供接口,例如同時(shí)批量啟動(dòng)機(jī)器人,定時(shí)機(jī)器人啟動(dòng)、停止,讀取機(jī)器人信息詳情等。我們使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易這個(gè)需求計(jì)劃只用擴(kuò)展API中的CommandRobot(RobotId, Cmd)接口即可,這個(gè)接口可以給指定ID的機(jī)器人發(fā)送交互指令,機(jī)器人接收到指令即可執(zhí)行對(duì)應(yīng)操作(例如下單買(mǎi)入、賣(mài)出等)。

要使用擴(kuò)展API,首先需要?jiǎng)?chuàng)建自己的發(fā)明者賬號(hào)的API KEY:
如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

API KEY秘鑰由access keysecret key組成,API KEY即程序化操作發(fā)明者量化交易平臺(tái)的鑰匙,所以一定要妥善保管,切勿泄露。

擴(kuò)展API的直接訪問(wèn)模式

直接訪問(wèn)模式是指把API KEY直接寫(xiě)在URL的Query中,例如訪問(wèn)發(fā)明者量化交易平臺(tái)擴(kuò)展API的URL可以寫(xiě)成:

https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]

其中,https://www.fmz.com/api/v1是接口地址,?之后是Query,參數(shù)access_key秘鑰舉例用xxx表示(使用時(shí)填寫(xiě)自己的FMZ賬號(hào)的access_key),參數(shù)secret_key秘鑰用yyyy表示(使用時(shí)具體填寫(xiě)自己的賬號(hào)secret_key),參數(shù)method是要訪問(wèn)的擴(kuò)展API接口具體名稱,args為要調(diào)用的method接口的參數(shù)。

我們使用TradingView作為信號(hào)源,向發(fā)明者量化交易平臺(tái)機(jī)器人發(fā)送交易命令,其實(shí)就只用CommandRobot這個(gè)接口。

TradingView

首先你要有個(gè)TradingView Pro級(jí)別的賬戶,Basic級(jí)別是無(wú)法使用報(bào)警中的WebHood功能的。我們進(jìn)入TradingView的圖表。

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

向圖表添加一個(gè)指標(biāo),也可以是其它的腳本算法。這里為了方便演示我們使用最常用的MACD指標(biāo),然后設(shè)置K線周期為1分鐘(為了讓信號(hào)更快的觸發(fā),方便演示)。

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

在圖表上點(diǎn)擊右鍵,彈出菜單中選擇「添加警報(bào)」。

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

在「警報(bào)」彈窗中設(shè)置WebHook,到了這一步可以先不用著急設(shè)置,我們先把發(fā)明者量化交易平臺(tái)這邊的監(jiān)控信號(hào)的機(jī)器人運(yùn)行起來(lái)。

監(jiān)控信號(hào)下單機(jī)器人

策略源碼:

// 全局變量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)	// 設(shè)置精度exchange.SetPrecision(QuotePrecision, BasePrecision)// 識(shí)別期貨還是現(xiàn)貨var eType = 0var eName = exchange.GetName()var patt = /Futures_/if (patt.test(eName)) {Log("添加的交易所為期貨交易所:", eName, "#FF0000")eType = 1if (Ct == "") {throw "Ct 合約設(shè)置為空"} else {        	Log(exchange.SetContractType(Ct), "設(shè)置合約:", Ct, "#FF0000")
        }
    } else {    	Log("添加的交易所為現(xiàn)貨交易所:", eName, "#32CD32")
    }    var lastMsg = ""var acc = _C(exchange.GetAccount)while(true) {var cmd = GetCommand()if (cmd) {// 檢測(cè)交互命令lastMsg = "命令:" + cmd + "時(shí)間:" + _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("現(xiàn)貨交易所不支持!", "#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 : "狀態(tài)信息", 
        	cols : ["數(shù)據(jù)"], 
        	rows : []
        }tbl.rows.push([JSON.stringify(acc)])LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")    	Sleep(1000)
    }
}

策略源碼

策略代碼十分簡(jiǎn)單,檢測(cè)GetCommand函數(shù)的返回值,當(dāng)有交互消息發(fā)送給策略程序時(shí),GetCommand函數(shù)會(huì)返回這個(gè)消息,然后策略程序根據(jù)消息內(nèi)容作出對(duì)應(yīng)的交易操作。該策略上已經(jīng)設(shè)置了交互按鈕,可以測(cè)試交互功能,例如運(yùn)行起來(lái)這個(gè)策略,給機(jī)器人配置發(fā)明者量化交易平臺(tái)的模擬交易所WexApp。

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

點(diǎn)擊一下交互按鈕,測(cè)試一下機(jī)器人接收到命令買(mǎi)入的功能。

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

可以看到機(jī)器人接收到的命令字符串為:buy:0.01。

我們只需讓TradingView警報(bào)觸發(fā)時(shí),WebHook請(qǐng)求URL中訪問(wèn)發(fā)明者量化交易平臺(tái)擴(kuò)展API的CommandRobot接口時(shí),攜帶的參數(shù)為buy:0.01即可。

設(shè)置TradingView的WebHook

回到TradingView中,我們填寫(xiě)WebHook的URL。給access_key、secret_key參數(shù)填寫(xiě)上自己的API KEY。method固定的,我們要訪問(wèn)的就只是CommandRobot這個(gè)擴(kuò)展API接口,args參數(shù)為[機(jī)器人ID,命令字符串]的形式,機(jī)器人ID我們可以通過(guò)機(jī)器人頁(yè)面直接獲取,如圖:
如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易
這次我們讓信號(hào)觸發(fā)時(shí),買(mǎi)入0.02個(gè)幣,命令字符串就為:"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上設(shè)置:

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

等待信號(hào)觸發(fā)...
等待信號(hào)觸發(fā)..
等待信號(hào)觸發(fā).
...

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

機(jī)器人接收到了信號(hào):

如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易

這樣就可以使用TradingView上的豐富的圖表功能、指標(biāo)算法配合發(fā)明者量化交易平臺(tái)的策略機(jī)器人,實(shí)現(xiàn)自己想要的自動(dòng)化交易,相對(duì)于把TradingView上的策略移植成JavaScript、Python語(yǔ)言難度直線下降。

上述就是小編為大家分享的如何使用發(fā)明者量化交易平臺(tái)擴(kuò)展API實(shí)現(xiàn)TradingView報(bào)警信號(hào)交易了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI