
پچھلے مضامین میں، ہم نے سیکھا ہے کہ نام نہاد پروگرام شدہ اور مقداری ٹریڈنگ ایک اسکرپٹ پروگرام ہے جو ٹریڈنگ کے لیے ایکسچینج اکاؤنٹ کو چلانے کے لیے حسابات، فیصلوں، اور محرکات کی ایک سیریز کے بعد ایکسچینج سے حاصل کردہ ڈیٹا کی بنیاد پر کچھ آپریشن کرتا ہے۔ ڈیٹا اور آپریٹنگ اکاؤنٹس حاصل کرنے کی یہ تمام کارروائیاں ایکسچینج API انٹرفیس کے ذریعے کی جاتی ہیں۔ سادہ لفظوں میں، یہ اسکرپٹ پروگرام اور تبادلے کے درمیان تعامل ہے چونکہ یہ ایک تعامل ہے، اس لیے عام تعامل اور غیر معمولی تعامل ہونا چاہیے۔ جب کوئی غیر معمولی تعامل ہوتا ہے، تو انٹرفیس استثناء کی معلومات لوٹاتا ہے۔
بلاشبہ، مارکیٹ میں پروگرام شدہ اور مقداری تجارتی نظام، یا خود تیار کردہ پروگراموں میں مختلف غلطی کے اشارے اور غلطی کے پیغامات ہوں گے۔ یہ ایرر میسیجز ایکسچینج API انٹرفیس کے ذریعہ رپورٹ کردہ ایرر میسیجز تک محدود نہیں ہیں۔ ایسی چیزیں بھی ہیں جیسے: پروگرام کے رن ٹائم استثنا کی خرابیاں، ترتیب کی خرابیاں، پروگرام کے نحو کی خرابیاں، وغیرہ۔
موجد مقداری تجارتی پلیٹ فارم پر، غلطی کے پیغامات کو تقریباً کئی زمروں میں تقسیم کیا جا سکتا ہے:

کوڈ میں حروف کی کمی ہے جیسے بریکٹ۔ اس قسم کی خرابی عام طور پر پالیسی میں ترمیم کرنے والے صفحہ پر نظر آتی ہے، اور پالیسی کو نہیں چلایا جا سکتا (ایک خرابی براہ راست رن ٹائم کے دوران رپورٹ کی جائے گی، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے)۔
اس لیے حکمت عملی لکھنے کے بعد، میں عادتاً پلیٹ فارم کی حکمت عملی میں ترمیم کرنے والے صفحہ پر ایک نظر ڈالتا ہوں تاکہ یہ معلوم ہو سکے کہ آیا کوئی چھوٹا سا سرخ XX ہے، تو کوئی واضح غلطی ضرور ہے۔


اس طرح کی غلطیوں سے پروگرام ناکام ہو جائے گا اور پروگرام چلنا بند ہو جائے گا۔
FMZ پلیٹ فارم پر، تجارتی جوڑوں کو یکساں طور پر بیان کیا گیا ہے۔X_Yاس فارمیٹ میں، X ٹریڈنگ کرنسی کے نام کی نمائندگی کرتا ہے، اور Y ڈینومینیٹڈ کرنسی کے نام کی نمائندگی کرتا ہے (فیوچر کرنسی پر مبنی کنٹریکٹ ٹریڈنگ جوڑوں کی ڈینومینیٹڈ کرنسی کو عام طور پر USD میں ظاہر کیا جاتا ہے، جسے پچھلے مضامین میں متعارف کرایا جا چکا ہے)۔ مثال کے طور پرBTC_USDTاگر میں تجارتی جوڑی کو تصادفی طور پر لکھتا ہوں،BTC-USDT。

FMZ پلیٹ فارم بیک ٹیسٹنگ سسٹم میں خرابی کی اطلاع دی گئی:

حقیقی تجارت میں غلطی کی اطلاع دیں:

مزید برآں، ایک عام غلطی جس کا سامنا نئے لوگوں کو ہوتا ہے:
https://www.fmz.com
اس قسم کی خرابی FMZ پلیٹ فارم اکاؤنٹ کا پاس ورڈ تبدیل کرنے کی وجہ سے ہوتی ہے، جس کے نتیجے میںAPI KEYغلط ہے (صارف کی API KEY براؤزر پر انکرپٹ ہوتی ہے اور پھر FMZ پلیٹ فارم پر کنفیگر ہوتی ہے)، حکمت عملی شروع نہیں کی جا سکتی، اور ایک غلطی کی اطلاع دی جاتی ہے۔
حکمت عملیوں کو چلاتے وقت اکثر انٹرفیس کال کی غلطیوں کا سامنا کرنا پڑتا ہے۔نیٹ ورک کی درخواستیں پیدا کرنے کے لیے انٹرفیس、انٹرفیس جو نیٹ ورک کی درخواستیں تیار نہیں کرتا ہے۔. انٹرفیس کی خرابیاں پالیسی پروگرام کو روکنے کا سبب نہیں بنیں گی، یہ عام طور پر ایک انٹرفیس کال استثناء کی وجہ سے ہوتا ہے، جو غلط ڈیٹا کو واپس کرتا ہے، اور غلط ڈیٹا کی وجہ سے پروگرام کی استثنا کی خرابی پروگرام کو روکتی ہے۔ (غلطی رواداری کا تصور پچھلے مضامین میں زیر بحث آیا ہے)۔
یہاں کچھ انٹرفیس ایرر میسیجز ہیں جو نیٹ ورک کی درخواستیں تیار کرتے ہیں:
نیٹ ورک ٹائم آؤٹ

غلطی کے پیغامات میں سے ایک جن کا سامنا نوزائیدہوں کو ہوتا ہے وہ گھریلو نیٹ ورک ڈیوائسز (ان کے اپنے کمپیوٹر یا گھریلو سرور) کا استعمال ہے۔ چونکہ زیادہ تر تبادلے مسدود ہیں، بہت سے تبادلے بنیادی طور پر گھریلو نیٹ ورک سے ناقابل رسائی ہیں، اور رسائی انٹرفیس وقت ختم ہونے کی اطلاع دے گا۔ (پچھلے مضامین میں ذکر کیا گیا ہے)
HTTP 429 غلطی
https://www.fmz.com
کلاسک ایرر میسیجز میں سے ایک وجہ یہ ہے کہ ایکسچینج انٹرفیس کو بہت کثرت سے کہا جاتا ہے، ایکسچینج کی فریکوئنسی کی حد سے زیادہ۔ (پچھلے مضامین میں ذکر کیا گیا ہے)
کچھ نئے طلباء کہہ سکتے ہیں، میں مزید تبادلے کے لیے درخواست دوں گا۔API KEYیا میں صرف چند مزید ایکسچینج اکاؤنٹس کے لیے درخواست دے سکتا ہوں۔ ہمیں یہ جاننے کی ضرورت ہے کہ ایکسچینجز عام طور پر آئی پی ایڈریس کی بنیاد پر انٹرفیس تک رسائی کی فریکوئنسی کو محدود کرتے ہیں، جب تک کہ آئی پی ایڈریس سے بھیجی گئی تمام درخواستوں کو اس آئی پی ایڈریس پر شمار کیا جاتا ہے، اگر یہ آئی پی دوبارہ درخواست بھیجتا ہے۔ ایکسچینج سرور رسائی سے انکار کر دے گا۔
ایکسچینج انٹرفیس کاروباری سطح پر رپورٹنگ میں خرابی۔
اوپر بیان کردہ ٹائم آؤٹ اور 429 نیٹ ورک کی سطح کی خرابیاں ہیں۔ اگر ایکسچینج انٹرفیس کاروباری سطح پر مسائل پیدا ہوتے ہیں تو غلطیوں کی بھی اطلاع دی جائے گی، مثال کے طور پر، میں اسپاٹ کوٹس حاصل کرنا چاہتا ہوں، لیکن میں نے ایک تجارتی جوڑا مقرر کیا ہے جو موجود نہیں ہے۔ میں نے اسے FMZ پلیٹ فارم کے ڈیبگنگ ٹول میں آزمایا ہے، ڈیبگنگ ٹول ایک بہت ہی آسان ٹیسٹنگ ٹول ہے، جو فنکشن کالز، ڈیٹا کے حصول اور دیگر ضروریات کے لیے بہت موزوں ہے۔

ڈیبگنگ ٹول کے عملدرآمد کے نتائج اور اصل عمل میں کوئی فرق نہیں ہے۔

Huobi 错误 GetTicker: Invalid ticker: {"Info":{"err-code":"invalid-parameter","err-msg":"invalid symbol","status":"error","ts":1620872079355},"High":0,"Low":0,"Sell":0,"Buy":0,"Last":0,"Volume":0,"OpenInterest":0,"Time":0}
یہاں غلطی کے پیغام کا مطلب ہے کہ لین دین کا جوڑا غلط ہے (جیسا کہ یہاں دیکھا جا سکتا ہے۔"err-msg":"invalid symbol")。
مثال کے طور پر، کاروبار سے متعلق بہت سی خرابیاں ہیں، مثال کے طور پر، لیوریج سیٹ کرتے وقت، کچھ ایکسچینجز ڈیسیمل پارٹس کے ساتھ لیوریج ویلیو کو سپورٹ نہیں کرتی ہیں، اگر لیوریج ویلیو ڈیسیمل پارٹس پر مشتمل ہو تو یہ بھی ایک سبب بن جائے گی۔ انٹرفیس کال کی خرابی۔
ایک انٹرفیس کال کی فہرست بنائیں جو نیٹ ورک کی درخواست پیدا نہ کرے۔
فیوچر کنٹریکٹ کوڈ سیٹ کریں۔ کچھ انٹرفیس سسٹم میں صرف کچھ عالمی متغیرات کو سیٹ کرتے ہیں اور نیٹ ورک کی درخواستیں تیار نہیں کرتے ہیں، مثال کے طور پر:

تاہم، اگر پیرامیٹرز کو غلط طریقے سے پاس کیا گیا یا تصادفی طور پر لکھا گیا تو غلطیاں پیدا ہوں گی۔

تاہم، اس بات سے کوئی فرق نہیں پڑتا ہے کہ یہ کس قسم کی خرابی ہے، ظاہر کردہ غلطی کا پیغام مسئلہ کو تلاش کرنے کے لیے کلیدی معلومات ہے، اور عام طور پر غلطی کے پیغام سے مسئلے کی نشاندہی کی جا سکتی ہے۔ آپ غلطی کے پیغامات کا ترجمہ کرنے اور کلیدی معلومات نکالنے کے لیے ترجمے کے ٹولز استعمال کر سکتے ہیں۔ مثال کے طور پر، اوپر کی مثال میں"err-msg":"invalid symbol", ترجمہ: “err msg”: “غلط علامت”۔ آپ شاید جانتے ہوں گے کہ تجارتی جوڑے کی ترتیبات غلط ہیں، کیونکہ انگریزی علامتیں عام طور پر تجارتی کوڈز اور تجارتی جوڑوں کی نمائندگی کے لیے استعمال ہوتی ہیں۔
ہم غلطی کی معلومات پر مختصراً گفتگو کریں گے ایک پوسٹ ہے جو استفسار کے لیے عام سوالات جمع کرتی رہے گی: https://www.fmz.com/bbs-topic/1427۔
بیک ٹیسٹنگ سسٹم بھی ایک مقداری ٹول میں ایک اہم نکتہ ہے بیک ٹیسٹنگ سسٹم آسانی سے حکمت عملی کے نمونوں کی جانچ کر سکتا ہے اور ابتدائی طور پر حکمت عملی میں ممکنہ کیڑوں اور منطقی مسائل کی جانچ کر سکتا ہے۔ ہمیں بیک ٹیسٹنگ سسٹم کے بارے میں عقلی ہونے کی ضرورت ہے۔ بیک ٹیسٹنگ سسٹم حکمت عملی کے کچھ مسائل کو ایک حد تک ظاہر کر سکتا ہے۔
ذیل میں ہم FMZ کے ذریعے تعاون یافتہ مختلف حکمت عملی زبانوں کے تناظر میں FMZ پلیٹ فارم پر بیک ٹیسٹنگ سسٹم کی مختصر وضاحت کریں گے۔ (بیک ٹیسٹنگ سسٹم کے کچھ تعارف کا ذکر پچھلے مضامین میں کیا گیا تھا)
براؤزر سائیڈ بیک ٹیسٹنگ مقامی ہارڈویئر وسائل کا استعمال کرتی ہے۔
کسٹوڈین پر بیک ٹیسٹنگ کرتے وقت، آپ منتخب کر سکتے ہیں کہ کس کسٹوڈین کو مختص کرنا ہے (یا تو آپ کا اپنا نگہبان یا FMZ پلیٹ فارم کا پبلک کسٹوڈین)۔ FMZ پلیٹ فارم پر عوامی محافظوں پر بھاری بوجھ کے پیش نظر، بیک ٹیسٹنگ کے لیے لوکل کسٹوڈین کو استعمال کرنے کی سفارش کی جاتی ہے (یہ بھی تیز تر ہوگا۔ پبلک کسٹوڈین کے ساتھ بیک ٹیسٹنگ کرتے وقت، جب بہت زیادہ کام ہوتے ہیں جو بوجھ سے زیادہ ہوتے ہیں، کچھ بیک ٹیسٹنگ۔ کاموں کو منسوخ کر دیا جائے گا، جس کے نتیجے میں بیک ٹیسٹنگ میں تاخیر ہوگی (پیمائش میں رکاوٹ)۔
اسکرپٹنگ زبانوں کے برعکس، C++ پالیسیاں مرتب کرنے کی ضرورت ہے اس سے پہلے کہ ان پر عمل کیا جا سکے۔ C++ زبان کی حکمت عملی سب سے پہلے FMZ پلیٹ فارم (سرور) پر مرتب کی جائے گی (اگر کوڈ کے ساتھ کوئی مسئلہ ہے تو، تالیف ناکام ہو سکتی ہے اور غلطی کا پیغام پاپ اپ ہو جائے گا)۔ تالیف کے بعد، FMZ پلیٹ فارم (سرور) پر بیک ٹیسٹ کریں۔
بنیادی نفاذ جاوا اسکرپٹ ہے، اور بیک ٹیسٹنگ براؤزر کی طرف بھی کی جاتی ہے۔
بنیادی نفاذ جاوا اسکرپٹ ہے، اور بیک ٹیسٹنگ براؤزر کی طرف بھی کی جاتی ہے۔
موجد کوانٹیٹیو ٹریڈنگ پلیٹ فارم کے بیک ٹیسٹنگ سسٹم میں بیک ٹیسٹنگ کے دو طریقے ہیں (یہ حکمت عملی کی زبانوں میں فرق نہیں کرتا، یہ بیک ٹیسٹنگ سیٹنگ ہے، اور مختلف زبانوں میں بیک ٹیسٹنگ کی حکمت عملی ایک جیسی ہے)۔

بیک ٹیسٹنگ سسٹم پر ہدایات کے لیے، براہ کرم پلیٹ فارم ٹیوٹوریل میں دی گئی معلومات کو دیکھیں:
https://www.fmz.com/bbs-topic/4158#%E7%AD%96%E7%95%A5%E5%9B%9E%E6%B5%8B
K线中一根柱子不是有高开低收么,构成了一个价格框架,在这个K线代表的时间范围内,价格都在这个价格框架内,所以只要生成的价格在这个K线高开低收框架范围内,这个模拟出来的价格就是合理的。
جیسا کہ شکل میں نقلی ہے: https://www.fmz.com بلاشبہ، جب حقیقی بیک ٹیسٹنگ سسٹم اس تخروپن کو نافذ کرتا ہے، تو صورت حال اس سے کہیں زیادہ پیچیدہ ہوتی ہے جو کہ ہم یہاں نقلی سطح کے بیک ٹیسٹنگ کے طریقہ کار کو سمجھیں گے۔ اس اصول کو جانتے ہوئے، ہمیں نقلی سطح کی بیک ٹیسٹنگ کے نقصانات پر توجہ دینے کی ضرورت ہے، حالانکہ نقلی سطح کی بیک ٹیسٹنگ بہت تیز ہوتی ہے (کیونکہ سمولیشن سے پیدا ہونے والی قیمتیں حقیقی قیمتیں نہیں ہوتیں جو ایک سیکنڈ کے بعد ایک سیکنڈ میں جاری کی جاتی ہیں)۔ لیکن اگر حکمت عملی فٹ بیٹھتی ہے۔نقلی ٹک تبدیلی کا رجحاناس سے حکمت عملی بہت اچھی کارکردگی کا مظاہرہ کرے گی (لیکن اصل حالات میں قیمت اس طرح نہیں بڑھ سکتی ہے، حالانکہ قیمت اس K-لائن کالم کے فریم ورک کے اندر ہے)۔ نقلی ٹک ڈیٹا بنانے کے لیے استعمال ہونے والی K-لائن کو بنیادی K-لائن کہا جاتا ہے، اور اس K-لائن کی مدت کو کہا جاتا ہے۔نیچے کے لائن سائیکل، اسے سیٹ کریں جیسا کہ پالیسی سیٹنگ پیج میں دکھایا گیا ہے:
یہاں 1 منٹ کی ترتیب کا مطلب ہے کہ 1 منٹ کی مدت کے ساتھ K-لائن ڈیٹا کو نقلی ٹِکس بنانے کے لیے ڈیٹا سورس کے طور پر استعمال کیا جاتا ہے۔
ایک اور نکتہ یہ ہے کہ اعلی تعدد کی حکمت عملیوں کے لیے، ظاہر ہے کہ نقلی سطح کی بیک ٹیسٹنگ کا استعمال کرنا مناسب نہیں ہے۔ تاہم، رجحان کی حکمت عملیوں کے لیے، نقلی سطح کی بیک ٹیسٹنگ کا استعمال اب بھی ایک خاص حد تک حکمت عملی کی کارکردگی کو ظاہر کر سکتا ہے۔

موجد کوانٹیٹیو ٹریڈنگ پلیٹ فارم بیک ٹیسٹنگ سسٹم کا ڈیٹا کہاں سے آتا ہے؟ بیک ٹیسٹنگ سسٹم FMZ پلیٹ فارم کے ڈیٹا سینٹر کا ڈیٹا بطور ڈیفالٹ استعمال کرتا ہے۔

FMZ API دستاویزات میں حسب ضرورت ڈیٹا کے ذرائع کے بارے میں کچھ ہدایات بھی ہیں: https://www.fmz.com/api#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90
FMZ لائبریری میں کچھ حل بھی ہیں:

دلچسپی رکھنے والے نئے بچے اس کا مطالعہ کر سکتے ہیں اور اس کا حوالہ دے سکتے ہیں۔
پروگرامیٹک اور مقداری تجارت لازم و ملزوم ہے۔مطالعہ、ٹیسٹ、سوچو。 آپ خلا میں مسائل کے بارے میں نہیں سوچ سکتے، یہ غیر موثر ہوگا۔ مسائل کو حل کرنے اور ان کے بارے میں سوچنے کا سب سے مؤثر طریقہ ہے۔معلومات تلاش کریں۔،پھرخود ہی آزمائیں۔、سوچ کا تجزیہاگر مسئلہ حل نہیں ہوتا ہے، تو براہ کرم مندرجہ بالا اقدامات کو دہرائیں۔
لیکن عام طور پر جب کسی نوزائیدہ کو کسی مسئلے کا سامنا ہوتا ہے تو وہ محسوس کرتے ہیں:
“اوہ ~ پروگرامنگ، مقدار، اور حکمت عملی لکھنا بہت مشکل ہے۔” “میں اسے ایک طویل عرصے سے دیکھ رہا ہوں، لیکن میں اب بھی الجھن میں ہوں!” “میں نے ابھی تک شروعات نہیں کی ہے اور میں ہار ماننا چاہتا ہوں!” ….
FMZ پلیٹ فارم پر شروع کرنا دراصل بہت آسان ہے، سب سے پہلے آپ کو معلومات حاصل کرنے میں مہارت حاصل کرنے کی ضرورت ہے۔ Inventor Quantitative Trading Platform Strategy Plaza, Community, and Library میں حوالہ کے لیے کافی معلومات دستیاب ہیں۔

اس کے بعد بیک ٹیسٹنگ سسٹم اور ڈیبگنگ ٹولز کا استعمال ٹیسٹنگ کو آسان بنا سکتا ہے۔ درحقیقت، اگر آپ کو بالکل بنیادی معلومات نہیں ہیں، تو آپ FMZ مقداری بیک ٹیسٹنگ سسٹم پر جاوا اسکرپٹ پروگرامنگ کی بنیادی باتیں بھی سیکھ سکتے ہیں۔
یہ وہ ٹیوٹوریل ویب سائٹ ہے جہاں میں اکثر JS سیکھتا ہوں: https://www.runoob.com/js/js-loop-for.html یہ صرف JS تک محدود نہیں ہے، یہاں ہر قسم کے IT علم کو تلاش اور سیکھا جا سکتا ہے۔ مثال کے طور پر، میں نہیں جانتا کہ جے ایس کا ریگولر ایکسپریشن کیسے استعمال کیا جائے، مجھے کیا کرنا چاہیے؟ یقینا، پہلے معلومات کو چیک کریں، اور پھر اسے آزمائیں~
میں نے اس طرح کی ایک مثال دیکھی:
میں اس کی جانچ کرنا چاہتا ہوں، اور میں جانچ اور سیکھنے کے لیے FMZ پلیٹ فارم کا بیک ٹیسٹنگ سسٹم بھی استعمال کر سکتا ہوں۔
بیکٹیسٹ سسٹم پر تصادفی طور پر ایکسچینج سیٹ اپ کریں۔

درج ذیل کوڈ کی جانچ کریں:
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return reg.test(str);
}
function main() {
var strEmailAddress1 = "13512345678"
Log(strEmailAddress1, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress1))
var strEmailAddress2 = "[email protected]"
Log(strEmailAddress2, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress2))
}

دیکھو ~ سیکھنے کا کیا زبردست ٹول ہے! مثال کے طور پر، میں جاوا اسکرپٹ میں لوپ لاجک لکھنے کا طریقہ سیکھنا چاہتا ہوں، تو آئیے اسے آزماتے ہیں:
ارے متغیر کے عناصر کو اس ترتیب میں لوپ کریں جس ترتیب سے وہ صف میں دکھائی دیتے ہیں:
function main() {
var arr = [{coinName: "BTC", price: 10000}, {coinName: "LTC", price: 100}, {coinName: "ETH", price: 2000}, {coinName: "ETC", price: 500}]
for (var i = 0 ; i < arr.length ; i++) {
Log(arr[i])
}
}

کیا آپ فوری طور پر مطالعہ کرنے کے لیے حوصلہ افزائی محسوس کرتے ہیں؟ درحقیقت، FMZ پر، آپ بیک ٹیسٹنگ سسٹم پر JavaScript کی بنیادی باتیں سیکھتے ہوئے JavaScript ٹیوٹوریل دیکھ سکتے ہیں۔ اگلے مرحلے میں داخل ہونے کے لیے، آپ کو جانچ کے لیے ڈیٹا حاصل کرنے کے لیے ایکسچینج انٹرفیس استعمال کرنے کی ضرورت ہے۔ڈیبگنگ ٹولزحقیقی انٹرفیس ٹیسٹنگ انجام دیں۔
پھر آپ کو مزید سوچنے کی ضرورت ہے، ایک مثال سے اندازہ لگانا، جانچنا اور تصدیق کرنا، موازنہ کرنا اور تجزیہ کرنا وغیرہ۔ اس طرح آپ بہت جلد شروع کر سکتے ہیں۔