avatar of 发明者量化-小小梦 发明者量化-小小梦
پر توجہ دیں نجی پیغام
4
پر توجہ دیں
1271
پیروکار

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

میں تخلیق کیا: 2022-06-22 14:23:26, تازہ کاری: 2023-09-18 20:24:01
comments   1
hits   1736

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

بیک ٹیسٹنگ سسٹم میں ڈیبگنگ کی حکمت عملیوں کے لیے، عام طور پر صرفLog()فنکشن اس قسم کی DEBUG کی کارکردگی بہت کم ہے، اور یہ نوزائیدہوں کے لیے مشکل ہے جنہیں پروگرام کی جانچ میں بہت کم تجربہ ہے۔ کے لیےJavaScriptزبان کی حکمت عملی ڈیبگنگChromeبراؤزرز کو بہتر سپورٹ حاصل ہے۔ یہ بیک ٹیسٹنگ کے دوران بریک پوائنٹ ڈیبگنگ، سنگل سٹیپ ڈیبگنگ، متغیر ویلیو مانیٹرنگ، ایکسپریشن مانیٹرنگ وغیرہ کا احساس کر سکتا ہے۔ پھر آئیے ایف ایم زیڈ کو کنٹرول کرنے کے لیے اس طریقے کو استعمال کرنے کا طریقہ سیکھتے ہیں۔Javascriptزبان میں حکمت عملیوں کی پشت پناہی کرتے وقت ڈیبگ کریں۔ نوٹ کریں کہ صرف FMZ پرJavascriptزبان کی پالیسیاں ڈیبگنگ کے لیے اس نقطہ نظر کی حمایت کرتی ہیں۔

FMZ پلیٹ فارم پرdebuggerہدایت

FMZ پر JavaScript زبان کے پالیسی کوڈ میں داخل کریں۔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"}]
*/

آپ دیکھ سکتے ہیں کہ بیک ٹیسٹ کے دوران ہم نے جو تبادلہ شامل کیا وہ بائنانس اسپاٹ ہے، اور ترتیب اسکرین شاٹ میں دکھائی گئی ہے:

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

حکمت عملی کے کوڈ کو دیکھتے ہوئے، ہم اسے دیکھ سکتے ہیں۔var t = exchange.GetTicker()اس جملے کے تحت ہم نے لکھاdebuggerہدایات یہاں بریک پوائنٹ قائم کرنے کے مترادف ہے، اور پروگرام اس پوزیشن پر پہنچنے پر رک جائے گا۔ متعددdebugger، لیکن ایسا کرنے کی سفارش نہیں کی جاتی ہے صرف ایک مخصوص مقام پر بریک پوائنٹس کو براؤزر کے ڈیبگنگ فنکشن میں سیٹ کیا جا سکتا ہے۔

آپ کو پہلے کروم براؤزر کھولنا ہوگا۔DevToolsپھر بیک ٹیسٹ کریں، حکمت عملی کوڈ سیٹ کریں۔debuggerاثر ہو گا، ورنہdebuggerاسے نظر انداز کر دیا جائے گا اور بہترین حکمت عملی کے پروگرام کو بریک پوائنٹ پر روکا نہیں جا سکتا۔ کھولیں۔DevToolsحکمت عملی کی بیک ٹیسٹنگ کے بعد، حکمت عملی کے پروگرام کو پہلے سیٹ پر روک دیا جائے گا۔debuggerمقام،debuggerپالیسی کوڈ کے عالمی دائرہ کار میں بھی سیٹ کیا جا سکتا ہے۔

ہم کروم براؤزر کھولتے ہیں۔DevToolsدو قسم کے اوزار ہیں:

  • 1. ہم پاپ اپ مینو کو کھولنے کے لیے صفحہ پر دائیں کلک کرتے ہیں۔

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

جب ہم “معائنہ کریں” پر کلک کریں گے تو DevTools کا انٹرفیس ظاہر ہوگا۔

  • 2. شارٹ کٹ کیز استعمال کریں۔

آپ اسے کھولنے کے لیے شارٹ کٹ کلید بھی استعمال کر سکتے ہیں۔Command+Option+I (Mac)یاControl+Shift+I(Windows、Linux)کھولیں۔DevTools

کھولیں۔DevToolsاس کے بعد، جیسا کہ تصویر میں دکھایا گیا ہے:

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

JavaScript زبان کی حکمت عملی کے براؤزر میں ڈیبگ انٹرفیس

مندرجہ بالا ٹیسٹ کے بعد، کوڈ میں ترتیب کی وجہ سے، جب ہم حکمت عملی کو بیک ٹیسٹ کرنے کے لیے “بیک ٹیسٹنگ شروع کریں” بٹن پر کلک کرتے ہیں۔debuggerہدایات، حکمت عملی میں خلل پڑتا ہے اور متعلقہ پوزیشن پر انتظار کیا جاتا ہے۔ ایسا لگتا ہے کہ بیک ٹیسٹ پھنس گیا ہے، جیسا کہ ذیل میں دکھایا گیا ہے:

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

یہ حکمت عملی میں دیکھا جا سکتا ہےdebuggerانٹرپٹ پوزیشن کو نشان زد کریں پورا پروگرام صرف 1 اور ٹی کو تفویض کیا گیا ہے۔GetTickerمارکیٹ کا ڈیٹا فنکشن کے ذریعے واپس کیا گیا۔ مندرجہ بالا تصویر میں سرخ باکس میں، آپ مخصوص متغیر اقدار کو دیکھ سکتے ہیں، جو حکمت عملی کے چلتے وقت مختلف متغیرات کی قدروں کا مشاہدہ کرنا بہت آسان بناتا ہے۔

ڈیبگنگ کے لیے دستی طور پر بریک پوائنٹس سیٹ کریں۔

بریک پوائنٹ شامل کرنے کے لیے ہم کوڈ کے بائیں جانب لائن نمبر پر کلک کر سکتے ہیں۔

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

اسکرپٹ پر عمل دوبارہ شروع کرنے کے لیے “اسکرپٹ پر عمل شروع کریں” پر کلک کریں اگر کوئی بریک پوائنٹ نہیں ہے یا پروگرام میں کوئی خرابی ہے تو بیک ٹیسٹ ختم ہو جائے گا۔

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

ایسے بٹن بھی ہیں جن کا استعمال کیا جا سکتا ہے: اگلا فنکشن چھوڑنا، اگلے فنکشن کال میں قدم رکھنا، موجودہ فنکشن کال سے باہر جانا، سنگل سٹیپ، تمام بریک پوائنٹس کو نظر انداز کرنا وغیرہ۔

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

اس ٹیسٹ کوڈ کو ڈیبگ دیں۔

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

اس مقام پر، جب ہم عمل کو جاری رکھنے کے لیے “ریزیوم اسکرپٹ ایگزیکیوشن” بٹن پر کلک کرنا جاری رکھیں گے، حکمت عملی پروگرام میں ایک استثناء ہوگا، بیکٹیسٹ ختم ہو جائے گا، اور ایک استثنائی غلطی کا پیغام پرنٹ کیا جائے گا۔

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

یہ ایک عام غلطی ہے جو نوزائیدہوں کی طرف سے کی جاتی ہے، جو ساخت کے خصوصیت کے نام کے لیے اوپری اور لوئر کیس میں فرق نہیں کرتے ہیں۔

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

نتیجے کے طور پر، ایکسچینج میں منتقل ہونے والی قیمت۔ Buy فنکشن ایک غیر متعینہ متغیر ہے، جس کی وجہ سے پروگرام کا استثنیٰ ہوتا ہے اور بیک ٹیسٹ ختم ہوتا ہے۔

جب پروگرام بریک پوائنٹ پر رک جاتا ہے، تو کوڈ کی اس لائن پر عمل نہیں ہوتا ہے۔ ہم “اگلے فنکشن کال میں قدم” بٹن پر کلک کرتے رہتے ہیں۔

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

ایکسچینج پر جائیں۔ فنکشن کال خریدیں۔

کروم براؤزر ڈیو ٹولز میں جاوا اسکرپٹ کی حکمت عملی بیک ٹیسٹنگ ڈیبگنگ

دیکھیں کہ قیمت ایک غیر متعینہ متغیر ہے۔

مندرجہ بالا طریقہ کو استعمال کرتے ہوئے، مرحلہ وار پروگرام کے کیڑے تلاش کرنا آسان ہے۔ بہت سی غلطیاں جو نوزائیدہ اکثر کرتے ہیں: مثال کے طور پر، صفوں کے اشاریہ جات تک حد سے باہر رسائی، غیر متعینہ متغیرات کے حوالے، غلط اظہار تحریر وغیرہ۔ اس طرح، پروگرام کو ڈیبگ کرنا آسان ہے۔