tradingview 신호 거래 로봇 오류 해결 방법

저자:니하오153159, 2021-01-02 07:06:59, 업데이트:

신입생이 트레이딩 뷰 신호를 사용하여 자동 거래를 하고자 하는 경우, 로봇을 배포한 후 Ct 계약이 빈으로 설정되는 오류가 발생합니다. 코드는 TradingViewWebHook의 신호 실행 전략을 복제합니다. /*

// 변수 // var IsMarketOrder = 거짓 // var QuotePrecision = 2 // var BasePrecision = 2

// 선물 변수 // var Ct =

// 글로벌 변수 var BUY = buy var SELL = var LONG = 길쭉한 오징어 var SHORT = short var COVER_LONG = 커버_롱 var COVER_SHORT = 커버_셔트 var SPK = spk var BPK =?? bpk??

function main (() { // 빈 로그, 필요 없는 경우 삭제할 수 있습니다 로그리셋 (LogReset))

// 设置精度
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)
}

}


더 많은

힙합의 대왕이 글은 이쪽에서 보시면 됩니다.

니하오153159신입사자, 교사를 요청하십시오. btcusdt 영구 계약을 설정하는 방법, 구체적으로 코드를 변경하는 방법

니하오153159현금 로봇은 완전히 b 스테이션 비디오로 설정되어 있고 작동하지 않습니다. 거래 지시가 수신된 후 buynull는 sellnull로 돌아옵니다.

초목자금 부족

니하오153159미래 로봇의 오류는 2021-01-02 23:40:08 정보 선물 거래소는 지원하지 않습니다! 2021-01-02 23:40:05 정보 선물 거래소는 지원하지 않습니다! 2021-01-02 23:38:23 정보 {"InstrumentID:"BTCUSDT","instrument":"BTCUSDT"} 설정 계약: swap 2021-01-02 23:38:23 정보 추가된 거래소는 선물 거래소: Futures_Binance 문제 없어졌어요 감사합니다

니하오153159날짜 플랫폼 유형 가격 수량 정보 2021-01-02 23:39:01 정보 sellInfo: null 2021-01-02 23:39:01 Binance 오류 Sell ((-1, 0.01): 400: {"코드":-2010, "msg:"Account has insufficient balance for requested action"} 2021-01-02 23:38:53 정보 buyInfo: null 2021-01-02 23:38:53 Binance 오류 구매 ((-1, 0.01): 400: {"코드":-2010, "msg:"Account has insufficient balance for requested action"}