Newcomers want to use the trading view signal to automatically trade bitcoin or btc permanent contract, after deploying the robot, the error Ct contract is set to empty. The code is a copy of the TradingViewWebHook signal execution strategy (instruction). /*
Interactive command string format action:amount action: buy, sell, long, short, cover_long, cover_short, spk, bpk
Type of exchange eType variable to be valued: 0 spot, 1 futures
Link to the TV documentaryhttps://www.tradingview.com/pine-script-docs/en/v4/Quickstart_guide.html https://cn.tradingview.com/chart/8xfTuX7F/
TV webhook to send requestshttps://www.fmz.cn/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,“action:amount”]
Reference libraries Citation of the digital currency trading library */
// The parameter // var isMarketOrder = false // var QuotePrecision is equal to 2 // var BasePrecision is equal to 2
// The futures parameter // var Ct is equal to
// global variable
var BUY = buy and sell
var SELL = Sell the shell
var LONG = long-eared owl
var SHORT = shortened
var COVER_LONG = cover_long of the shell
var COVER_SHORT = cover_short is used
var SPK is the
var BPK =
function main (()) { // Clear logs, if not needed, can be deleted LogReset ((1)) is a
// 设置精度
exchange.SetPrecision(QuotePrecision, BasePrecision)
// 识别期货还是现货
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("添加的交易所为期货交易所:", eName, "#FF0000")
eType = 1
if (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 = 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 if (action == SPK) { // 卖出平多仓,卖出开空仓
exchange.SetDirection("closebuy")
var tradeInfo1 = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
exchange.SetDirection("sell")
var tradeInfo2 = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
tradeInfo = [tradeInfo1, tradeInfo2]
} else if (action == BPK) { // 买入平空仓,买入开多仓
exchange.SetDirection("closesell")
var tradeInfo1 = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
exchange.SetDirection("buy")
var tradeInfo2 = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
tradeInfo = [tradeInfo1, tradeInfo2]
} 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)
}
}
The King of Hip HopThere is no misinformation, how do you see it?
nihao153159How to set up btcusdt permanent contract, specifically which line of code to change
nihao153159Buynull returns sellnull after receiving the transaction instruction.
The grassInsufficient funds in account
nihao153159The future robot's mistake is 2021-01-02 23:40:08 Info Futures exchanges are not supported! 2021-01-02 23:40:05 Information Futures exchanges are not supported! 2021-01-02 23:38:23 Info {"InstrumentID:"BTCUSDT","instrument:"BTCUSDT"} Setting up the contract: swap 2021-01-02 23:38:23 Info Added exchange for futures exchange: Futures_Binance Thank you very much.
nihao153159Date Platform type price quantity information 2021-01-02 23:39:01 information sellInfo: null This is a list of all the different ways SellInfo is credited in the database. 2021-01-02 23:39:01 Binance Error Sell ((-1, 0.01): 400: {"code":-2010, "msg:"Account has insufficient balance for requested action"} 2021-01-02 23:38:53 information buyInfo: null This is a list of all the different ways BuyInfo is credited in the database. 2021-01-02 23:38:53 Binance Error Buy ((-1, 0.01): 400: {"code":-2010, "msg:"Account has insufficient balance for requested action"}