پچھلے مضامین میں ، ہم نے سیکھا ہے کہ نام نہاد پروگرامٹک اور مقداری تجارت ایک اسکرپٹ پروگرام ہے جو ایکسچینج سے حاصل کردہ اعداد و شمار پر مبنی ہے جس میں حساب کتاب ، فیصلوں اور ٹرگرز کی ایک سیریز کے ذریعہ کچھ کارروائیوں کو انجام دینے ، اور ایکسچینج اکاؤنٹ کو تجارت کرنے کے لئے چلانے کے لئے ہے۔ ڈیٹا حاصل کرنے اور آپریٹنگ اکاؤنٹس کو چلانے کے یہ اقدامات تمام ایکسچینج API انٹرفیس کے ذریعے کیے جاتے ہیں۔ آسان الفاظ میں ، اسکرپٹ پروگرام ایکسچینج کے ساتھ تعامل کرتا ہے۔ چونکہ یہ ایک تعامل ہے ، لہذا معمول کی تعامل اور غیر معمولی تعامل ہونا ضروری ہے۔ جب غیر معمولی تعامل ہوتا ہے تو ، انٹرفیس استثناء پیغام واپس کرتا ہے۔
یقینا ، مارکیٹ میں موجود پروگرامٹک اور مقداری تجارتی نظاموں میں ، یا خود تیار کردہ پروگراموں میں ہر طرح کے غلطی کے اشارے اور غلطی کے پیغامات موجود ہیں۔ یہ غلطی کے پیغامات صرف تبادلے کے API انٹرفیس کے ذریعہ رپورٹ کردہ غلطی کے پیغامات تک ہی محدود نہیں ہیں۔ پروگرام رن ٹائم استثناء کی غلطیاں ، تشکیل کی غلطیاں ، پروگرام گرائمر کی غلطیاں اور اسی طرح کی غلطیاں بھی ہیں۔
ایف ایم زیڈ کیونٹیٹیٹیو ٹریڈنگ پلیٹ فارم پر غلطی کے پیغامات بھی تقریباً کئی اقسام میں آتے ہیں:
حکمت عملی گرائمر کی غلطی یہ قسم کی غلطی سب سے عام ہے ، کیونکہ ابتدائی پروگرامنگ سے ناواقف ہے ، اور سیکھنے اور جانچ کے مرحلے کے دوران کوڈ لکھنے میں گرائمری کی غلطیاں ہوتی ہیں۔ مثال کے طور پر:
کوڈ میں قوسین جیسے حروف غائب ہیں۔ اس طرح کی غلطیاں عام طور پر حکمت عملی میں ترمیم کے صفحے پر دیکھی جاسکتی ہیں ، اور حکمت عملی کو چلانے کے قابل نہیں ہے (ایک غلطی براہ راست رن ٹائم پر رپورٹ کی جائے گی ، جیسا کہ نیچے دیئے گئے اعداد و شمار میں دکھایا گیا ہے۔)
لہذا حکمت عملی لکھنے کے بعد، پلیٹ فارم کی حکمت عملی میں ترمیم کے صفحے پر ایک معمول کی نظر ڈالیں کہ آیا سرخ XX ہے، اگر ایسا ہے تو، ایک واضح غلطی ہونا ضروری ہے.
حکمت عملی پروگرام BUG کی وجہ سے رن ٹائم پروگرام کی استثناء پروگرام میں ایک بگ ہے۔ جب پروگرام چل رہا ہے تو ، استثناء کو متحرک کرنے سے پروگرام غیر معمولی طور پر رک جائے گا اور اس طرح کے غلطی کے پیغامات ظاہر ہوں گے۔
اس طرح کی غلطیاں پروگرام کو غیر معمولی بناتی ہیں اور پروگرام چلانے سے روکتا ہے۔
غلط ترتیب اور ترتیبات کی وجہ سے غلطیاں
ایف ایم زیڈ پلیٹ فارم پر ، ٹریڈنگ جوڑی کو یکساں طور پر اس کی شکل میں بیان کیا گیا ہےX_Y
، جہاں X ٹریڈنگ کرنسی کا نام ہے، اور Y نامزد کرنسی کا نام ہے (فيوچر کرنسی پر مبنی معاہدے کی ٹریڈنگ جوڑی کی نامزد کرنسی عام طور پر امریکی ڈالر میں بیان کی جاتی ہے، جیسا کہ پچھلے مضامین میں بیان کیا گیا ہے) ، جیسے:BTC_USDT
، میں نے ٹریڈنگ جوڑی تصادفی لکھتے ہیں تو، یہ لکھنے کے طور پرBTC-USDT
.
ایف ایم زیڈ پلیٹ فارم بیک ٹیسٹنگ سسٹم پر ایک غلطی کی اطلاع دی گئی ہے:
مزید برآں، ایک ایسی غلطی جس سے ابتدائی اکثر سامنا کرتے ہیں:
اس قسم کی غلطی کا سبب ایف ایم زیڈ پلیٹ فارم اکاؤنٹ پر پاس ورڈ میں تبدیلی ہے ، جس کے نتیجے میںAPI KEY
تشکیل شدہ تبادلہ آبجیکٹ میں (صارف
انٹرفیس کال میں غلطی کی اطلاع دی گئی ہے
انٹرفیس کال کی غلطیوں کو اکثر ایک حکمت عملی چلانے کے دوران سامنا کرنا پڑتا ہے۔ پچھلے مضامین میں ، ہم نے سیکھا کہ ایف ایم زیڈ پلیٹ فارم پر انٹرفیس کو تقسیم کیا گیا ہےانٹرفیس جو نیٹ ورک کی درخواستیں پیدا کرتے ہیںاورانٹرفیس جو نیٹ ورک کی درخواستیں نہیں بناتے ہیں. انٹرفیس کی غلطی اسٹریٹجی پروگرام کو روکنے کا سبب نہیں بنے گی ، عام طور پر انٹرفیس کال استثناء کی وجہ سے اور غلط ڈیٹا واپس کیا جاتا ہے ، حکمت عملی غلطی برداشت نہیں کرتی ہے ، اور غلط ڈیٹا کی وجہ سے پروگرام کی استثناء کی غلطی پروگرام کو روکنے کا سبب بنتی ہے (پچھلے مضامین میں مذکور غلطی برداشت کا تصور) ۔
یہاں کئی انٹرفیس غلطی کے پیغامات ہیں جو نیٹ ورک کی درخواستوں کو پیدا کرتے ہیں:
نیٹ ورک ٹائم آؤٹ
ابتدائی افراد کو ملنے والے اکثر غلطی کے پیغامات میں سے ایک گھریلو نیٹ ورک کا سامان (اپنا کمپیوٹر یا گھریلو سرور) استعمال کرنا ہے۔ چونکہ زیادہ تر تبادلے مسدود ہیں ، لہذا گھریلو نیٹ ورک میں زیادہ تر تبادلے ناقابل رسائی ہیں ، اور رسائی انٹرفیس ٹائم آؤٹ کی اطلاع دے گی (پچھلے مضامین میں ذکر کیا گیا ہے) ۔
HTTP 429 غلطی
کلاسیکی غلطی کے پیغامات میں سے ایک یہ ہے کہ تبادلہ انٹرفیس کو بہت کثرت سے بلایا جاتا ہے ، جس سے تبادلہ کی تعدد کی حد سے تجاوز ہوتا ہے (پچھلے مضامین میں ذکر کیا گیا ہے) ۔
کچھ beginners کا کہنا ہے کہ ہو سکتا ہے کہ میں درخواست کرنا چاہوں گاAPI KEY
میں زیادہ تبادلے کے لئے درخواست دیتا ہوں یا میں زیادہ تبادلے کے اکاؤنٹس کے لئے درخواست دیتا ہوں۔ ہمیں یہ جاننے کی ضرورت ہے کہ تبادلے کے ذریعہ انٹرفیس تک رسائی کی حدود کی تعدد عام طور پر آئی پی پتوں پر مبنی ہوتی ہے۔ آسان الفاظ میں ، جب تک کسی آئی پی ایڈریس پر بھیجے گئے تمام درخواستوں کو اس آئی پی ایڈریس پر شمار کیا جاتا ہے ، تب تک تبادلے کا سرور اگر درخواست حد سے تجاوز کرے تو رسائی سے انکار کردے گا۔
ایکسچینج انٹرفیس کے کاروبار پر غلطی کی اطلاع
اوپر ذکر کردہ ٹائم آؤٹ اور 429 نیٹ ورک کی غلطیاں ہیں۔ اگر ایکسچینج انٹرفیس کے کاروبار میں کوئی مسئلہ ہے تو ، ایک غلطی کی اطلاع بھی دی جائے گی۔ مثال کے طور پر ، اگر میں اسپاٹ مارکیٹ کی قیمت حاصل کرنا چاہتا ہوں ، لیکن میں نے ایک غیر موجود تجارتی جوڑا ترتیب دیا ہے۔ میں نے اسے ایف ایم زیڈ پلیٹ فارم کے ڈیبگنگ ٹول میں آزمایا ، ڈیبگنگ ٹول ایک بہت ہی آسان ٹیسٹنگ ٹول ہے ، جو فنکشن کالز اور ڈیٹا اکوائری کے حقیقی بوٹ ٹیسٹنگ کے لئے بہت موزوں ہے۔
ڈیبگنگ ٹول عملدرآمد کے نتائج، ڈیبگنگ ٹول عملدرآمد اور حقیقی بوٹ عملدرآمد کے درمیان کوئی فرق نہیں ہے.
Huobi error 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"
in the above example, the translation is:
بیک ٹسٹنگ سسٹم ایک مقداری آلے کی توجہ بھی ہے۔ بیک ٹسٹنگ سسٹم حکمت عملی کے پروٹوٹائپ کو آسان طریقے سے ، ممکنہ کیڑے اور ابتدائی ٹیسٹ حکمت عملی میں منطقی مسائل کی جانچ کرسکتا ہے۔ بیک ٹسٹنگ سسٹم کو عقلی طور پر دیکھنے کی ضرورت ہے۔ بیک ٹسٹنگ سسٹم کسی حد تک حکمت عملی کے کچھ مسائل کی عکاسی کرسکتا ہے۔
مندرجہ ذیل ایف ایم زیڈ پلیٹ فارم پر بیک ٹسٹنگ سسٹم کی مختصر وضاحت ہے جو ایف ایم زیڈ کے ذریعہ تعاون یافتہ مختلف حکمت عملی زبانوں کی سطح سے ہے۔ (پچھلے مضامین میں بیک ٹسٹنگ سسٹم کے کچھ تعارفات کا ذکر کیا گیا تھا)
جاوا اسکرپٹ
براؤزر میں بیک ٹسٹنگ مقامی ہارڈ ویئر وسائل کا استعمال کرتا ہے.
پائیتھون
جب ڈوکر پر بیک ٹسٹنگ کرتے ہو تو ، آپ منتخب کرسکتے ہیں کہ کس ڈوکر کو تفویض کرنا ہے (یا تو آپ کے ذریعہ تعینات کردہ ڈوکر ، یا ایف ایم زیڈ پلیٹ فارم پر عوامی ڈوکر) ۔ ایف ایم زیڈ پلیٹ فارم پر عوامی محافظوں کے بڑے بوجھ کے پیش نظر ، بیک ٹسٹنگ کے لئے مقامی ڈوکر کا استعمال کرنے کی سفارش کی جاتی ہے (یہ بھی تیز ہوگا ، جب عوامی ڈوکر بیک ٹسٹنگ کر رہا ہے ، اگر ٹاسکس بوجھ سے تجاوز کرتے ہیں تو ، بیک ٹسٹنگ کے کچھ کاموں کو منسوخ کردیا جائے گا ، جس کے نتیجے میں بیک ٹسٹنگ میں خلل پڑتا ہے) ۔
C++
اسکرپٹنگ زبانوں کے برعکس ، سی ++ حکمت عملیوں کو مرتب کرنے اور پھر ان پر عمل درآمد کرنے کی ضرورت ہے۔ سی ++ زبان کی حکمت عملی کو پہلے ایف ایم زیڈ پلیٹ فارم (سرور) پر مرتب کیا جائے گا (اگر کوڈ میں کوئی مسئلہ ہے تو ، تالیف ممکن ہے کہ گزر نہ جائے ، اور غلطی کا پیغام براہ راست پاپ اپ ہوجائے گا۔ تالیف گزرنے کے بعد ، اسے ایف ایم زیڈ پلیٹ فارم (سرور) پر بیک ٹیسٹ کیا جائے گا۔
MyLanguage
بنیادی نفاذ جاوا اسکرپٹ ہے ، اور بیک ٹیسٹنگ براؤزر پر بھی کی جاتی ہے۔
مشاہدہ
بنیادی نفاذ جاوا اسکرپٹ ہے ، اور بیک ٹیسٹنگ براؤزر پر بھی کی جاتی ہے۔
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر بیک ٹیسٹنگ سسٹم کو بیک ٹیسٹنگ کے دو طریقوں میں تقسیم کیا گیا ہے (یہ حکمت عملی کی زبان سے قطع نظر ہے ، یہ بیک ٹیسٹنگ کی ترتیب ہے ، اور تمام زبانوں میں حکمت عملی بیک ٹیسٹنگ ایک جیسی ہے۔)
A bar in the K-line opens high and closes low, which constitutes a price framework, within which the prices are all in this price frame, so as long as the generated price opens high and closes low in this K-line frame within the range, the simulated price is reasonable.
یہ اس طرح ایک تخروپن کی طرح ہے:https://www.fmz.comیقینا، جب اصل بیک ٹیسٹنگ سسٹم اس تخروپن کو لاگو کرتا ہے، تو صورت حال اس سے کہیں زیادہ پیچیدہ ہے جو شکل میں دکھایا گیا ہے. اس اصول کو جانتے ہوئے ، یہ نوٹ کرنا ضروری ہے کہ مشابہت کی سطح پر بیک ٹسٹنگ کے نقصانات ، اگرچہ مشابہت کی سطح پر بیک ٹسٹنگ بہت تیز ہے (کیونکہ مشابہت سے پیدا ہونے والی قیمتیں حقیقی سیکنڈ فی سیکنڈ قیمتیں نہیں ہیں جو ایک ایک کرکے جاری کی جاتی ہیں) ۔ تاہم ، اگر حکمت عملی کو فٹ بیٹھتی ہےٹِک کی نقل و حرکت کا نمونہ، حکمت عملی بہت اچھی کارکردگی کا مظاہرہ کرے گی (لیکن حقیقت میں، قیمت اس رجحان نہیں ہوسکتی ہے، اگرچہ قیمت اس K لائن بار کے فریم ورک کے اندر ہے). K لائن یہاں تخروپن ٹک ڈیٹا پیدا کرنے کے لئے استعمال کیا جاتا ہے سب سے نیچے K لائن کہا جاتا ہے، اور اس K لائن کی مدت کہا جاتا ہےنیچے کی لائن کی مدت، جو حکمت عملی ترتیب دینے والے صفحے پر دکھائے گئے طور پر مقرر کیا گیا ہے:
یہاں 1 منٹ کی ترتیب کا مطلب یہ ہے کہ 1 منٹ کے عرصے کے ساتھ K لائن کے اعداد و شمار کا استعمال سیمولیٹ ٹک پیدا کرنے کے لئے ڈیٹا ماخذ کے طور پر کیا جاتا ہے۔
ایک اور نکتہ یہ ہے کہ اعلی تعدد کی حکمت عملیوں کے لئے ، ظاہر ہے کہ نقلی سطح پر بیک ٹیسٹنگ کا استعمال کرنا مناسب نہیں ہے۔ تاہم ، رجحان کی حکمت عملیوں کے لئے ، نقلی سطح پر بیک ٹیسٹنگ کا استعمال اب بھی کسی حد تک حکمت عملی کی کارکردگی کی عکاسی کرسکتا ہے۔
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم بیک ٹیسٹنگ سسٹم کا ڈیٹا ماخذ کہاں ہے؟ بیک ٹیسٹنگ سسٹم ڈیفالٹ کے مطابق ایف ایم زیڈ پلیٹ فارم کے ڈیٹا سینٹر کے ڈیٹا کا استعمال کرتا ہے۔ ایف ایم زیڈ پلیٹ فارم کا ڈیٹا سینٹر ہر تبادلے کی ہر کرنسی کے سیٹ مارکیٹ ڈیٹا کو خود بخود جمع کرتا ہے اور اسے پلیٹ فارم پر بیک ٹیسٹنگ سسٹم کو فراہم کرتا ہے۔
FMZ API دستاویزات میں اپنی مرضی کے مطابق ڈیٹا ذرائع کے بارے میں کچھ نوٹ بھی ہیں:https://www.fmz.com/api#custom-data-source
آپ پروگراماتی اور مقداری تجارت کے بغیر نہیں کر سکتےسیکھنا, جانچ، اورسوچنا. مسائل کے بارے میں سوچنا بیکار نہیں سوچا جاسکتا ، یہ غیر موثر ہے۔ مسائل کو حل کرنے اور مسائل کے بارے میں سوچنے کا سب سے موثر طریقہ یہ ہے کہمعلومات تلاش کریںپھراسے آزمائیں, سوچنا اور تجزیہ کرنا، اگر مسئلہ حل نہیں ہوتا ہے تو، براہ کرم اوپر کی کارروائیوں کو دہرائیں۔
لیکن جب ایک ابتدائی کو مشکلات کا سامنا کرنا پڑتا ہے تو وہ محسوس کرے گا:
اوپس~ یہ پروگرام کرنے، مقداری کرنے، اور حکمت عملی لکھنے کے لئے بہت مشکل ہے اسے کافی دیر تک دیکھنے کے بعد، میں ابھی بھی حیران ہوں! میں شروع کرنے سے پہلے ہٹا دینا چاہتا ہوں! ...
ایف ایم زیڈ پلیٹ فارم پر شروعات کرنا دراصل بہت آسان ہے۔ سب سے پہلے ، آپ کو معلومات تلاش کرنے میں اچھا ہونا چاہئے۔ ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم حکمت عملی اسکوائر ، کمیونٹی اور لائبریری میں بہت ساری معلومات دستیاب ہیں۔
دوسرا عملی صلاحیت ہے ، جسے بیک ٹیسٹنگ سسٹم اور ڈیبگنگ ٹولز کا استعمال کرتے ہوئے آسانی سے آزمایا جاسکتا ہے۔ اس کا مطلب یہ نہیں ہے کہ مکمل حکمت عملی کی جانچ کرنا ہے۔ در حقیقت ، اگر آپ مکمل طور پر بنیادی ہیں تو آپ ایف ایم زیڈ کوانٹ بیک ٹیسٹنگ سسٹم پر جاوا اسکرپٹ پروگراموں کی بنیادی باتیں بھی سیکھ سکتے ہیں۔
یہ سبق کی ویب سائٹ ہے جہاں میں اکثر جے ایس سیکھتا ہوں:https://www.runoob.com/js/js-loop-for.html، یہ صرف جے ایس تک محدود نہیں ہے، آئی ٹی کے تمام قسم کے علم کو یہاں پوچھا اور سیکھا جا سکتا ہے. مثال کے طور پر، میں JS کے باقاعدہ اظہار کا استعمال کرنے کا طریقہ نہیں جانتا، مجھے کیا کرنا چاہئے؟ یقینا، سب سے پہلے معلومات کی تلاش، اور پھر اسے کرنے کی کوشش کریں ~
میں نے اس کی ایک مثال دیکھی:میں اسے ٹیسٹ کرنا چاہتا ہوں، اور میں ٹیسٹ اور سیکھنے کے لیے ایف ایم زیڈ پلیٹ فارم کے بیک ٹیسٹنگ سسٹم کا استعمال کر سکتا ہوں۔
بیک ٹیسٹنگ سسٹم پر ایک بے ترتیب تبادلہ قائم کریں
مندرجہ ذیل کوڈ کی جانچ کریں:
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, " Is it an email address? ", " Answer: ", IsEmail(strEmailAddress1))
var strEmailAddress2 = "123456789@qq.com"
Log(strEmailAddress2, " Is it an email address? ", " Answer: ", 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])
}
}
کیا آپ ایک لمحے میں سیکھنے کے لئے حوصلہ افزائی محسوس کرتے ہیں؟ اصل میں ، ایف ایم زیڈ پر ، آپ جاوا اسکرپٹ ٹیوٹوریل کو دیکھتے ہوئے بیک ٹیسٹنگ سسٹم پر جاوا اسکرپٹ کی بنیادی باتیں سیکھ سکتے ہیں۔ جاوا اسکرپٹ گرائمر تقریبا master ماسٹر ہے ، اور اگلے مرحلے میں داخل ہونے پر ، آپ کو ڈیٹا ٹیسٹنگ حاصل کرنے کے لئے تبادلہ انٹرفیس استعمال کرنے کی ضرورت ہے۔ آپ یہ بھی استعمال کرسکتے ہیںڈیبگنگ کا آلہایف ایم زیڈ پلیٹ فارم کے حقیقی انٹرفیس ٹیسٹنگ کرنے کے لئے.
پھر یہ زیادہ سوچنا ہے، ایک کیس سے نتیجہ اخذ کرنا، ٹیسٹ کی تصدیق، تقابلی تجزیہ وغیرہ۔ اس سے سیکھنا شروع کرنا بہت تیز ہوجاتا ہے۔