ٹریڈنگ کی حکمت عملی کی تعمیر کے لئے بصری ماڈیول - اعلی درجے کی تفہیم

مصنف:لیدیہ, تخلیق: 2022-12-13 14:11:36, تازہ کاری: 2023-09-20 09:53:59

img

ٹریڈنگ کی حکمت عملی کی تعمیر کے لئے بصری ماڈیول - اعلی درجے کی تفہیم

ہم نے سیکھا ہے ٹریڈنگ کی حکمت عملی کی تعمیر کے لئے نمائش ماڈیول - پہلی واقفیت، اور ہم بصری ماڈیول کی تعمیر اور splicing کے ایک تصوراتی سمجھ ہے، اگلا، یہ دوسرے ماڈیولز کو استعمال کرنے کے لئے سیکھنے کے لئے آسان ہے. کچھ زیادہ پیچیدہ افعال کو یکجا کرنا ممکن ہے۔

تجارتی زمرہ ماڈیول

پچھلے سیکھنے اور ٹیسٹنگ میں، ہم نے کئی تجارت کی قسم ماڈیولز کے ساتھ بے نقاب کیا ہے. مثلاً: Exchange Get Ticker ماڈیول ایکسچینج حاصل کریں OHLC ماڈیول ...

یہ استعمال کیا گیا ہے یہاں دوبارہ نہیں کیا جائے گا.

1۔ تبادلوں کی تعداد حاصل کریں

img

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

ہم ایک سادہ ڈھانچے میں فی الحال تشکیل شدہ تبادلے کی تعداد کو پرنٹ کر سکتے ہیں:

img

اصل میں، یہ اس طرح جاوا اسٹریٹجی کوڈ کو فون کرنے کی طرح ہے:

function main () {
    Log(exchanges.length)
}

آئیے اس مشترکہ ماڈیول کے چلانے کے نتائج پر ایک نظر ڈالتے ہیں:

img img img

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

2۔ تبادلہ نام حاصل کریں

img

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

img

پہلے سے ایک حالت فیصلہ ماڈیول سیکھیں:

img

فیصلے کی شرائط مندرجہ ذیل طور پر لکھا جا سکتا ہے:

img

ہم لوپ ماڈیول کا استعمال اضافی تبادلہ ناموں کو عبور کرنے کے لئے کرتے ہیں. ہم موجودہ لوپ گنتی پرنٹ کیا جا کرنے کے تبادلے کے نام کے مساوی ہے کہ آیا فیصلہ کرنے کے لئے حالت فیصلے ماڈیول استعمال کرتے ہیں.

img

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

img

جیسے جاوا اسٹریٹجی کوڈ:

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())
        }
    }
}

3۔ ایکسچینج کی موجودہ ٹریڈنگ جوڑی حاصل کریں

img

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

img

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

img img img

اگر آپ جاوا اسٹریٹجی کوڈ کو کال کرتے ہیں:

function main () {
    var text = exchange.GetCurrency()
    Log(text)
}

آرڈر ماڈیول

img

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

مثال کے طور پر، ہم ایک خرید آرڈر رکھنے کی ایک مثال کو موجودہ ٹک مارکیٹ کے اعداد و شمار کی تازہ ترین قیمت کی بنیاد پر 10 یوآن کی سلائیڈنگ قیمت کو شامل کرتے ہوئے، آرڈر کی مقدار کو 0.1 سککوں پر مقرر کرتے ہیں، اور آرڈر ID پرنٹ کرتے ہیں.

img

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

img

مندرجہ ذیل جاوا اسٹریٹجی کوڈ کی طرح:

function main () {
    var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
    Log(id)
}

موجودہ ٹریڈنگ جوڑی ماڈیول کے زیر التواء احکامات حاصل کریں

img

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

img

بیک ٹسٹنگ سے پتہ چلتا ہے کہ:

img

خرید آرڈر کی قیمت اس وقت کی تازہ ترین قیمت سے 10 یوآن کم تھی، لہذا اسے فوری طور پر پورا نہیں کیا جائے گا۔ پھر آرڈر کو زیر التواء ٹرانزیکشن کی حیثیت سے حاصل کریں، اور اسے پرنٹ کریں۔ آخر میں، پروگرام کو روکنے کے لئے ایک استثناء پھینک دیا جاتا ہے.

پورے جمع ماڈیول جاوا سکرپٹ کی حکمت عملی کے لئے ایک کال کی طرح ہے:

function main () {
    var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
    Log(id)
    Log(exchange.GetOrders())
    throw "stop"
}

6. آرڈر ماڈیول منسوخ کریں

img

یہ ماڈیول آرڈر منسوخ کرنے کے لیے استعمال ہوتا ہے۔

بہت سے منظرنامے ہیں جن میں حکمت عملی لکھنے کے دوران اس طرح کے آپریشن کی ضرورت ہوتی ہے۔

تمام موجودہ زیر التواء احکامات منسوخ کریں.

اس میں کوئی شک نہیں ہے کہ منسوخ آرڈر ماڈیول استعمال کرنا ضروری ہے۔ منسوخ آرڈر ماڈیول سیکھنے کے دوران ، ہم موجودہ ٹریڈنگ جوڑی ماڈیول کے زیر التواء آرڈرز حاصل کرنے کے لئے [5] استعمال کرسکتے ہیں ، اور اس فنکشن کو حاصل کرنے کے لئے مل سکتے ہیں۔

سب سے پہلے، تمام احکامات کی منسوخی کی جانچ کرنے کے لئے، یہ ایک آرڈر رکھنے کے لئے واضح نہیں ہے. ہم 2 احکامات رکھنے کے لئے شروع کرتے ہیں، ان کی قیمتوں اور مقدار دونوں احکامات کو الگ کرنے کے لئے مختلف ہیں.

img

Loop ماڈیول میں list ماڈیول میں ہر عنصر کو Traverse کا استعمال کرتے ہوئے زیر التواء احکامات کی موجودہ فہرست میں احکامات کو عبور کرنے کے لئے.

img

traversal کے دوران، ہر حکم بازیافت متغیر ماڈیول حکم (متغیر ماڈیول کی قسم میں پیدا، ذیل میں دکھایا گیا ہے کے طور پر) کے لئے ایک قدر تفویض کیا جاتا ہے:

img

Util ماڈیول استعمال کریں:

img

آرڈر آئی ڈی نکالیں، اسے آرڈر منسوخ کریں ماڈیول کے ٹینن (گھماؤ) پوزیشن میں منتقل کریں، اور آرڈر منسوخ کریں ماڈیول آرڈر منسوخی کو انجام دیتا ہے.

بیک ٹسٹ آپریشن:

img

جاوا اسٹریٹجی کی وضاحت کا استعمال کریں:

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))
    }
}

اس کے آرڈر ID کی بنیاد پر ایک حکم کی تفصیلات حاصل کرنے کے لئے ماڈیول

img

ماڈیول کی ٹینن (concave) پوزیشن ایک آرڈر ID متغیر ماڈیول سے منسلک ہے، اور آرڈر کی تفصیلات واپس کی جا سکتی ہیں.

img

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

img

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

مندرجہ بالا مثال جاوا سکرپٹ کی حکمت عملی کو انجام دینے کے لئے اسی طرح کی ہے:

function main () {
    var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
    Log(exchange.GetOrder(id))
}

فیوچر ٹریڈنگ ماڈیول

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

بیک ٹسٹنگ کی ترتیبات:

img

مندرجہ ذیل مثال کی ترتیبات کی بنیاد پر backtest انجام دیتا ہے.

  • CTP خام مال مستقبل اور مستقبل کی کمپنی کے سرور کے درمیان کنکشن کی حیثیت ماڈیول کا فیصلہ

img

خام مال کے فیوچر میں کھلنے اور بند ہونے کا وقت ہوتا ہے۔ جب مارکیٹ بند ہو جاتی ہے تو اس سے رابطہ نہیں کیا جا سکتا۔

  • سیٹ معاہدہ ماڈیول

img

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

ہم نے معاہدہ MA909 کے طور پر مقرر کیا، میتانول کا اہم معاہدہ فی الحال۔

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

  • فیوچر ٹریڈنگ کے لئے آرڈر سمت ماڈیول مقرر کریں

آرڈر پر عملدرآمد ماڈیول میں

img

آرڈر کی سمت کی وضاحت کرنے کی ضرورت ہے، کیونکہ مستقبل کے پاس: خریدنا: کھلی لمبی پوزیشن فروخت: کھلی مختصر پوزیشنیں closebuy: طویل پوزیشنوں کو بند کرنا close-sell: مختصر پوزیشن بند کرنا چار سمتیں (سامان کے فیوچر کے لیے دو اور سمتیں ہیں: آج طویل پوزیشنوں کو بند کرنے کے لیے closebuy_today اور آج مختصر پوزیشنوں کو بند کرنے کے لیے closeesell_today) ۔

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

img

بیک ٹسٹنگ ڈسپلے:

img

جیسے جاوا اسٹریٹجی کوڈ:

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("The commodity futures front-end processor is not connected")
        }
        Sleep(1000)
    }
}

ڈیجیٹل کرنسی فیوچر ٹریڈنگ ماڈیول

ڈیجیٹل کرنسی کے فیوچر کا استعمال بنیادی طور پر اسی طرح ہے جیسے اوپر [8] میں خام مال کے فیوچر

  • مثال کے طور پر OKEX کو لے کر، معاہدے کا کوڈ یہ ہو سکتا ہے:
    • this_week: اس ہفتے
    • next_week: اگلے ہفتے
    • سہ ماہی: سہ ماہی
    • تبادلہ: دائمی
  • BitMEX:
    • XBTUSD
    • ETHUSD
  • سیٹ لیورج ماڈیول

img

اس کا استعمال ڈیجیٹل کرنسی فیوچر کے لیورج کو مقرر کرنے کے لئے کیا جاتا ہے۔

#Note: Backtesting is not supported.

جیسے جاوا اسٹریٹجی:

function main () {
    exchange.SetMarginLevel(10)
}

تصوراتی حکمت عملی کی مثالیں:

https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318مزید حکمت عملیوں کے لئے، براہ کرم ملاحظہ کریں:https://www.fmz.com/square

اس سلسلے کے دیگر مضامین

  • تجارتی حکمت عملیوں کی تعمیر کے لئے نمائش ماڈیول - گہرائی میں (https://www.fmz.com/digest-topic/9509) تجارتی حکمت عملی کی تعمیر کے لئے نمائش ماڈیول - پہلی واقفیت (https://www.fmz.com/bbs-topic/9814) بورنگ پروگرامنگ آسانی سے بلڈنگ بلاکس کی طرف سے مکمل کیا جا سکتا ہے. یہ کوشش کرنے کے لئے بہت دلچسپ ہے!

متعلقہ

مزید