tradingview Robot Perdagangan Isyarat Kesilapan dan Cara Mengatasinya

Penulis:Nihao153159, Dicipta: 2021-01-02 07:06:59, Dikemas kini:

Seorang pemula ingin menggunakan isyarat trading view untuk berdagang secara automatik dengan kontrak kekal bitcoin atau btc, muncul kesalahan kontrak Ct yang ditetapkan sebagai kosong selepas pengendalian bot. Kod ini adalah tiruan Strategi Pelaksanaan Isyarat TradingViewWebHook /*

// Parameter // var IsMarketOrder = palsu // var QuotePrecision = 2 // var BasePrecision = 2

// Parameter niaga hadapan // var Ct = h

Variabel global var BUY = penukar var SELL = penyampaian var LONG = ikan long var SHORT = kurungkurung kurung var COVER_LONG = penutup panjang var COVER_SHORT = penutup_pendek penutup var SPK = spk var BPK = bpk

fungsi utama (() { // Hapus log, jika tidak diperlukan, boleh dipadamkan LogReset ((1))

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

}


Lebih lanjut

Raja Hip-HopTidak ada maklumat yang salah, bagaimana untuk melihat.

Nihao153159Permulaan Meminta Pengajaran Bagaimana untuk menyediakan kontrak kekal btcusdt, dan dengan tepat mengubah baris kod

Nihao153159Robot tunai yang sepenuhnya diset pada video stesen b juga tidak berfungsi, buynull kembali sellnull selepas menerima arahan dagangan

RumputJumlah wang dalam akaun tidak mencukupi

Nihao153159Kesilapan robot niaga hadapan adalah 2021-01-02 23:40:08 Maklumat Bursa niaga hadapan tidak disokong! 2021-01-02 23:40:05 Maklumat Bursa niaga hadapan tidak disokong! 2021-01-02 23:38:23 Maklumat {"InstrumentID:"BTCUSDT","instrument":"BTCUSDT"} Perjanjian tetapan: swap 2021-01-02 23:38:23 Maklumat Pertukaran yang ditambahkan untuk Bursa niaga hadapan: Futures_Binance Alhamdulillah, semua sudah selesai.

Nihao153159Tarikh Platform Jenis Harga Bilangan Maklumat 2021-01-02 23:39:01 Maklumat sellInfo: null 2021-01-02 23:39:01 Binance Kesalahan Sell ((-1, 0.01): 400: {"code":-2010, "msg:"Account has insufficient balance for requested action"} 2021-01-02 23:38:53 Maklumat buyInfo: null 2021-01-02 23:38:53 Binance Kesalahan Beli ((-1, 0.01): 400: {"code":-2010, "msg:"Account has insufficient balance for requested action"}