ابتدائی، اسے چیک کریں آپ کو کریپٹوکرنسی مقداری تجارت میں لے جائیں (2)

مصنف:نینا باداس, تخلیق: 2022-04-19 16:46:53, تازہ کاری: 2022-04-20 16:56:43

ابتدائی، اسے چیک کریں آپ کو کریپٹوکرنسی مقداری تجارت میں لے جائیں (2)

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

پروگرام شدہ ٹریڈنگ اسکرپٹ

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

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

    • رجحان کی حکمت عملی آسان الفاظ میں ، یہ رجحان کی پیروی کرنے اور ایک ہی پوزیشن رکھنے کی حکمت عملی ہے ، جیسے دوہری حرکت پذیر اوسط ، ایم اے سی ڈی اور دیگر حکمت عملی۔

    • واپسی کی حکمت عملی مثال کے طور پر، گرڈ کی حکمت عملی، اتار چڑھاؤ مارکیٹوں میں قیمتوں میں اتار چڑھاؤ سے واپسی حاصل کرنا.

    • ہائی فریکوئنسی حکمت عملی سادہ لفظوں میں ، یہ مارکیٹ مائکرو اسٹیکچر ، قوانین ، مواقع وغیرہ کو دریافت کرنے کے لئے کچھ الگورتھم کے ذریعہ اعلی تعدد کی تجارت کا انعقاد کرنے کی حکمت عملی ہے۔

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

    • ایک علامت کی حکمت عملی اس کا مطلب یہ ہے کہ حکمت عملی صرف ایک علامت کو کام کر سکتی ہے ، جیسے بی ٹی سی تجارت یا ای ٹی ایچ تجارت کرنا۔

    • کثیر علامت حکمت عملی سادہ الفاظ میں، یہ ایک حکمت عملی منطق کی طرف سے کئی علامتوں کو چلانے کے لئے ہے.

    • کثیر اکاؤنٹ کی حکمت عملی سادہ الفاظ میں ، یہ ایک بوٹ پر متعدد ایکسچینج آبجیکٹ کی تشکیل کرنا ہے (پلیٹ فارم کا تصور پچھلے مضمون میں متعارف کرایا گیا ہے ، اور API KEY کے ساتھ تشکیل شدہ ایکسچینج آبجیکٹ پلیٹ فارم اکاؤنٹ کی نمائندگی کرتا ہے۔ مثال کے طور پر ، کچھ آرڈر سپروائزنگ حکمت عملیوں میں ، متعدد اکاؤنٹس ایک ساتھ آپریشن کی پیروی کریں گے (جو ایک ہی پلیٹ فارم یا مختلف پلیٹ فارمز کے اکاؤنٹس ہوسکتے ہیں) ۔ مختصر یہ کہ ، ایک بوٹ میں متعدد ایکسچینج آبجیکٹ (اکاؤنٹس) کا انتظام کیا جاتا ہے۔

    • کثیر منطق کی حکمت عملی مثال کے طور پر، MACD حکمت عملی، حرکت پذیر اوسط حکمت عملی، گرڈ کی حکمت عملی، وغیرہ ایک بوٹ پر ایک ہی وقت میں ڈیزائن کیا جاتا ہے (یقینا، یہ مختلف تبادلے کے اشیاء کو چلانے کے لئے ہے، اور ایک ہی آپریشن کے ساتھ تبادلے کے اشیاء اس بات پر منحصر ہے کہ مخصوص حکمت عملی منطقی طور پر متصادم ہے یا نہیں)

  • پلیٹ فارم API انٹرفیس پروگرام شدہ ٹریڈنگ اسکرپٹ پلیٹ فارم اکاؤنٹ کو کس طرح چلاتا ہے؟ جواب پلیٹ فارم کے ذریعہ کھولی گئی API انٹرفیس کے ذریعے ہے۔ لہذا پلیٹ فارمز کے لئے کس قسم کے انٹرفیس کھلے ہیں؟ پچھلے مضمون میں ، ہم نے بات کی تھی کہ پلیٹ فارمز میں عام طور پر پلیٹ فارم سیکشن میں REST اور ویب ساکٹ انٹرفیس ہوتے ہیں۔ یہاں ہم حکمت عملی کے طریقہ کار کے پہلو سے کچھ تصورات شامل کرتے ہیں۔ پلیٹ فارم انٹرفیس کو اس بات کے مطابق تقسیم کیا جاتا ہے کہ آیا اس کی تصدیق کی گئی ہے (ریسٹ اور ویب ساکٹ دونوں) ، یعنی تصدیق شدہ اور غیر تصدیق شدہ۔

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

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

      ایف ایم زیڈ کوانٹ پر ، جب API افعال کو کال کرتے ہیں جن کی تصدیق کی ضرورت ہوتی ہے (نجی انٹرفیس ، جو انکیپسولڈ ہیں اور پلیٹ فارم کی تصدیق کی ضرورت ہوتی ہے) ۔ اگر API KEY کی تشکیل غلط ہے تو ، اس قسم کے فنکشن کو کال کرنے سے غلطی کی اطلاع ہوگی ، اور null لوٹ آئے گی۔

    تو، FMZ کوانٹ ٹریڈنگ پلیٹ فارم پر ان انٹرفیس کو کیسے استعمال کریں؟

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

    تو، کس طرح FMZ کوانٹ پر متحد اعمال اور تعریفوں کے بغیر کچھ پلیٹ فارم انٹرفیس کا استعمال کرنے کے لئے؟

    ان پلیٹ فارم انٹرفیس میں شامل ہیں: اثاثہ کی منتقلی ، مشروط آرڈر ، بیچ آرڈر ، بیچ آرڈر منسوخی ، آرڈر میں ترمیم وغیرہ۔ کچھ پلیٹ فارمز میں یہ انٹرفیس موجود ہیں ، کچھ پلیٹ فارمز میں نہیں ، اور افعال اور استعمال کی تفصیلات کافی مختلف ہوسکتی ہیں ، لہذا ان انٹرفیس تک رسائی حاصل کی جاسکتی ہےexchange.IOFMZ Quant پر فنکشن (تفصیلی معلومات کے لیے دیکھیں FMZ Quant ٹریڈنگ پلیٹ فارم API دستاویزات:https://www.fmz.com/api#exchange.io..ایف ایم زیڈ کوانٹ کے اسکوائر میں کچھ عملی آئی او مثال کی حکمت عملی بھی ہیں۔

کیا FMZ API دستاویزات میں تمام API افعال نیٹ ورک کی درخواست کرسکتے ہیں؟

ہمیں یہ بتانے کی ضرورت ہے کہ پلیٹ فارم API میں رسائی کی تعدد کی حد ہے (مثال کے طور پر ، 1 سیکنڈ میں 5 بار) ۔ رسائی بہت کثرت سے نہیں ہوسکتی ہے ، ورنہ http 429 کی غلطی کی اطلاع دی جائے گی ، اور رسائی مسترد کردی جائے گی (زیادہ تر پلیٹ فارمز کی رپورٹ 429) ۔ لہذا ، ایف ایم زیڈ کوانٹ پر انکیپسولڈ پلیٹ فارم انٹرفیس کو کال کرنے کی بھی حد ہے ، لیکن API افعال کو کال کرنے کی کوئی حد نہیں ہے جو نیٹ ورک کی درخواستیں نہیں کرتے ہیں۔
ایف ایم زیڈ کوانٹ پر تمام API افعال نیٹ ورک کی درخواستیں نہیں کرسکتے ہیں۔ ایف ایم زیڈ پر کچھ API افعال صرف کچھ مقامی ترتیبات میں ترمیم کرتے ہیں ، جیسے موجودہ تجارتی جوڑی ، معاہدہ کوڈ اور اشارے کے حساب کے فنکشن کی ترتیب ، نیز تبادلہ آبجیکٹ کا نام حاصل کرنا وغیرہ۔ بنیادی طور پر ، ایک فنکشن کے استعمال سے ، آپ اس بات کا تعین کرسکتے ہیں کہ آیا نیٹ ورک کی درخواست کی جائے گی۔ جب تک یہ پلیٹ فارم کے ڈیٹا کو حاصل کرنا ہے ، یا پلیٹ فارم اکاؤنٹ کو چلانا ہے ، نیٹ ورک کی درخواست کی جائے گی۔ ان تمام انٹرفیسز کو کال کی تعدد پر توجہ دینے کی ضرورت ہے۔

  • آئیے FMZ Quant پر API افعال کے استعمال کے کئی عام مسائل اور تجربات کے بارے میں بات کرتے ہیں۔

    • غلطی کا رواداری یہ سب سے عام غلطی ہے ، جس نے بے شمار ابتدائیوں کو پریشان کیا ہے۔ اکثر ، حکمت عملی کا بیک ٹیسٹ اچھا ہوتا ہے اور سب کچھ معمول پر ہوتا ہے۔ بوٹ تھوڑی دیر کے لئے چلنے کے بعد بوٹ غیر معمولی کیوں کام کرتا ہے (جو کسی بھی وقت متحرک ہوسکتا ہے) ؟

      img

      حکمت عملی لکھتے وقت ، انٹرفیس کے ذریعہ واپس آنے والے ڈیٹا کی تصدیق کرنے کی ضرورت ہے۔ مثال کے طور پر ، ایف ایم زیڈ کوانٹ پر ٹکر حاصل کرنے کا کوڈ (جو پلیٹ فارم انٹرفیس تک براہ راست رسائی کے ل your اپنے پروگرام کو لکھنے کے برابر ہے):var ticker = exchange.GetTicker()؛ اگر ہمیں استعمال کرنے کی ضرورت ہے توLast(آخری قیمت) متغیر میںticker(آپ کو فنکشن GetTicker کی واپسی کی ساخت کا حوالہ دے سکتے ہیں) ، ہمیں اعداد و شمار حاصل کرنے کی ضرورت ہے (نئی قیمت کیا ہے؟ نئی: تازہ ترین؛ قیمت: قیمت؛ یہ درست ہے، ان کو یکجا کریں!)

      اب، یہ ٹھیک ہے اگر تقریبGetTicker()معمول کے اعداد و شمار کو لوٹاتا ہے؛ اگر ایک ٹائم آؤٹ کی درخواست، نیٹ ورک کی خرابی، پلیٹ فارم کیبل سے دور ھیںچیں، کھدائی کی طرف سے ٹوٹ کیبلز، یا بچوں کو بجلی کے سوئچ کو بند کر دیا، تقریبGetTicker()لوٹ آئے گاnullفی الحال، کی قدرtickerہےnull؛ جب میں رسائی حاصلLastاس کا، اسٹریٹجک پروگرام پروگرام استثناء کی طرف سے روک دیا جائے گا. اس سے یہ لگتا ہے کہ انٹرفیس کال کی ناکامی (GetTicker کی کال ناکامی اور null لوٹاتا ہے) حکمت عملی بوٹ کی روک تھام کی براہ راست وجہ نہیں ہے (براہ راست وجہ یہ ہے کہ ایک وصف کی ہےnullمتغیر تک رسائی حاصل کی جاتی ہے) ۔ صورت حال ہے کہ انٹرفیس کال کی ناکامی کی اطلاع دیتا ہے کہ ایک غلطی بوٹ کو روکنے کا سبب نہیں بنے گی (توجہ یہاں شامل ہے).

      تو، ہم روبوٹ کے غیر معمولی سٹاپ سے بچنے کے لئے کیا کرنا چاہئے؟
      جواب انٹرفیس کی طرف سے واپس آئے اعداد و شمار کے لئے غلطی رواداری عمل کرنا ہے؛ یہ بہت آسان ہے، اور آپ کو صرف واپس آئے اعداد و شمار ہے یا نہیں کا فیصلہ کرنے کی ضرورت ہےnull(یہاں جاوا اسکرپٹ کو ایک مثال کے طور پر لے لو، کیونکہ دیگر زبانیں اسی طرح کی ہیں). ایک چھوٹا سا کوڈ کا حصہ لکھیں (جو صرف ہدایات کے لئے ہے، اور براہ راست چلانے کے لئے نہیں کیا جا سکتا!)

      var ticker = exchange.GetTicker()
      if (ticker) {
          var newPrice = ticker.Last
          Log("Print the latest price:", newPrice)
      } else {
          // data is null, so no operation will make no problem 
      }
      

      نہ صرفGetTickerانٹرفیس کو غلطی برداشت کرنے والی پروسیسنگ کرنے کی ضرورت ہے ، لیکن نیٹ ورک کی درخواستوں کے ساتھ انٹرفیس کو واپسی کی قیمت کے لئے غلطی برداشت کرنے والی پروسیسنگ کرنے کی ضرورت ہے (اگر آپ فنکشن کی واپسی کی قیمت استعمال کرتے ہیں) بہت سے غلطی رواداری کے طریقوں ہیں._C()فنکشن (ایف ایم زیڈ اے پی آئی دستاویزات کا حوالہ دیں) اپنی غلطی برداشت کرنے والی فنکشن لکھنے اور اپنی غلطی برداشت کرنے والے میکانزم اور منطق کو ڈیزائن کرنے کے لئے۔

      کے استعمال کے بارے میں_C()اس کے علاوہ، بہت سے نئے طالب علموں کو بھی غلط استعمال کرنے کا بہت امکان ہے._C()فنکشن ایک فنکشن ریفرنس ہے، فنکشن کال نہیں._C(funcName, param1, param2); کال درست ہے؛ funcName میں کراس نہیں ہے، اور param1 اور param2 فنکشن funcName میں درآمد کرنے والے پیرامیٹرز ہیں۔_C(funcName(param1, param2))؛ کال غلط ہے؛ عام طور پر اگر کوئی نیا رکن ایف ایم زیڈ اے پی آئی دستاویزات کو احتیاط سے نہیں پڑھتا ہے تو ، یہ اس طرح لکھا جائے گا۔

    • اسپاٹ مارکیٹ میں خریدنے کے آرڈر کی رقم

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

      ٹریڈنگ جوڑی کو اس طرح ترتیب دیں:LTC_USDT

      function main() {
          exchange.IO("simulate", true)   // switch to OKEX simulated bot 
          exchange.Buy(-1, 1)             // the price is -1, representing the placed order is market order; the amount of 1 means the order amount of 1 USDT
      }
      

      چونکہ پلیٹ فارمز میں عام طور پر آرڈر کی رقم کی حد ہوتی ہے ، لہذا اس حد سے کم رقم والے آرڈرز کو نہیں رکھا جائے گا (مثال کے طور پر ، بائننس اسپاٹ کو صرف 5USDT سے زیادہ کی رقم کے احکامات کی ضرورت ہوتی ہے تاکہ کامیابی کے ساتھ رکھا جاسکے) ۔ لہذا ، اس طرح کا آرڈر دینے سے غلطی کی اطلاع ہوگی:

      error	Buy(-1, 1): map[code:1 data:[map[clOrdId: ordId: sCode:51020 sMsg:Order amount should be greater than the min available amount. tag:]] msg:]
      
    • فیوچر آرڈر کی سمت

      فیوچر کی حکمت عملی کرتے وقت ، ابتدائی اکثر آرڈر کی سمت میں غلطیاں کرتے ہیں۔ ایف ایم زیڈ کوانٹ پر حکمت عملی لکھنے کی مثال لیتے ہوئے ، آئیے پہلے API دستاویزات پر تفصیل دیکھیں:https://www.fmz.com/api#exchange.setdirection...

      img

      کیونکہ آرڈر رکھنے کی تقریب صرف ہےBuyاورSellتاہم، فیوچر (یقینی طور پر، اسپاٹ کے لئے کوئی مسئلہ نہیں ہے، اسپاٹ صرف خریدنے اور فروخت ہے) کھولنے طویل، بند طویل، مختصر کھولنے، اور مختصر بند کرنے کی سمت ہے، تو ظاہر ہے خریدیں اور فروخت بہت سے سمتوں میں آپریشنز کا اظہار نہیں کر سکتے ہیں، تو یہ فنکشن متعارف کرانے کے لئے ضروری ہےexchange.SetDirection()فیوچر ٹریڈنگ کی سمتوں کا تعین کرنے کے لئے. FMZ پر،exchange.SetDirection("buy")(جو سب سے پہلے سمت پہلے مقرر کرتا ہے) کے ساتھ مل کر استعمال کیا جاتا ہےexchange.Buy، جس کا مطلب ہے کہ جو آرڈر دیا گیا ہے وہ طویل پوزیشن کھولنے کا آرڈر ہے۔ اور اسی طرح:

      استعمالexchange.SetDirection("sell")اورexchange.Sellایک دوسرے کے ساتھ، جس میں رکھا حکم کی نمائندگی کرتا ہے مختصر پوزیشنوں کو کھولنے کے لئے ایک حکم ہے. استعمالexchange.SetDirection("closebuy")اورexchange.Sellایک دوسرے کے ساتھ، جس میں رکھا حکم کی نمائندگی کرتا ہے ایک طویل پوزیشن کو بند کرنے کے لئے ایک حکم ہے. استعمالexchange.SetDirection("closesell")اورexchange.Buyایک دوسرے کے ساتھ، جس میں رکھا حکم کی نمائندگی کرتا ہے مختصر پوزیشنوں کو بند کرنے کے لئے ایک حکم ہے. beginners، عام طور پر استعمال کریں گےexchange.SetDirection("sell")اورexchange.Buyپھر، ایک غلطی کی اطلاع دی جائے گی (ایک غلطی بیک ٹیسٹ میں رپورٹ نہیں کی جا سکتی، لیکن یہ واضح طور پر ایک منطقی غلطی ہے، جو میرے جیسے جنونی مجبوری لوگوں کی طرف سے نظر انداز نہیں کیا جا سکتا ہے.) یہ ایک اور غلطی ہے جو عام طور پر ابتدائی افراد کرتے ہیں۔

      function main() {
          exchange.SetContractType("quarter")   // set the current contract to a quarterly contract 
          exchange.SetDirection("sell")
          var id = exchange.Sell(-1, 1)    
          Log("placed market order, executed, get positions", exchange.GetPosition())    
          exchange.SetDirection("closebuy")   // use closebuy and Sell together, yes, no problem 
          exchange.Sell(-1, 1)
      }
      

      img
      جب یہ یہاں آتا ہے، تو آپ پوچھ سکتے ہیں:" میرے پاس پوزیشنیں ہیں، اور closebuy اور فروخت ایک ساتھ استعمال کرتے ہیں، تو ایک غلطی کی اطلاع کیوں دی جاتی ہے اور میں پوزیشنوں کو بند نہیں کر سکتا؟" میں کہوں گا:غلط سمت پوزیشنوں کو بند کرنے کے لئے! آپ طویل پوزیشنوں کو بند کر دیا. اس کے علاوہ، غلطی ایک اور صورت حال میں ہو سکتا ہے: قریب پوزیشن سمت کی ترتیب درست ہے، آرڈر رکھنے کی تقریب کا استعمال بھی درست ہے، اور آپ کو بھی سمت میں پوزیشنوں کو برقرار رکھنے، لیکن غلطی اب بھی رپورٹ کیا جاتا ہے. اس کی وجہ یہ ہوسکتی ہے: آپ کے پروگرام نے بہت سارے آرڈر دیئے ہیں ، ابتدائی طور پر آرڈرز پر عمل درآمد نہیں کیا جاتا ہے ، اور بند پوزیشنوں کے آرڈر اب مارکیٹ میں ہیں اور عمل درآمد کے منتظر ہیں۔ اس وقت ، پروگرام پوزیشنوں کو بند کرتا رہتا ہے ، جس سے بند پوزیشنوں سے تجاوز کرنے کی غلطی پیدا ہوگی۔

    • لاگ ان برآمد اور تجارتی معلومات کی نمائش پروگرام شدہ اور مقداری تجارتی حکمت عملیوں کا ڈیزائن اور تحریر انسان کمپیوٹر تعاملات کے ڈیزائن سے الگ نہیں ہے ، جیسے ڈیٹا ڈسپلے اور آپریشن لاگس ایکسپورٹ ۔ عام طور پر بوٹ اسکرپٹ اور حکمت عملی پروگراموں کو لکھنے کے لئے مقامی پروگرامنگ زبان کا استعمال کریں۔ براہ راست موجودہ زبان کے آؤٹ پٹ فنکشن کا استعمال کریں۔ مثلاً: پیتھون استعمال کرتا ہےprint. جاوا اسکرپٹ استعمال کرتا ہےconsole.log. گولانگ کے استعمالfmt.Println(). C++ استعمالcout.

      آئیے ایف ایم زیڈ پر انفارمیشن ڈسپلے کے بارے میں بات کرتے ہیں۔ ایف ایم زیڈ کوانٹ پر ، معلومات کو ظاہر کرنے کے لئے بنیادی طور پر دو مقامات ہیں۔

      • اسٹیٹس بار بوٹ شروع ہونے کے بعد، بوٹ کا صفحہ مندرجہ ذیل طور پر دکھایا جاتا ہے:

        img

        ڈسپلے کا حصہ اسٹیٹس بار کی معلومات ہے۔ اسٹیٹس بار بنیادی طور پر کچھ ریئل ٹائم بدلتے ہوئے ڈیٹا کو ظاہر کرنے کے لئے استعمال ہوتا ہے (کیونکہ ریئل ٹائم تبدیلیوں کو ریئل ٹائم میں مشاہدہ کرنے کی ضرورت ہوتی ہے ، اور ہر بار لاگ کے طور پر پرنٹ نہیں کیا جاسکتا ہے ، لہذا اس قسم کے ڈیٹا کو اسٹیٹس بار میں دکھایا جاسکتا ہے۔ اگر ہر ایک کا لاگ پرنٹ کریں تو ، بہت سارے بے معنی بار بار ڈیٹا ہوں گے ، جو استفسار کو متاثر کرتے ہیں۔ حالت بار پر دکھائے گئے اعداد و شمار کا استعمال کرتا ہےLogStatusتفصیلات کے لئے، براہ مہربانی FMZ API دستاویزات سے رجوع کریں.

      • لاگ بار یہ بٹ صفحے پر بھی ہے، جیسا کہ مندرجہ ذیل تصویر میں دکھایا گیا ہے:

        img

        ڈسپلے کا حصہ لاگ بار ہے۔ لاگ بار بنیادی طور پر کسی خاص وقت پر کچھ ڈیٹا کو مستقل طور پر ریکارڈ کرنے ، یا کسی خاص وقت پر کسی خاص حکمت عملی کے عمل کو ریکارڈ کرنے کے لئے استعمال ہوتا ہے۔ لکڑی کو مختلف اقسام میں تقسیم کیا جاتا ہے:

        1. عام لاگ؛ FMZ حکمت عملی حکمت عملی لاگ میں آؤٹ پٹ اور پرنٹ کرنے کے لئے لاگ فنکشن کا استعمال کرتا ہے.

        img

        1. آرڈر لاگ؛ استعمالexchange.Sell/exchange.Buyایک FMZ حکمت عملی میں خود کار طریقے سے لاگ میں ریکارڈ آؤٹ پٹ کرے گا.

        img

        1. منسوخی کا نوشتہ؛exchange.CancelOrderایک FMZ حکمت عملی میں استعمال کیا جاتا ہے، اور منسوخی لاگ خود کار طریقے سے لاگ میں آؤٹ پٹ کیا جائے گا.

        img

        1. غلطی کا نوشتہ۔ جب ایف ایم زیڈ حکمت عملی چل رہی ہے ، اور نیٹ ورک کی درخواست کے لئے انٹرفیس میں کال کی غلطی ہے ، اور ایک استثناء پھینک دیا جاتا ہے (جیسے throw بیان) ، غلطی کا نوشتہ خود بخود لاگ میں آؤٹ پٹ ہوجائے گا۔

        img

      ایف ایم زیڈ اے پی آئی افعال میں ، افعال جو لاگ آؤٹ پٹ تیار کرسکتے ہیں ، جیسے لاگ ((...) ، تبادلہ.خریداری ((قیمت ، رقم) ، تبادلہ.منسوخ آرڈر ((آئی ڈی) ، وغیرہ ، کے بعد کچھ اضافی آؤٹ پٹ پیرامیٹرز کے ساتھ ہوسکتے ہیں ، جیسے: تبادلہ۔ منسوخ آرڈر ((آرڈرز[ج]۔آئی ڈی ، آرڈرز[ج]) ؛ یہ آرڈر کی ترتیب[ج] منسوخ ہونے پر آرڈر کی معلومات کو اضافی طور پر آؤٹ پٹ کرنا ہے۔

      function main() {
          Log("data1", "data2", "data3", "...")
          var data2 = 200
          var id = exchange.Sell(100000, 0.1, "additional data1", data2, "...")
          exchange.CancelOrder(id, "additional data1", data2, "...")
          LogProfit(100, "additional data1", data2, "...")
      }
      
    • اشارے کے افعال کا استعمال اشارے کے فنکشن کے بارے میں بات کرنے سے پہلے ، آئیے پہلے یہ سمجھیں کہ اشارے کیا ہے۔ آسان الفاظ میں ، یہ ایک لائن ہے جیسے حرکت پذیر اوسط ، ایم اے سی ڈی ، یا اے ٹی آر۔

      س:یہ اشارے کیسے پیدا کیے جاتے ہیں؟ A: وہ یقینی طور پر حساب سے پیدا ہوتے ہیں.

      س: ان کا حساب کس چیز پر لگایا جاتا ہے؟ A: K- لائن ڈیٹا.

      س: کیا آپ ایک مثال دے سکتے ہیں؟ A: مثال کے طور پر سب سے آسان حرکت پذیر اوسط اشارے کو لے کر۔ اگر ہم اشارے کے حساب کے لئے ڈیٹا ماخذ کے طور پر روزانہ کی لائن (یعنی یانگ لائن یا ین لائن ایک دن کی نمائندگی کرتی ہے) کے اعداد و شمار کا استعمال کرتے ہیں۔ حرکت پذیر اوسط اشارے کا پیرامیٹر 10 ہے ، پھر حساب کتاب شدہ حرکت پذیر اوسط اشارے 10 دن کی حرکت پذیر اوسط ہے۔

      Q: اگر K لائن BAR کی تعداد 10 سے کم ہے تو کیا اوسط اشارے کا حساب لگایا جاسکتا ہے؟ A: نہ صرف حرکت پذیر اوسط اشارے کا حساب نہیں لگایا جاسکتا ہے ، بلکہ کوئی بھی اشارے مؤثر اشارے کی قیمت کا حساب نہیں لگا سکتا ہے جب K لائن ڈیٹا BAR کی تعداد اشارے کے دورانیے کے پیرامیٹر کو پورا نہیں کرتی ہے ، اور حساب شدہ صف کی متعلقہ پوزیشن خالی اقدار سے بھری ہوگی ، جیسے:nullظاہر ہوتا ہے جبJavaScriptحکمت عملی کا حساب کیا اشارے کے اعداد و شمار پرنٹ.

      میدان میں ایک درس دینے والی مثال ہے:https://www.fmz.com/strategy/125770اس تدریس مثال کی حکمت عملی کا بیک ٹیسٹ کریں، اور آپ بیک ٹیسٹ سسٹم اور 10 پیریڈ چلتی اوسط کی طرف سے پیدا کردہ چارٹ دیکھ سکتے ہیں:

      img

      حکمت عملی کے مطابق اپنی مرضی کے مطابق ڈرائنگ، تیار کردہ K لائن اور چلتی اوسط چارٹ:

      img

      س: اگر میں 10 گھنٹے کی اوسط استعمال کرنا چاہتا ہوں تو؟ A: ایک گھنٹے کی مدت کے K لائن ڈیٹا کا استعمال کریں.

      سادہ الفاظ میں ، ہم جس K لائن کو دیکھتے ہیں وہ ایک صف ہے جب ہم اسے ڈیجیٹائز کرتے ہیں (اگر آپ صف کے تصور کو نہیں سمجھتے ہیں تو ، آپ اسے بائیڈو پر تلاش کرسکتے ہیں) ، اور صف کا ہر عنصر ایک K لائن بار ہے ، جو ترتیب میں ترتیب دیا گیا ہے۔ صف میں پہلا عنصر موجودہ وقت سے سب سے دور ہے ، اور صف کا آخری عنصر موجودہ وقت سے قریب ترین ہے۔ عام طور پر K- لائن ڈیٹا کی آخری بار موجودہ مدت کی بار ہوتی ہے ، جو حقیقی وقت میں بدلتی ہے اور مکمل نہیں ہوتی ہے (آپ کسی پلیٹ فارم کے صفحے پر لاگ ان ہو کر اور اس کی K- لائن کا مشاہدہ کرکے تبدیلیوں کا مشاہدہ کرسکتے ہیں۔ حساب کتاب کے اشارے بھی K- لائن بار کے ساتھ ایک سے ایک مطابقت رکھتے ہیں۔ مذکورہ بالا مثال میں ، آپ دیکھ سکتے ہیں کہ ایک اشارے کی قیمت K- لائن بار سے مطابقت رکھتی ہے۔ نوٹ کریں کہ آخری K- لائن بار حقیقی وقت میں بدلتی ہے ، اور حساب کتاب کا اشارہ بھی K- لائن بار کی تبدیلی کے ساتھ بدل جائے گا۔

      ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر ، آپ ٹی اے لائبریری (ایف ایم زیڈ کے ذریعہ نافذ کردہ لائبریری ، جو ڈوکر میں مربوط ہے ، اور مختلف زبانوں میں براہ راست استعمال کی جاسکتی ہے) یا طالب (پرانے مشہور اشارے لائبریری طالب ، جو جے ایس ، سی ++ میں مربوط ہے؛ پائتھون کو اضافی طور پر انسٹال کرنے کی ضرورت ہے) استعمال کرسکتے ہیں۔ مثال کے طور پر، مندرجہ بالا مثال میں اوسط کا حساب: ایف ایم زیڈ ٹی اے لائبریری استعمال کریں:

      function main() {
          var records = exchange.GetRecords()
          var ma = TA.MA(records, 10)
          Log(ma)       // print average
      }
      

      طالب کا استعمال کریں:

      function main() {
          var records = exchange.GetRecords()
          var ma = talib.MA(records, 10)
          Log(ma)       // print average 
      }      
      

      حساب کتاب انڈیکس ڈیٹا ما ایک صف ہے، اور ہر عنصر ایک کے بعد ایک K لائن صف (ریکارڈ) کے مساوی ہے، یعنی،ma[ma.length -1]کے مطابق ہےrecords[records.length - 1]، اور اسی طرح.

      دوسرے زیادہ پیچیدہ اشارے کے لئے بھی یہی بات ہے، اور آپ کو MACD جیسے اشارے پر توجہ دینے کی ضرورت ہے۔

      var macd = TA.MACD(records)   // In this way, only the K-line data is passed in, and no indicator parameters are passed in. The indicator parameters use the default values, and that is the same for other indicator functions
      

      اس وقت ، متغیر macd ایک دو جہتی صف ہے (اگر آپ اس تصور کو نہیں سمجھتے ہیں تو آپ اسے بائیڈو کرسکتے ہیں۔) ایک دو جہتی صف صرف ایک صف ہے ، اور اس کا ہر عنصر بھی ایک صف ہے۔

      س: MACD اشارے کا ڈیٹا دو جہتی صف کیوں ہے؟ A: کیونکہ MACD اشارے دو لائنوں (ڈیف لائن اور ڈی ای اے لائن) اور حجم سلاخوں کا ایک سیٹ پر مشتمل ہے (MacD حجم بار کے اعداد و شمار، حقیقت میں، بھی ایک لائن کے طور پر سمجھا جا سکتا ہے).

      var dif = macd[0]
      var dea = macd[1]
      var macdbar = macd[2]
      

      یہاں بھی ایک تیار شدہ تدریس کی مثال ہے؛ اگر آپ دلچسپی رکھتے ہیں، تو آپ اسے مطالعہ کر سکتے ہیں:https://www.fmz.com/strategy/151972

      img


مزید