وسائل لوڈ ہو رہے ہیں... لوڈنگ...

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

مصنف:چاؤ ژانگ، تاریخ: 2024-06-21 14:16:31
ٹیگز:RSI٬PIVOT

img

جائزہ

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

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

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

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

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

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

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

حکمت عملی کے فوائد

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

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

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

  4. خطرے کا انتظام: مقررہ فیصد خطرے اور زیادہ سے زیادہ پوزیشن کی حدود ہر تجارت اور مجموعی طور پر خطرے کو مؤثر طریقے سے کنٹرول کرتی ہیں.

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

  6. میڈین ریورس + ٹرینڈ فالونگ: میڈین ریورس اور ٹرینڈ فالونگ کے فوائد کو جوڑتا ہے ، بڑے رجحانات کو یاد کیے بغیر قلیل مدتی الٹ کو پکڑتا ہے۔

حکمت عملی کے خطرات

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

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

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

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

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

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

حکمت عملی کی اصلاح کی ہدایات

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

  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)

متعلقہ

مزید