Tolong ajarkan mimpi.

Penulis:Neo1898, Dibuat: 2022-02-25 08:04:50, Diperbarui: 2022-02-25 08:52:20

Mengutip kode DreamSum, menemukan bahwa pada suatu saat akan muncul kesalahan: TypeError: cannot read property Price of null at main (TypeError: tidak dapat membaca properti )FileSaya akan mengubah var pos = exchange.GetPosition (() menjadi var pos = _C ((exchange.GetPosition (())), apakah masalah ini dapat diselesaikan; karena analogi re-test tidak dapat menguji bug ini, harus disk nyata, jadi mohon untuk menyelesaikan masalah ini, terima kasih!

var currTotalEq = getTotalEquity()
var pos = _C(exchange.GetPosition())
//var pos = exchange.GetPosition()
if (currTotalEq && pos) {
                    // LogStatus(_D(), "当前总权益:", currTotalEq, "持仓:", pos)
                    var tblPos = {
                        "type" : "table",
                        "title" : "持仓",
                        "cols" : ["持仓数量", "持仓方向", "持仓均价", "持仓盈亏", "合约代码", "自定义字段 / " + SpecifyPosField],
                        "rows" : []
                    }
                    var descType = ["多头仓位", "空头仓位"]
                    for (var posIndex = 0 ; posIndex < pos.length ; posIndex++) {
                        tblPos.rows.push([pos[posIndex].Amount, descType[pos[posIndex].Type], pos[posIndex].Price, pos[posIndex].Profit, pos[posIndex].ContractType, SpecifyPosField == "" ? "--" : pos[posIndex].Info[SpecifyPosField]])
                    }
                    
                    var tbl = {
                        "type" : "table",
                        "title" : "数据",
                        "cols" : ["当前总权益", "实际盈亏", "当前价格", "买单价格/数量", "卖单价格/数量"],
                        "rows" : []
                    }
                    var buyOrder = null 
                    var sellOrder = null 
                    for (var orderIndex = 0 ; orderIndex < orders.length ; orderIndex++) {
                        if (orders[orderIndex].Type == ORDER_TYPE_BUY) {
                            buyOrder = orders[orderIndex]
                        } else {
                            sellOrder = orders[orderIndex]
                        }
                    }
                    var realProfit = currTotalEq - totalEq
                    if (exchange.GetName() == "Futures_Binance") {
                        _.each(pos, function(p) {
                            realProfit += parseFloat(p.Info.unRealizedProfit)
                        })                        
                    }
                    var t = exchange.GetTicker()
                    tbl.rows.push([currTotalEq, realProfit, t ? t.Last : "--", (buyOrder.Price + "/" + buyOrder.Amount), (sellOrder.Price + "/" + sellOrder.Amount)])

Lebih banyak

Neo1898Mengubah var pos = exchange.GetPosition (() menjadi var pos = _C ((exchange.GetPosition (())), apakah bisa diselesaikan, mengambil nilai dan pergi ke bawah

Neo1898Kode di sekitar baris 553 adalah: var t = exchange.GetTicker (dalam bahasa Inggris) tbl.rows.push (([currTotalEq, realProfit, t? t.Last : "--", (buyOrder.Price + "/" + buyOrder.Amount), (sellOrder.Price + "/" + sellOrder.Amount))) Jika data ticker tidak diambil, maka ganti menjadi var t = _C ((exchange.GetTicker)))), apakah itu bisa dilakukan.

Neo1898Terima kasih, Dream Total!

Mimpi kecil`` tbl.rows.push (([currTotalEq, realProfit, t? t.Last : "--", (buyOrder? buyOrder.Price : "--") + "/" + (buyOrder? buyOrder.Amount :"--"), (sellOrder? sellOrder.Price "--") + "/" + (sellOrder? sellOrder.Amount : "--"))) `` Masalahnya adalah, ketika buyOrder adalah null, jangan pergi ke buyOrder.Amount atau buyOrder.Price.

Neo1898Bahkan jika ada pesanan, harga di sana adalah angka, tetapi di Amount selalu tidak ada data, tidak ada kesalahan, yang aneh, di mana masalahnya?

Neo1898Jika tidak ada pesanan, Anda harus mengubah harga dan jumlahnya, tetapi Anda mencoba. tbl.rows.push (([currTotalEq, realProfit, t? t.Last : "--", (buyOrder? buyOrder.Price : "--" + "/" + buyOrder? buyOrder.Amount: "--"), (sellOrder? sellOrder.Price "--" + "/" + sellOrder? sellOrder.Amount: "--") Atau laporan TypeError: cannot read property 'Amount' of null at main (__FILE__:554), apakah kode tidak diperbarui?

Mimpi kecilBisa, yaitu mengakses properti dari suatu variabel. Saat menentukan apakah variabel tersebut null, atau tidak mengaksesnya, maka tidak akan ada kesalahan yang dikembalikan.

Neo1898tbl.rows.push (([currTotalEq, realProfit, t? t.Last : "--", (buyOrder? buyOrder.Price : "--" + "/" + buyOrder.Amount), (sellOrder? sellOrder.Price : "--" + "/" + sellOrder.Amount))) Itu seperti di atas, kan?

Mimpi kecilBuyOrder?buyOrder.Price : "--" Ini bisa diproses.

Mimpi kecilAnda dapat mengirim strings kosong.

Neo1898Terima kasih, itu benar, beberapa langkah saya tidak melakukan pemesanan, jadi pesan pemesanan adalah null, harus diizinkan masuk ke null, bagaimana saya harus mengubahnya?

Awan ringanvar t = _C ((exchange.GetTicker)

Awan ringanJika Anda tidak dapat memasukkan kesalahan, ganti dengan var pos = _C.GetPosition.

Neo1898 tbl.rows.push,是这个不允许传入null值是吗?我有些步骤是没有下单的,所以订单信息为null,必须允许传入null,应该要怎么改呢,谢谢梦总!

Neo1898Jadi saya tidak mau memesan, apakah di sini memungkinkan untuk null, di mana saya bisa mengubahnya untuk memungkinkan untuk null, saya tidak mau memesan, nomor pesanan itu harus null.

Mimpi kecilMungkin buyOrder atau sellOrder adalah null, Anda dapat mencetak dan memeriksa.