متحرک رسک ایڈجسٹ لیوریج ٹریڈنگ سسٹم


تخلیق کی تاریخ: 2023-10-16 16:00:52 آخر میں ترمیم کریں: 2023-10-16 16:00:52
کاپی: 0 کلکس کی تعداد: 774
1
پر توجہ دیں
1617
پیروکار

متحرک رسک ایڈجسٹ لیوریج ٹریڈنگ سسٹم

جائزہ

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

حکمت عملی کا اصول

اس نظام میں درج ذیل مراحل ہیں:

  1. 14 دن کے اے ٹی آر سائیکل کے لئے اے ٹی آر کی قیمت کا حساب لگائیں اور اسے موجودہ اختتامی قیمت پر تقسیم کریں۔

  2. معیاری اے ٹی آر کی 100 دن کی سادہ منتقل اوسط ((SMA) کا حساب لگائیں۔

  3. معیاری اے ٹی آر کو 100 دن کے ایس ایم اے کے تناسب سے حساب لگائیں۔

  4. تناسب کے الٹ ((2 / تناسب) کے مطابق ہدف لیور کا تعین کریں۔

  5. ہدف لیوریج کو 5 سے ضرب کرکے ہدف کی پوزیشنوں کی تعداد کا حساب لگائیں۔

  6. چارٹ پر ہدف کھولی پوزیشنوں کی تعداد اور موجودہ کھولی پوزیشنوں کی تعداد کا نقشہ لگائیں۔

  7. چیک کریں کہ آیا خریدنے کا موقع ہے ((اگر موجودہ پوزیشنوں کی تعداد ہدف سے کم ہے) یا خالی پوزیشن کا موقع ((اگر موجودہ پوزیشنوں کی تعداد ہدف سے زیادہ ہے تو 1) ۔

  8. اگر خریدنے کا موقع ملتا ہے تو ، ایک سے زیادہ پروٹوکول بنائیں اور تجارت کو اوپن ٹریڈس صف میں شامل کریں۔

  9. اگر صفائی کا موقع ہے اور اوپن ٹریڈس صف میں کوئی تجارت ہے تو ، تازہ ترین تجارت کو صاف کریں اور اسے صف سے حذف کریں۔

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

طاقت کا تجزیہ

یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:

  1. متحرک طور پر لیوریج اور پوزیشن کی تعداد کو ایڈجسٹ کریں ، مارکیٹ میں اتار چڑھاؤ کی شرح میں تبدیلی کے مطابق خطرے کی نالی کو ایڈجسٹ کریں۔ جب اتار چڑھاؤ کی شرح کم ہو تو ، لیوریج اور پوزیشن کی تعداد میں اضافہ کریں ، جب اتار چڑھاؤ کی شرح زیادہ ہو تو ، لیوریج اور پوزیشن کی تعداد کو کم کریں ، خطرے کو مؤثر طریقے سے کنٹرول کریں۔

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

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

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

  5. اس حکمت عملی میں کم پیرامیٹرز ہیں اور اسے لاگو کرنا اور اس پر عمل کرنا آسان ہے۔

  6. حکمت عملی واضح اور سمجھنے کے لئے آسان ہے، کوڈ کی ساخت معقول ہے، بہتر بنانے کے لئے آسان اور بار بار.

خطرے کا تجزیہ

اس حکمت عملی کے کچھ خطرات بھی ہیں:

  1. اے ٹی آر اشارے صرف ماضی کی اتار چڑھاؤ کی عکاسی کرتے ہیں ، مستقبل میں اتار چڑھاؤ کی شرح میں تبدیلی کی پیش گوئی نہیں کی جاسکتی ہے ، جس سے لیورج ایڈجسٹمنٹ کو غلط بنایا جاسکتا ہے۔

  2. جب رجحان الٹ جاتا ہے تو ، پیراڈائزڈ اسٹورز کا طریقہ نقصانات کو جمع کرنے کا سبب بن سکتا ہے۔

  3. صف ریکارڈ کھلنے کی پوزیشن صرف سادہ کھلنے کی پوزیشن آپریشن کے لئے موزوں ہے ، اگر کھلنے کی منطق زیادہ پیچیدہ ہے تو اس سے زیادہ پیچیدہ ڈیٹا ڈھانچے کی ضرورت ہے۔

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

  5. ایک ہی اشارے کو گمراہ کرنے کے لئے آسان ہے ، استحکام کو بہتر بنانے کے لئے دوسرے اتار چڑھاؤ کے اشارے یا مشین لرننگ الگورتھم کو شامل کرنے پر غور کیا جاسکتا ہے۔

اصلاح کی سمت

اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:

  1. اسٹاپ نقصان کی حکمت عملی میں اضافہ ، جب نقصان اسٹاپ نقصان تک پہنچ جاتا ہے تو فعال اسٹاپ نقصان ہوتا ہے۔

  2. اشارے کے پیرامیٹرز کو بہتر بنائیں ، مختلف اے ٹی آر سائیکل پیرامیٹرز کی تاثیر کی جانچ کریں۔

  3. مختلف پوزیشن کھولنے کی حکمت عملیوں کو آزمائیں ، جیسے پوزیشنوں کی مقررہ تعداد ، اور جانچ پڑتال کریں۔

  4. دوسرے اشارے کے ساتھ استعمال کریں جو اتار چڑھاؤ کی پیمائش کرتے ہیں ، جیسے برن بینڈ WIDTH ، KD ، RSI ، وغیرہ۔

  5. سمپلکس ہموار کرنے کے بجائے مشین لرننگ کے طریقوں کا استعمال کرتے ہوئے اتار چڑھاؤ کی شرح کی پیش گوئی کریں۔

  6. پوزیشن کھولنے کی تعداد کے حساب کو بہتر بنانے کے لئے ، اے ٹی آر ضرب یا اتار چڑھاؤ کی شرح فنکشن جیسے طریقوں کا استعمال کیا جاسکتا ہے۔

  7. مزید تفصیلات ریکارڈ کریں ، جیسے پوزیشن کھولنے کی قیمت ، وقت ، وغیرہ ، حکمت عملی کے تجزیہ اور اصلاح کے لئے۔

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L - Risk Adjusted Leveraging", overlay=false, pyramiding=25, default_qty_value=20, initial_capital=20000, default_qty_type=strategy.percent_of_equity,process_orders_on_close=false, calc_on_every_tick=false)

atr = ta.atr(14) / close
avg_atr = ta.sma(atr,100)
ratio = atr / avg_atr

targetLeverage = 2 / ratio
targetOpentrades = 5 * targetLeverage

plot(targetOpentrades)
plot(strategy.opentrades)
isBuy = strategy.opentrades < targetOpentrades
isClose = strategy.opentrades > targetOpentrades + 1

var string[] openTrades = array.new_string(0)

if(isBuy)
    strategy.entry("Buy"+str.tostring(array.size(openTrades)),strategy.long)
    array.push(openTrades, "Buy" + str.tostring(array.size(openTrades)))

if(isClose)
    if array.size(openTrades) > 0
        strategy.close(array.get(openTrades, array.size(openTrades) - 1))
        array.pop(openTrades)