संसाधन लोड हो रहा है... लोड करना...

क्रोम ब्राउज़र में जावास्क्रिप्ट नीति पुनः परीक्षण

लेखक:आविष्कारक मात्रा - छोटे सपने, बनाया गयाः 2022-06-22 14:23:26, अद्यतन किया गयाः 2023-09-18 20:24:01

JavaScript策略回测在Chrome浏览器DevTools调试

क्रोम ब्राउज़र में जावास्क्रिप्ट नीति पुनः परीक्षण

सामान्य तौर पर, यह केवल एक बार है जब आप अपने डिवाइस को रीसेट करने के लिए अपने डिवाइस को रीसेट करते हैं।Log()इस प्रकार का डीईबीयूजी बहुत कम कुशल होता है, और प्रोग्राम टेस्टिंग में कम अनुभव वाले नए लोगों के लिए कुछ कठिनाई होती है।JavaScriptभाषा के लिए रणनीतिक डीबगिंगChromeब्राउज़रों में बेहतर समर्थन है. आप रिट्रीट के समय ब्रेक-पॉइंट डिबगिंग, एकल-चरण डिबगिंग, चर-मूल्य निगरानी, अभिव्यक्ति निगरानी आदि कर सकते हैं. तो चलिए हम एक साथ सीखते हैं कि FMZ पर इस तरह का उपयोग कैसे किया जाए।Javascriptभाषा की नीति को पुनः परीक्षण करते समय DEBUG करें. ध्यान दें, FMZ पर केवलJavascriptभाषा की रणनीतियाँ इस तरह के डिबगिंग के तरीके का समर्थन करती हैं।

FMZ प्लेटफॉर्म परdebuggerनिर्देश

एफएमजेड पर जावास्क्रिप्ट भाषा के लिए नीति कोड में सम्मिलित करेंdebuggerनिर्देश, जो पुनः परीक्षण के दौरान प्रोग्राम को निष्पादित करने के लिए रोक सकता है.

हम निम्नलिखित परीक्षण रणनीति कोड का उपयोग करते हैंः

/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var n = 1 
    while (true) {
        var t = exchange.GetTicker()
        debugger
        var r = exchange.GetRecords()
        if (n == 1) {
            // 下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性,属性名区分大小写
            var id = exchange.Buy(t.buy, 0.1)    
            var orderBuy = exchange.GetOrder(id)
        }
        Sleep(500)
    }
}

रीटेस्ट कॉन्फ़िगरेशन कोड से

/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

जैसा कि आप देख सकते हैं कि हमने जो एक्सचेंज जोड़े हैं, वे बिनेंस (Binance) हैं, जो स्क्रीनशॉट के रूप में कॉन्फ़िगर किए गए हैंः

JavaScript策略回测在Chrome浏览器DevTools调试

और हम देख सकते हैं कि क्या हम कर रहे हैं.var t = exchange.GetTicker()इस वाक्य के नीचे हम लिखते हैंdebuggerएक निर्देश, यहाँ एक विराम चिह्न लगाने के बराबर है, और कार्यक्रम को इस स्थान पर निष्पादित करने के लिए बंद कर दिया जाएगा।debuggerहालाँकि, यह अनुशंसा नहीं की जाती है कि आप ऐसा करें, बस एक स्थान पर एक ब्रेक डालें, और बाद के ब्रेक को ब्राउज़र के DevTools डिबगिंग फ़ंक्शन में सेट किया जा सकता है।

पहले क्रोम ब्राउज़र खोलें।DevToolsफिर से परीक्षण करें, नीति कोड में सेटdebuggerअगर यह लागू नहीं होता है, तो यह बहुत बुरा होगा।debuggerअनदेखा किया जाएगा, और पुनः परीक्षण की गई नीति कार्यक्रम को रोक नहीं सकता है; ब्रेक के स्थान पर रोकें; खोलें।DevToolsएक बार नीति को रीसेट करने के बाद, नीति कार्यक्रम को पहले सेट पर रोक दिया जाता हैdebuggerस्थान,debuggerयह रणनीति कोड के वैश्विक दायरे में भी सेट किया जा सकता है।

हम इसे खोलते हैं, क्रोम ब्राउज़रDevToolsयह दो तरह का उपकरण है:

  • एक, हम पेज के पॉपअप मेनू को खोलने के लिए दाएं क्लिक करें

JavaScript策略回测在Chrome浏览器DevTools调试

हम "जाँचें" पर क्लिक करते हैं और DevTools इंटरफ़ेस दिखाई देता है।

  • 2. शॉर्टकट का उपयोग करें

आप इसे खोलने के लिए एक शॉर्टकट का उपयोग कर सकते हैं।Command+Option+I (Mac)याControl+Shift+I(Windows、Linux)खोलेंDevTools

खोलेंDevToolsइसके बाद कुछ ऐसा हुआः

JavaScript策略回测在Chrome浏览器DevTools调试

जावास्क्रिप्ट भाषा नीति के लिए ब्राउज़र में डीबग का इंटरफ़ेस

फिर ऊपर दिए गए परीक्षण में, जब हम क्लिक करते हैं "प्रारंभ रीसेट" बटन रीसेट नीति के कारण कोड में सेट हैdebuggerआदेश, नीति के लिए एक उचित स्थान पर रुकावट का इंतजार करें. पुनः परीक्षण एक तरह से अटक गया है, जैसा कि नीचे चित्रित किया गया हैः

JavaScript策略回测在Chrome浏览器DevTools调试

आप देख सकते हैं, रणनीतियों मेंdebuggerविराम के स्थान को चिह्नित करें, पूरे कार्यक्रम ने केवल n असाइनमेंट को 1 के रूप में निष्पादित किया, t असाइनमेंट को 1 के रूप मेंGetTickerफ़ंक्शन द्वारा लौटाए जाने वाले लेनदेन डेटा. ऊपर दिए गए चित्र में लाल बॉक्स में विशिष्ट चर के मान देखे जा सकते हैं, जिससे यह देखना आसान हो जाता है कि प्रत्येक चर का मूल्य क्या है जब नीति चल रही है.

मैन्युअल रूप से डिबगिंग सेट करें

हम कोड के बाईं ओर पंक्ति संख्या पर क्लिक कर सकते हैं और विराम चिह्न जोड़ सकते हैं।

JavaScript策略回测在Chrome浏览器DevTools调试

"resume script execution" पर क्लिक करके स्क्रिप्ट को फिर से चलाएं, प्रोग्राम अगले ब्रेक तक चलेगा, और यदि कोई ब्रेक नहीं है या प्रोग्राम में कोई त्रुटि है जो असामान्यता का कारण बनती है, तो पुनः परीक्षण समाप्त हो जाएगा।

JavaScript策略回测在Chrome浏览器DevTools调试

इसके अलावा, कुछ बटन भी लागू किए जा सकते हैंः अगले फ़ंक्शन को छोड़ें, अगले फ़ंक्शन कॉल पर जाएं, वर्तमान फ़ंक्शन कॉल को छोड़ दें, एक-चरण निष्पादित करें, सभी विराम चिह्नों को अनदेखा करें आदि।

JavaScript策略回测在Chrome浏览器DevTools调试

इस परीक्षण कोड को DEBUG करें

JavaScript策略回测在Chrome浏览器DevTools调试

इस समय, जब हम "resume script execution" बटन पर क्लिक करते रहते हैं, तो नीति कार्यक्रम में एक असामान्य घटना होती है, जो एक असामान्य त्रुटि संदेश प्रिंट करती है।

main:17:31 - TypeError: Cannot convert "undefined" to double

यह एक आम गलती है जो नए लोगों द्वारा की जाती है, एक संरचनात्मक विशेषता के नाम के लिए बड़े आकार का कोई अंतर नहीं है।

var id = exchange.Buy(t.buy, 0.1)  //  下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性。

导致传入exchange.Buy函数的价格是一个undefined变量,引起程序异常,回测结束。

जब प्रोग्राम ब्रेक पॉजिशन पर रुकता है, तो इस लाइन का कोड निष्पादित नहीं होता है. हम "step into next function call" बटन पर क्लिक करते हैं.

JavaScript策略回测在Chrome浏览器DevTools调试

跳转到exchange.Buy函数调用中。

JavaScript策略回测在Chrome浏览器DevTools调试

कीमत को एक अपरिभाषित चर के रूप में देखें।

उपरोक्त विधि का उपयोग करके, प्रोग्राम BUG का पता लगाने के लिए कदम-दर-चरण करना आसान है। कई शुरुआती लोग अक्सर गलतियाँ करते हैंः जैसे कि सरणी के सूचकांक का उपयोग सीमा पार करना, अपरिभाषित चर का हवाला देना, अभिव्यक्ति लेखन में त्रुटि, आदि। इस तरह से प्रोग्राम को डीबग करना आसान है।


संबंधित सामग्री

अधिक जानकारी

fmzeroबेडरूम, क्या यह काम करता है, 666?