
بصری ماڈیول کی تعمیر کی تجارتی حکمت عملی سیکھیں - تعارفی باب، اور بصری ماڈیولز کی تعمیر اور تقسیم کے بارے میں تصوراتی سمجھ حاصل کریں۔ پھر دوسرے ماڈیولز کو استعمال کرنا سیکھنا آسان ہے۔ کچھ اور پیچیدہ افعال کو یکجا کیا جا سکتا ہے۔
پچھلے مطالعات اور ٹیسٹوں میں، ہم کئی “لین دین کے زمرے” کے ماڈیولز کے ساتھ رابطے میں آئے ہیں۔ مثال کے طور پر: “ایکسچینج کوٹس” ماڈیول “متبادل K-لائن حاصل کریں” ماڈیول …
میں ان کے بارے میں تفصیلات میں نہیں جاؤں گا جو پہلے ہی استعمال ہو چکے ہیں۔

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

درحقیقت، یہ مندرجہ ذیل جاوا اسکرپٹ پالیسی کوڈ کو کال کرنے جیسا ہے۔
function main () {
Log(exchanges.length)
}
آئیے اس مشترکہ ماڈیول کو چلانے کے نتائج دیکھیں:

آپ دیکھ سکتے ہیں کہ ہم نے 3 ایکسچینج آبجیکٹ شامل کیے ہیں، جو تین مختلف ایکسچینج اکاؤنٹس کی نمائندگی کرتے ہیں، اور بیکٹیسٹ لاگ آؤٹ پٹ کا نتیجہ 3 ہے۔

تین ایکسچینج اشیاء کو شامل کرنے پر، ڈراپ ڈاؤن باکس تین اختیارات دکھائے گا۔
لوپ کی قسم میں پہلے سے ایک لوپ ماڈیول سیکھیں۔

آئیے پہلے سے مشروط فیصلے کا ماڈیول سیکھتے ہیں:
فیصلے کی شرط اس طرح لکھی جا سکتی ہے:

ہم لوپ ماڈیول کا استعمال کرتے ہیں تاکہ شامل کردہ تبادلے کے ناموں پر تکرار کریں۔ مشروط فیصلے کے ماڈیول کا استعمال اس بات کا تعین کرنے کے لیے کریں کہ آیا موجودہ لوپ کا شمار پرنٹ کیے جانے والے تبادلے کے نام سے مطابقت رکھتا ہے۔

بیک ٹیسٹ رن کے نتائج:

JavaScript حکمت عملی کوڈ کی طرح:
function main () {
for (var i = 1 ; i <= exchanges.length ; i++) {
if (i == 1) {
Log(exchanges[0].GetName())
} else if (i == 2) {
Log(exchanges[1].GetName())
} else {
Log(exchanges[2].GetName())
}
}
}

ایک سادہ مثال پہلے ایکسچینج آبجیکٹ کا ٹریڈنگ جوڑا فی الحال سیٹ کرتی ہے اور اسے ٹیکسٹ متغیر (متغیر زمرے میں پہلے سے تیار کردہ) کو تفویض کرتی ہے۔
بیک ٹیسٹنگ کے نتائج:

اگر آپ JavaScript پالیسی کوڈ کو کال کرتے ہیں:
function main () {
var text = exchange.GetCurrency()
Log(text)
}
یہ ماڈیول بہت اہم ہے اور آرڈر کی کارروائیوں کے لیے استعمال کیا جاتا ہے۔
دوسری ٹینون (ڈاٹ) پوزیشن آرڈر کی مقدار کے متغیر کو سرایت کرتی ہے، جو آرڈر کی مقدار کو بتانے کے لیے استعمال ہوتی ہے۔
مثال کے طور پر، ہم 10 یوآن سلپیج کے ساتھ، موجودہ ٹک مارکیٹ ڈیٹا کی تازہ ترین قیمت کی بنیاد پر خرید آرڈر دینے، آرڈر کی مقدار کو 0.1 سکے پر سیٹ کرنے، اور آرڈر ID پرنٹ کرنے کی ایک مثال بنائیں گے۔

بیک ٹیسٹ رن کے نتائج:

درج ذیل جاوا اسکرپٹ پالیسی کوڈ کی طرح:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
Log(id)
}

یہ ماڈیول موجودہ تجارتی جوڑے کے لیے تمام نامکمل آرڈرز واپس کر دے گا، واپس کیا گیا ڈھانچہ ایک فہرست ہے، جس پر فہرست قسم کے ماڈیولز (ٹریورسل آپریشنز وغیرہ) کے ذریعے کارروائی کی جا سکتی ہے۔ مثال کے طور پر: ہم اوپر والے آرڈر ماڈیول کی مثال [4] میں قدرے ترمیم کرتے ہیں اور آرڈر دیتے وقت 10 یوآن کی قیمت کو 10 یوآن کی قیمت گھٹا کر تبدیل کرتے ہیں۔ آرڈر پر فوری طور پر عمل نہیں کیا جائے گا، لیکن خرید و فروخت کی گہرائی میں زیر التواء رہے گا (یعنی خرید 1، خرید 2، اور خرید N کے درمیان ایک خاص سطح پر)، تاکہ آرڈر ایک زیر التواء آرڈر میں ہو جس پر عمل درآمد کا انتظار کیا جا رہا ہو۔ اس کے بعد ہم زیر التواء حالت میں آرڈرز کی فہرست حاصل کرنے کے لیے “موجودہ تجارتی جوڑی کا ٹرسٹمنٹ آرڈر حاصل کریں” ماڈیول کا استعمال کرتے ہیں (عمل درآمد کے انتظار میں)۔ مارکیٹ کے بعد کے حالات میں آرڈرز پر عمل درآمد سے بچنے کے لیے اور بیک ٹیسٹ کے حتمی مشاہدے کو متاثر کرنے کے لیے، “موجودہ تجارتی جوڑے کا ٹرسٹمنٹ آرڈر حاصل کریں” کے ماڈیول پر عمل درآمد اور آرڈر لسٹ پرنٹ آؤٹ ہونے کے بعد، ہم فوری طور پر “تھرو استثناء” کا استعمال کرتے ہیں۔ پروگرام کو روکنے کے لیے ماڈیول۔

بیک ٹیسٹنگ شوز:

خرید آرڈر کی قیمت اس وقت کی تازہ ترین قیمت سے 10 یوآن کم ہے، لہذا لین دین فوری طور پر مکمل نہیں ہوگا۔ پھر وہ احکامات حاصل کریں جو عملدرآمد کے منتظر ہیں اور انہیں پرنٹ کریں۔ آخر میں، پروگرام کو روکنے کے لیے ایک رعایت دی جاتی ہے۔
پورا جمع ماڈیول جاوا اسکرپٹ کی حکمت عملی کو کال کرنے جیسا ہے۔
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
Log(exchange.GetOrders())
throw "stop"
}

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

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

جاوا اسکرپٹ پالیسی کی تفصیل کا استعمال:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
Log(id2)
var orders = exchange.GetOrders()
Log(orders)
for (var i in orders) {
var order = orders[i]
Log(exchange.CancelOrder(order.Id))
}
}

یہ ماڈیول آرڈر آئی ڈی متغیر ماڈیول کو ماڈیول کی ٹینن (مقعد) پوزیشن سے جوڑ کر تفصیلی آرڈر کی معلومات واپس کر سکتا ہے۔

چلانے کے بعد واپس آنے والے آرڈر پر توجہ دیں:

[5] مثال میں چلنے والے نتائج کے مقابلے میں، یہ پایا جا سکتا ہے کہ پرنٹ شدہ آرڈر ایک الگ آرڈر کی معلومات ہے۔[] مربع بریکٹ میں لپیٹا۔
چونکہ مثال [5] ایک فہرست واپس کرتی ہے، یہ مثال ایک ہی آرڈر کی معلومات واپس کرتی ہے (ماڈیول کے ذریعے پاس کردہ ٹینن پوزیشن پر ID متغیر ماڈیول کی بنیاد پر حاصل کی گئی)۔
مندرجہ بالا مثال جاوا اسکرپٹ پالیسی پر عمل کرنے کے مترادف ہے:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(exchange.GetOrder(id))
}
ہم مندرجہ بالا ماڈیولز کا ایک ایک کرکے مطالعہ کریں گے، اور ٹیسٹ ایکسچینج کو کموڈٹی فیوچر پر سیٹ کریں گے۔
بیک ٹیسٹنگ کی ترتیبات:
مندرجہ ذیل مثال اس سیٹ اپ کی پشت پناہی کرتی ہے۔

کموڈٹی فیوچرز کے کھلنے اور بند ہونے کے اوقات ہوتے ہیں، جب آپ بازار بند ہوتے ہیں تو آپ جڑ نہیں سکتے۔

جب ایکسچینج آبجیکٹ کو فیوچر ایکسچینج کے طور پر کنفیگر کیا جاتا ہے، اگر آپ معاہدہ طے نہیں کرتے ہیں اور براہ راست مارکیٹ کی معلومات حاصل کرتے ہیں، تو ایک غلطی کی اطلاع دی جائے گی:

ہم نے معاہدہ MA909 پر مقرر کیا، جو میتھانول کا موجودہ اہم معاہدہ ہے۔
اس طرح، MA909 معاہدے کی موجودہ ٹک مارکیٹ میں تازہ ترین قیمت کی قیمت حاصل کی جاتی ہے۔
پھانسی کے آرڈر کے ماڈیول میں

آرڈر کی سمت بتانے کی ضرورت ہے کیونکہ مستقبل میں ہے:
خرید: ایک لمبی پوزیشن کھولیں۔
فروخت کریں: ایک مختصر پوزیشن کھولیں۔
closebuy : بند لمبی پوزیشن
closesell : بند مختصر پوزیشن
چار سمتیں (کموڈٹی فیوچر کے پاس دو مزید سمتیں ہیں: closebuy_today آج لمبی پوزیشنوں کو بند کرتا ہے، closesell_today آج مختصر پوزیشنوں کو بند کرتا ہے)۔
مثال کے طور پر، اگر آرڈر ماڈیول خریدنے کے لیے سیٹ کیا گیا ہے، تو اس کے دو معنی ہیں: لمبی پوزیشن کھولیں اور مختصر پوزیشن بند کریں، جس سے ابہام پیدا ہوتا ہے۔ لہذا، آرڈر کی واضح سمت متعین کرنے کے لیے “سیٹ فیوچرز ٹریڈنگ آرڈر ڈائریکشن” ماڈیول کی ضرورت ہے۔

بیک ٹیسٹنگ شوز:

JavaScript حکمت عملی کوڈ کی طرح:
function main () {
while (true) {
if (exchange.IO("status")) {
exchange.SetContractType("MA909")
Log(exchange.GetTicker().Last)
exchange.SetDirection("buy")
Log(exchange.Buy(1000, 1))
throw "stop"
} else {
Log("未连接商品期货前置机")
}
Sleep(1000)
}
}
ڈیجیٹل کرنسی فیوچرز کا استعمال بنیادی طور پر اوپر [8] میں کموڈٹی فیوچرز کے استعمال جیسا ہے۔
OKEX کو بطور مثال لیتے ہوئے، معاہدہ کوڈ یہ ہو سکتا ہے:
BitMEX :
لیوریج ماڈیول سیٹ کرنا

ڈیجیٹل کرنسی فیوچرز کے لیے لیوریج سیٹ کرنے کے لیے استعمال کیا جاتا ہے۔
# 注意 : 回测不支持。
جیسا کہ جاوا اسکرپٹ کی حکمت عملی میں ہے:
function main () {
exchange.SetMarginLevel(10)
}
تصور کی مثال کی حکمت عملی:
مزید حکمت عملی یہاں دستیاب ہیں: https://www.fmz.com/square
اس سلسلے کے دیگر مضامین