backtesting کے نظام میں ٹھیک کرنے کی حکمت عملی کے لئے، عام طور پر صرفLog()
فنکشن استعمال کیا جا سکتا ہے، تو DEBUG بہت غیر موثر اور کم تجربہ کے ساتھ نوسکھئیے پروگرام ٹیسٹرز کے لئے مشکل ہے.JavaScript
زبان،Chrome
براؤزر اسے بہتر طور پر سپورٹ کرتا ہے ، جو بیک ٹسٹنگ کے دوران بریک پوائنٹ ڈیبگنگ ، سنگل اسٹیپ ڈیبگنگ ، متغیر ویلیو مانیٹرنگ ، اظہار مانیٹرنگ وغیرہ کو نافذ کرسکتا ہے۔ لہذا آئیے سیکھیں کہ اس طریقہ کو ڈیبگ کرنے کے لئے کس طرح استعمال کریں۔Javascript
FMZ پلیٹ فارم پر زبان کی حکمت عملی بیک ٹسٹنگ. نوٹ کریں کہ اس ڈیبگنگ کا طریقہ صرف کے لئے حمایت کی ہےJavaScript
FMZ پلیٹ فارم پر زبان کی حکمت عملی.
debugger
FMZ پلیٹ فارم پر کمانڈداخل کرنا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) {
// When placing a purchase order, if there is an error here, an error will be reported, and null will be returned, and GetTicker will return data t with Buy attribute only, and the attribute name is case-sensitive without buy attribute
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 سپاٹ ہے، ترتیب اسکرین شاٹ میں دکھایا گیا ہے:
حکمت عملی کوڈ کو دیکھنے کے لئے جاری، ہم دیکھ سکتے ہیں کہ ہم نے لکھا ہے کہdebugger
کمانڈ کے تحتvar t = exchange.GetTicker()
جملہ، جو کہ یہاں ایک وقفے کو مارنے کے برابر ہے، اور پروگرام کے عملدرآمد اس پوزیشن پر رک جائے گا.debugger
s کو حکمت عملی کوڈ میں استعمال کیا جاسکتا ہے ، لیکن ایسا کرنے کی سفارش نہیں کی جاتی ہے ، صرف ایک مخصوص مقام پر وقفے کا استعمال کریں ، اور اس کے بعد کے وقفے کو براؤزر کے ڈیو ٹولز ڈیبگنگ فنکشن میں مقرر کیا جاسکتا ہے۔
ہم کھولنے کی ضرورت ہےDevTools
backtest کے عملدرآمد سے پہلے کروم براؤزر کے، پھرdebugger
اسٹریٹیجی کوڈ میں مقرر کیا جائے گا. دوسری صورت میں،debugger
نظر انداز کیا جائے گا، اور بیک ٹسٹنگ کی حکمت عملی کے پروگرام کو وقفے کے نقطہ پر مداخلت یا روک نہیں کیا جا سکتا.DevTools
حکمت عملی کا بیک ٹیسٹ کرنے کے لئے، حکمت عملی پروگرام پہلی ترتیب میں رک جائے گاdebugger
پوزیشن، اورdebugger
اسٹریٹجک کوڈ کے عالمی دائرہ کار میں بھی مقرر کیا جا سکتا ہے۔
ہمارے لئے کھولنے کے لئے دو طریقے ہیںDevTools
کروم براؤزر کا آلہ:
ہم
آپ کو بھی کھولنے کے لئے شارٹ کٹ کیز استعمال کر سکتے ہیںDevTools
دبانے سےCommand+Option+I (Mac)
یاControl+Shift+I (Windows, Linux)
.
کھولنے کے بعدDevTools
جیسا کہ شکل میں دکھایا گیا ہے:
مندرجہ بالا ٹیسٹ کے بعد، جب ہم debugger
کمانڈ کوڈ میں مقرر کیا جاتا ہے۔ بیک ٹیسٹ پھنس گیا لگتا ہے، مندرجہ ذیل:
یہ دیکھا جا سکتا ہے کہ پوزیشن نشان لگا دیا اسٹریٹجی کی طرف سے رکاوٹdebugger
، پورے پروگرام صرف n کی قدر 1 ہونے کے ساتھ تقریب کی طرف سے واپس مارکیٹ کے اعداد و شمار کو انجام دیتا ہے، اور t کی قدر ہونےGetTicker
آپ مندرجہ بالا اعداد و شمار کے سرخ باکس میں مخصوص متغیر اقدار دیکھ سکتے ہیں، تاکہ یہ حکمت عملی چل رہا ہے جب ہر متغیر کی قدر کا مشاہدہ کرنے کے لئے آسان ہے.
ہم کوڈ کے بائیں جانب لائن نمبر پر کلک کر سکتے ہیں ایک وقفہ نقطہ شامل کرنے کے لئے.
اسکرپٹ کے عمل کو دوبارہ شروع کرنے کے لئے
کچھ بٹن بھی ہیں جو لاگو کیے جاسکتے ہیں ، مثال کے طور پر ، اگلے فنکشن کو چھوڑیں ، اگلے فنکشن کال پر جائیں ، موجودہ فنکشن کال سے باہر نکلیں ، سنگل مرحلہ انجام دیں ، تمام وقفے کو نظرانداز کریں ، وغیرہ۔
اس وقت، جب ہم عمل جاری رکھنے کے لئے
main:17:31 - TypeError: Cannot convert "undefined" to double
ڈھانچے میں شراکت کے نام کے لئے بڑے اور چھوٹے حسی نہ ہونا ایک عام غلطی ہے جو ابتدائی افراد کرتے ہیں۔
var id = exchange.Buy(t.buy, 0.1) // When placing a purchase order, if there is an error here, an error will be reported, and null will be returned, and GetTicker will return data t with Buy attribute only, and the attribute name is case-sensitive without buy attribute
قیمت تبادلہ میں منتقل.خریداری فنکشن ایک غیر متعین متغیر ہے، جو پروگرام استثناء کا سبب بنتا ہے اور بیک ٹیسٹ ختم ہوتا ہے.
جب پروگرام بریک پوائنٹ پوزیشن پر رک جاتا ہے تو ، کوڈ کی یہ لائن عمل میں نہیں آتی ہے۔ ہم
ایکسچینج میں جاؤ. خریدنے کی تقریب کال.
یہاں ہم دیکھ سکتے ہیں کہ قیمت ایک غیر متعین متغیر ہے.
مندرجہ بالا نقطہ نظر کا استعمال کرتے ہوئے ، پروگرام کی غلطیوں کو قدم بہ قدم معلوم کرنا آسان ہے۔ بہت سے ناول اکثر غلطیاں کرتے ہیں ، مثال کے طور پر ، کسی صف کے انڈیکس تک حدود سے باہر رسائی حاصل کی جاتی ہے ، غیر متعین متغیرات کا حوالہ دیا جاتا ہے ، اظہار غلط طریقے سے لکھا جاتا ہے ، وغیرہ ، ان سب میں پروگرام کو ڈیبگ کرنا آسان ہے۔