جاوا اسٹریٹجی بیک ٹیسٹنگ کروم براؤزر کے ڈیو ٹولز میں ڈیبگ ہے

مصنف:چھوٹا سا خواب, تخلیق: 2022-06-24 14:10:02, تازہ کاری: 2023-09-25 19:50:23

img

جاوا اسٹریٹجی بیک ٹیسٹنگ کروم براؤزر کے ڈیو ٹولز میں ڈیبگ ہے

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

کےdebuggerFMZ پلیٹ فارم پر کمانڈ

داخل کرنا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 سپاٹ ہے، ترتیب اسکرین شاٹ میں دکھایا گیا ہے:

img

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

ہم کھولنے کی ضرورت ہےDevToolsbacktest کے عملدرآمد سے پہلے کروم براؤزر کے، پھرdebuggerاسٹریٹیجی کوڈ میں مقرر کیا جائے گا. دوسری صورت میں،debuggerنظر انداز کیا جائے گا، اور بیک ٹسٹنگ کی حکمت عملی کے پروگرام کو وقفے کے نقطہ پر مداخلت یا روک نہیں کیا جا سکتا.DevToolsحکمت عملی کا بیک ٹیسٹ کرنے کے لئے، حکمت عملی پروگرام پہلی ترتیب میں رک جائے گاdebuggerپوزیشن، اورdebuggerاسٹریٹجک کوڈ کے عالمی دائرہ کار میں بھی مقرر کیا جا سکتا ہے۔

ہمارے لئے کھولنے کے لئے دو طریقے ہیںDevToolsکروم براؤزر کا آلہ:

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

    ہم Check پر کلک کریں DevTools انٹرفیس ظاہر کرنے کے لئے.

    1. شارٹ کٹ کیز استعمال کریں

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

کھولنے کے بعدDevToolsجیسا کہ شکل میں دکھایا گیا ہے:

img

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

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

img

یہ دیکھا جا سکتا ہے کہ پوزیشن نشان لگا دیا اسٹریٹجی کی طرف سے رکاوٹdebugger، پورے پروگرام صرف n کی قدر 1 ہونے کے ساتھ تقریب کی طرف سے واپس مارکیٹ کے اعداد و شمار کو انجام دیتا ہے، اور t کی قدر ہونےGetTickerآپ مندرجہ بالا اعداد و شمار کے سرخ باکس میں مخصوص متغیر اقدار دیکھ سکتے ہیں، تاکہ یہ حکمت عملی چل رہا ہے جب ہر متغیر کی قدر کا مشاہدہ کرنے کے لئے آسان ہے.

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

ہم کوڈ کے بائیں جانب لائن نمبر پر کلک کر سکتے ہیں ایک وقفہ نقطہ شامل کرنے کے لئے.

img

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

img

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

img

کوڈ DEBUG کی جانچ کریں

img

اس وقت، جب ہم عمل جاری رکھنے کے لئے resume script execution بٹن پر کلک کرتے ہیں، تو حکمت عملی پروگرام میں ایک استثنا واقع ہوگا، اور بیک ٹیسٹ ایک استثنا غلطی کے پیغام پرنٹ کے ساتھ ختم ہو جائے گا.

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

قیمت تبادلہ میں منتقل.خریداری فنکشن ایک غیر متعین متغیر ہے، جو پروگرام استثناء کا سبب بنتا ہے اور بیک ٹیسٹ ختم ہوتا ہے.

جب پروگرام بریک پوائنٹ پوزیشن پر رک جاتا ہے تو ، کوڈ کی یہ لائن عمل میں نہیں آتی ہے۔ ہم step into next function call بٹن پر کلک کرتے رہتے ہیں۔

img

ایکسچینج میں جاؤ. خریدنے کی تقریب کال.

img

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

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


متعلقہ

مزید