कृपया मुझे सिखाएं

लेखक:नव1898, बनाया गयाः 2022-02-25 08:04:50, अद्यतनः 2022-02-25 08:52:20

एक कोड का संदर्भ लेते हुए, यह पता चला कि किसी समय त्रुटि होगीः TypeError: cannot read property Price of null at mainफाइल५५३), जो प्रोग्राम से बाहर निकलने का कारण बनता है, कृपया बताएं कि क्या यह कस्टम फ़ील्ड के कारण null है, या क्या यह मूल्य जानकारी प्राप्त नहीं करने के कारण है, मैं var pos = exchange.GetPosition (() को var pos = _C ((exchange.GetPosition))) में बदल दूंगा, क्या इस समस्या को हल किया जा सकता है; क्योंकि एनालॉग पुनः परीक्षण इस बग का परीक्षण नहीं कर सकता है, वास्तविक डिस्क होना चाहिए, इसलिए कृपया बताएं कि क्या यह समस्या हल हो सकती है, धन्यवाद

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)])

अधिक

नव1898var pos = exchange.GetPosition (() को var pos = _C ((exchange.GetPosition (()) में बदलें, क्या यह हल हो सकता है, मान ले लिया और नीचे चला गया

नव1898553 लाइन के पास का कोड हैः var t = exchange.GetTicker ((() tbl.rows.push (([currTotalEq, realProfit, t? t.Last : "--", (buyOrder.Price + "/" + buyOrder.Amount), (sellOrder.Price + "/" + sellOrder.Amount))) यदि टिकर डेटा नहीं लिया गया है, तो इसे var t = _C ((exchange.GetTicker))) में बदल दिया गया है, तो क्या यह ठीक है?

नव1898धन्यवाद, ड्रीम!

छोटे सपने`` tbl.rows.push (([currTotalEq, realProfit, t? t.Last : "--", (buyOrder? buyOrder.Price : "--") + "/" + (buyOrder? buyOrder.Amount :"--"), (sellOrder? sellOrder.Price "--") + "/" + (sellOrder? sellOrder.Amount : "--"))) `` समस्या यह है कि जब buyOrder null है, तो buyOrder.Amount या buyOrder.Price पर जाने से कोई गलती नहीं होती है।

नव1898अगर कोई ऑर्डर है, तो कीमतें संख्यात्मक हैं, लेकिन Amount के पास हमेशा कोई डेटा नहीं होता है, कोई त्रुटि नहीं होती है, यह अजीब है, क्या समस्या है?

नव1898बिना ऑर्डर के स्थितिः कीमत बदल गई, और मुझे राशि बदलनी पड़ी, लेकिन मैंने कोशिश की tbl.rows.push (([currTotalEq, realProfit, t? t.Last : "--", (buyOrder? buyOrder.Price : "--" + "/" + buyOrder? buyOrder.Amount :"--"), (sellOrder? sellOrder.Price "--" + "/" + sellOrder? sellOrder.Amount : "--")) या TypeError: cannot read property 'Amount' of null at main (__FILE__:554), कोड अद्यतन नहीं किया गया है?

छोटे सपनेहो सकता है, किसी चर के गुणों तक पहुँचने के लिए, यह तय करने के लिए कि यह चर शून्य है या नहीं, इसे नहीं जाना चाहिए, और कोई त्रुटि नहीं है।

नव1898tbl.rows.push (([currTotalEq, realProfit, t? t.Last : "--", (buyOrder? buyOrder.Price : "--" + "/" + buyOrder.Amount), (sellOrder? sellOrder.Price : "--" + "/" + sellOrder.Amount) ] यह ऊपर की तरह है, ठीक है.

छोटे सपनेbuyOrder?buyOrder.Price : "--" यह ठीक है।

छोटे सपनेआप एक खाली स्ट्रिंग भेज सकते हैं.

नव1898धन्यवाद सही है, तो मैं कुछ चरणों में आदेश नहीं है, तो आदेश संदेश शून्य है, शून्य में प्रवेश करने की अनुमति देनी चाहिए, मैं कैसे बदलना चाहिए

हल्के बादलvar t = _C ((exchange.GetTicker)

हल्के बादलत्रुटि के अंदर सेट नहीं किया जा सकता है, इसे var pos = _C ((exchange.GetPosition) में बदल दिया गया है।

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

नव1898और फिर मैं ऑर्डर नहीं करता, क्या यह शून्य के लिए अनुमति देता है, जहां मैं इसे शून्य के लिए अनुमति देने के लिए बदल सकता हूं, मैं ऑर्डर नहीं करना चाहिए, यह ऑर्डर नंबर शून्य होना चाहिए।

छोटे सपनेयह संभव है कि buyOrder या sellOrder null के कारण हो, आप इसे प्रिंट करके देख सकते हैं।