ملٹی لیول RSI ریگریشن ٹریڈنگ حکمت عملی اور متحرک اتار چڑھاؤ ایڈجسٹمنٹ

RSI、PIVOT
تخلیق کی تاریخ: 2024-06-21 14:16:31 آخر میں ترمیم کریں: 2024-06-21 14:16:31
کاپی: 0 کلکس کی تعداد: 567
1
پر توجہ دیں
1617
پیروکار

ملٹی لیول RSI ریگریشن ٹریڈنگ حکمت عملی اور متحرک اتار چڑھاؤ ایڈجسٹمنٹ

جائزہ

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

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

  1. داخلے کی شرائط:

    • بنیادی اشارے کے طور پر 20 سائیکل RSI ((RSI20) استعمال کریں
    • ایک سے زیادہ RSI thresholds ((35/65، 30/70، 25/75، 2080) اور اسی طرح کے اتار چڑھاو کی شرح thresholds کے لئے مقرر
    • جب آر ایس آئی کسی حد تک پہنچ جاتا ہے اور موجودہ K لائن کا سائز اس کے مساوی اتار چڑھاؤ کی حد سے تجاوز کرتا ہے تو ، ایک انٹری سگنل شروع ہوتا ہے
    • اضافی شرط: قیمت کو حالیہ اونچائی / کم کی حمایت کی ایک خاص فیصد کو توڑنے کی ضرورت ہے
  2. جمع کرنے کا طریقہ کار:

    • زیادہ سے زیادہ 5 اندراجات کی اجازت ہے ((ابتدائی اندراج + 4 جمع)
    • ہر ایک پوزیشن کو سخت آر ایس آئی اور اتار چڑھاؤ کی شرطوں کو پورا کرنے کی ضرورت ہے
  3. باہر نکلنے کا طریقہ کار:

    • 5 مختلف سطحوں پر روکنے کا مقام مقرر کریں
    • اسٹاپ پوائنٹ کی بنیاد پر انٹری پر سپورٹ / مزاحمت بٹ متحرک حساب کتاب
    • اسٹاک ہولڈرز کی تعداد میں اضافے کے ساتھ ہی اسٹاپ ٹارگٹ میں کمی
  4. خطرے کا کنٹرول:

    • فی صد خطرہ ماڈل کا استعمال کرتے ہوئے ، ہر تجارت پر خطرہ اکاؤنٹ کی کل مالیت کا 20٪ مقرر کیا جاتا ہے
    • ایک ہی وقت میں زیادہ سے زیادہ 5 پوزیشنوں کی اجازت دی گئی ہے ، جو مجموعی طور پر رسک کے دروازے کو محدود کرتی ہے

اسٹریٹجک فوائد

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

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

  3. پیراڈائزڈ ہولڈنگ: جب رجحان جاری رہتا ہے تو ہولڈنگ میں اضافہ کرکے منافع کی صلاحیت کو نمایاں طور پر بڑھایا جاسکتا ہے۔

  4. رسک مینجمنٹ: فی تجارت اور مجموعی رسک پر موثر کنٹرول کے لئے فی صد رسک اور زیادہ سے زیادہ انعقاد کی حد مقرر کریں۔

  5. لچکدار: بہت سارے ایڈجسٹ پیرامیٹرز حکمت عملی کو مختلف مارکیٹ کے حالات اور تجارت کی اقسام کے مطابق ڈھالنے کے قابل بناتے ہیں۔

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

اسٹریٹجک رسک

  1. ضرورت سے زیادہ تجارت: اعلی اتار چڑھاؤ والے بازاروں میں ٹریڈنگ سگنل کو اکثر ٹرگر کیا جاسکتا ہے ، جس کی وجہ سے اعلی فیس لگتی ہے۔

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

  3. مسلسل نقصان: اگر مارکیٹ میں مسلسل ایک طرفہ حرکت ہوتی ہے تو ، اس سے متعدد بار پوزیشنوں میں اضافے کے بعد بڑے پیمانے پر نقصان ہوسکتا ہے۔

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

  5. سلائڈ پوائنٹ اثر: شدید اتار چڑھاؤ کے دوران ، حکمت عملی کی کارکردگی کو متاثر کرنے والے سنگین سلائڈ پوائنٹس کا سامنا کرنا پڑ سکتا ہے۔

  6. مارکیٹ کے ماحول پر انحصار: حکمت عملی کچھ مارکیٹ کے ماحول میں خراب کارکردگی کا مظاہرہ کرسکتی ہے ، جیسے کم اتار چڑھاؤ یا مضبوط رجحان کی مارکیٹ۔

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

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

  2. ملٹی ٹائم سائیکل تجزیہ: طویل مدتی مارکیٹ کے رجحانات کے ساتھ مل کر ، داخلے کے معیار کو بہتر بنائیں۔

  3. اسٹاپ نقصان کی اصلاح: ٹریکنگ اسٹاپ یا اے ٹی آر پر مبنی متحرک اسٹاپ کو شامل کریں ، خطرے کو مزید کنٹرول کریں۔

  4. مارکیٹ کی حالت فلٹر: رجحان کی طاقت ، اتار چڑھاؤ کی مدت اور دیگر فلٹرنگ شرائط شامل کریں تاکہ غیر مناسب مارکیٹ کے ماحول میں تجارت سے بچا جاسکے۔

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

  6. مشین لرننگ انٹیگریشن: مشین لرننگ الگورتھم کا استعمال کرتے ہوئے پیرامیٹرز کے انتخاب اور سگنل جنریشن کے عمل کو بہتر بنانا۔

  7. وابستگی کا تجزیہ: حکمت عملی کے استحکام اور تنوع کو بڑھانے کے لئے دیگر اثاثوں کے ساتھ وابستگی کا تجزیہ شامل کریں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Retorno_Pivots_5min_Novo_v3.3')

// Input variables
bars_left1 = input(1, title = "Entry - Pivot Left Bars")
bars_right1 = input(1, title = "Entry - Pivot Right Bars")
rsi20_longentry0 = input(35, title = "Entry 1 - RSI20 Long")
rsi20_shortentry0 = input(65, title = "Entry 1 - RSI20 Short")
bar_size_entry0 = input.float(1, title="Entry 1 - Bar Size")
rsi20_longentry1 = input(30, title = "Entry 2 - RSI20 Long")
rsi20_shortentry1 = input(70, title = "Entry 2 - RSI20 Short")
bar_size_entry1 = input.float(0.8, title="Entry 2 - Bar Size")
rsi20_longentry2 = input(25, title = "Entry 3 - RSI20 Long")
rsi20_shortentry2 = input(75, title = "Entry 3 - RSI20 Short")
bar_size_entry2 = input.float(0.7, title="Entry 3 - Bar Size")
rsi20_longentry3 = input(20, title = "Entry 4 - RSI20 Long")
rsi20_shortentry3 = input(80, title = "Entry 4 - RSI20 Short")
bar_size_entry3 = input.float(0.5, title="Entry 4 - Bar Size")
limit_perc1 = input.float(0.60, title="Profit Range 1")
limit_perc2 = input.float(0.40, title="Profit Range 2")
limit_perc3 = input.float(0.20, title="Profit Range 3")
limit_perc4 = input.float(0.00, title="Profit Range 4")
limit_perc5 = input.float(0.00, title="Profit Range 5")
minimum_pivot_distance = input.float(0, title="Minimum Pivot Distance %")
barsize_1h_input = input(288, title="Highest Bar Lookback")
rsi20 = ta.rsi(close, 20)
rsi200 = ta.rsi(close, 200)
Pivot_High_Last1 = ta.valuewhen(ta.pivothigh(high, bars_left1, bars_right1), ta.pivothigh(high, bars_left1, bars_right1), 0)
Pivot_Low_Last1 = ta.valuewhen(ta.pivotlow(low, bars_left1, bars_right1), ta.pivotlow(low, bars_left1, bars_right1), 0)

barsize = math.abs(close - open)
barsize_1h = ta.highest(barsize, barsize_1h_input)

Bar0Long = rsi20 < rsi20_longentry0 and barsize >= (barsize_1h * bar_size_entry0)
Bar1Long = rsi20 < rsi20_longentry1 and barsize >= (barsize_1h * bar_size_entry1)
Bar2Long = rsi20 < rsi20_longentry2 and barsize >= (barsize_1h * bar_size_entry2)
Bar3Long = rsi20 < rsi20_longentry3 and barsize >= (barsize_1h * bar_size_entry3)

// Long Entries
Long_Entry1 = strategy.opentrades == 0 and rsi20 < rsi20[1] and ((rsi20 < rsi20_longentry0 and barsize >= (barsize_1h * bar_size_entry0)) or (rsi20 < rsi20_longentry1 and barsize >= (barsize_1h * bar_size_entry1)) or (rsi20 < rsi20_longentry2 and barsize >= (barsize_1h * bar_size_entry2)) or (rsi20 < rsi20_longentry3 and barsize >= (barsize_1h * bar_size_entry3))) and close < (Pivot_Low_Last1 * (1 - (minimum_pivot_distance / 100)))
Long_Entry2 = strategy.opentrades == 1 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long)
Long_Entry3 = strategy.opentrades == 2 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long)
Long_Entry4 = strategy.opentrades == 3 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long)
Long_Entry5 = strategy.opentrades == 4 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long)
if Long_Entry1 or Long_Entry2 or Long_Entry3 or Long_Entry4 or Long_Entry5
    strategy.entry("Long", strategy.long, comment = "ENTER-LONG_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27")
// Longs Exits
Long_Exit1 = strategy.opentrades == 1 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc1))
Long_Exit2 = strategy.opentrades == 2 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc2))
Long_Exit3 = strategy.opentrades == 3 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc3))
Long_Exit4 = strategy.opentrades == 4 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc4))
Long_Exit5 = strategy.opentrades == 5 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc5))
if Long_Exit1 or Long_Exit2 or Long_Exit3 or Long_Exit4 or Long_Exit5
    strategy.close("Long", comment = "EXIT-LONG_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27")

Bar0Short = rsi20 > rsi20_shortentry0 and barsize >= (barsize_1h * bar_size_entry0)
Bar1Short = rsi20 > rsi20_shortentry1 and barsize >= (barsize_1h * bar_size_entry1)
Bar2Short = rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2)
Bar3Short = rsi20 > rsi20_shortentry3 and barsize >= (barsize_1h * bar_size_entry3)

// Short Entries
Short_Entry1 = strategy.opentrades == 0 and rsi20 > rsi20[1] and ((rsi20 > rsi20_shortentry0 and barsize >= (barsize_1h * bar_size_entry0)) or (rsi20 > rsi20_shortentry1 and barsize >= (barsize_1h * bar_size_entry1)) or (rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2)) or (rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2))) and close > (Pivot_High_Last1 * (1 + (minimum_pivot_distance / 100)))
Short_Entry2 = strategy.opentrades == 1 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short)
Short_Entry3 = strategy.opentrades == 2 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short)
Short_Entry4 = strategy.opentrades == 3 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short)
Short_Entry5 = strategy.opentrades == 4 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short)
if Short_Entry1 or Short_Entry2 or Short_Entry3 or Short_Entry4 or Short_Entry5
    strategy.entry("Short", strategy.short, comment = "ENTER-SHORT_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27")
// Short Exits
Short_Exit1 = strategy.opentrades == 1 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc1))
Short_Exit2 = strategy.opentrades == 2 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc2))
Short_Exit3 = strategy.opentrades == 3 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc3))
Short_Exit4 = strategy.opentrades == 4 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc4))
Short_Exit5 = strategy.opentrades == 5 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc5))
if Short_Exit1 or Short_Exit2 or Short_Exit3 or Short_Exit4 or Short_Exit5
    strategy.close("Short", comment = "EXIT-SHORT_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27")

// Plots
plot(rsi20, color=color.new(#fbff00, 0), linewidth=2)
plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc1))), color=color.new(#00ff2a, 0), linewidth=2)
plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc2))), color=color.new(#00ff2a, 50), linewidth=2)
plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc3))), color=color.new(#00ff2a, 80), linewidth=2)
plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc4))), color=color.new(#00ff2a, 100), linewidth=2)
plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc1)), color=color.new(#ff0000, 0), linewidth=2)
plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc2)), color=color.new(#ff0000, 50), linewidth=2)
plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc3)), color=color.new(#ff0000, 80), linewidth=2)
plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc4)), color=color.new(#ff0000, 100), linewidth=2)
plot(strategy.position_avg_price, color=color.new(#ffc400, 0), linewidth=2)
plot(strategy.opentrades * (strategy.position_size / math.abs(strategy.position_size)), color=color.new(#ff00bb, 0), linewidth=2)
plot(((barsize / barsize_1h) * 100), color=color.new(#0000ff, 0), linewidth=2)