tradingview Signal trading robot error and how to fix it

Author: nihao153159, Created: 2021-01-02 07:06:59, Updated:

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). /*

// 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 = 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)
}

}


More

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"}