عام طور پر صرف ریگولیٹر سسٹم میں ڈیبگنگ کی حکمت عملی کے لئے استعمال کیا جاتا ہے.Log()
اس طرح کا ڈی بی یو جی بہت کم موثر ہے اور پروگرام ٹیسٹنگ میں کم تجربے والے نئے آنے والوں کے لئے کچھ مشکل ہے۔JavaScript
زبان کی حکمت عملی ڈیبگنگ کے لئےChrome
براؤزر میں بہتر معاونت ہے۔ آپ ریٹرن ٹائم بریک ڈیبگنگ ، سنگل اسٹیپ ڈیبگنگ ، متغیر کی نگرانی ، اظہار کی نگرانی وغیرہ کو قابل بناسکتے ہیں۔ اب آئیے ہم مل کر سیکھیں کہ FMZ پر اس طرح کا استعمال کیسے کریں۔Javascript
زبان کی پالیسی کو دوبارہ جانچنے پر DEBUG کریں۔ نوٹ کریں کہ FMZ پر صرفJavascript
زبان کی حکمت عملی اس طرح کے ڈیکوریشن کے طریقہ کار کی حمایت کرتی ہے۔
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 (بائنین) کی جگہ پر ہے اور اس کی ترتیب اسکرین شاٹ کی طرح ہے:
اور اگر ہم اس کوڈ کو دیکھتے رہیں تو ہم یہ دیکھ سکتے ہیں کہvar t = exchange.GetTicker()
اس جملے کے نیچے ہم لکھتے ہیں:debugger
اسٹریٹجک کوڈ میں ایک سے زیادہ اختیارات استعمال کیے جا سکتے ہیں۔ اسٹریٹجک کوڈ میں ایک سے زیادہ اختیارات استعمال کیے جا سکتے ہیں۔ اسٹریٹجک کوڈ میں ایک سے زیادہ اختیارات استعمال کیے جا سکتے ہیں۔debugger
اس کے علاوہ ، یہ سفارش نہیں کی جاتی ہے کہ آپ کسی جگہ پر صرف ایک وقفے پر کلک کریں ، اور بعد میں وقفے کو براؤزر کے ڈیو ٹولز ڈیبگنگ کی خصوصیت میں ترتیب دیا جاسکتا ہے۔
آپ کو Chrome براؤزر کھولنے کی ضرورت ہےDevTools
پھر دوبارہ جانچ پڑتال کریں، پالیسی کوڈ میں مقرر کردہdebugger
اس کے علاوہ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت نہیں ہے.debugger
اس کے بعد، آپ کو اس بات کا یقین کرنے کی ضرورت نہیں ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے.DevTools
ایک بار جب پالیسی دوبارہ ترتیب دی جاتی ہے، تو پالیسی کا پروگرام پہلے سیٹ پر رک جاتا ہے۔debugger
مقام،debugger
آپ کو اسٹریٹجک کوڈ کے عالمی دائرہ کار میں بھی سیٹ کیا جاسکتا ہے۔
ہم کھولتے ہیں، کروم براؤزرDevTools
یہ دو طریقے ہیں:
1، ہم دائیں کلک کے ساتھ صفحے کے پاپ اپ مینو کو کھولنے کے لئے.
اگر ہم "چیک کریں" پر کلک کریں تو ہمیں ڈیو ٹولز انٹرفیس دکھایا جائے گا۔
2، شارٹ کٹ استعمال کریں
آپ اسے کھولنے کے لئے ایک مختصر بٹن کا استعمال کر سکتے ہیں.Command+Option+I (Mac)
یاControl+Shift+I(Windows、Linux)
کھولیںDevTools
。
کھولیںDevTools
اس کے بعد یہ ہے:
اس کے بعد مندرجہ بالا ٹیسٹ میں، جب ہم "شروع دوبارہ ترتیب" کے بٹن پر کلک کرتے ہیں تو، دوبارہ ترتیب کی پالیسی کو تبدیل کر دیا جاتا ہے کیونکہ یہ کوڈ میں مقرر کیا گیا ہے.debugger
ہدایات، حکمت عملیوں میں وقفے سے متعلقہ پوزیشنوں میں انتظار کریں۔ دوبارہ شروع کرنے کے لئے یہ گڑبڑ کی طرح ہے، جیسا کہ ذیل میں دکھایا گیا ہے:
آپ دیکھ سکتے ہیں، حکمت عملی میںdebugger
نشان لگا دیا جائے گا کہ وقفے کی جگہ، پورے پروگرام صرف n تفویض 1 کے طور پر انجام دیا، t تفویض 1 کے طور پر.GetTicker
فنکشن کی واپسی کی سرگرمیوں کا ڈیٹا۔ مندرجہ بالا گراف میں سرخ باکس میں مخصوص متغیرات کی قدر دیکھی جاسکتی ہے ، تاکہ حکمت عملی چلتے وقت متغیرات کی قدر کو دیکھنا آسان ہو۔
ہم کوڈ کے بائیں جانب لائن نمبر پر کلک کر سکتے ہیں اور نقطۂٔٔٔٔٔٔٔٔٔٔٔٔٔٔٔٔ کا اضافہ کر سکتے ہیں۔
اسکرپٹ کے عمل کو دوبارہ شروع کرنے کے لیے "resume script execution" پر کلک کریں۔ اسکرپٹ اگلے وقفے تک چلتا رہے گا اور اگر کوئی وقفہ نہیں ہے یا پروگرام میں کوئی غلطی ہے جس کی وجہ سے کوئی غیر معمولی بات ہوئی ہے تو دوبارہ جانچ ختم ہوجائے گی۔
اس کے علاوہ کچھ بٹن بھی ہیں جو آپ استعمال کرسکتے ہیں: اگلے فنکشن کو چھوڑیں، اگلے فنکشن کو کال کریں، موجودہ فنکشن کو کال کریں، ایک قدم پر عمل کریں، تمام وقفوں کو نظر انداز کریں وغیرہ۔
اس وقت، جب ہم "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变量,引起程序异常,回测结束。
جب پروگرام ٹوٹنے کی پوزیشن پر رک جاتا ہے تو ، اس لائن کا کوڈ عمل میں نہیں آتا ہے۔ ہم "اسٹیپ ان اگلی فنکشن کال" کے بٹن پر کلک کرتے ہیں۔
跳转到exchange.Buy函数调用中。
قیمت کو ایک غیر متعین متغیر کے طور پر دیکھتے ہیں۔
مندرجہ بالا طریقوں کا استعمال کرتے ہوئے ، پروگرام کی غلطی کو قدم بہ قدم تلاش کرنا آسان ہے۔ بہت سے نئے آنے والوں کی غلطیوں میں سے ایک: جیسے کہ صفوں کے انڈیکس تک رسائی کی حد کو عبور کرنا ، غیر متعین متغیرات کا حوالہ دینا ، اظہار کی غلطی وغیرہ۔ اس طرح سے پروگرام کو ڈیبگ کرنا آسان ہے۔
fmzeroسونے کے کمرے، اور یہ بھی کر سکتے ہیں، 666، ہاہاہا