
یہ حکمت عملی ایک مومینٹم ریورسل ٹریڈنگ سسٹم ہے جو RSI اور بولنگر بینڈز کے دوہری تکنیکی اشاریوں کو جوڑ کر تجارت کے لیے زیادہ خریدے اور زیادہ فروخت شدہ علاقوں کی نشاندہی کرتا ہے۔ حکمت عملی 1:2 رسک ریٹرن ریشو کا استعمال کرتی ہے اور رسک کنٹرول کے لیے موونگ اسٹاپ نقصان کو یکجا کرتی ہے۔ بنیادی منطق اس وقت تجارت کرنا ہے جب RSI اور بولنگر بینڈز ایک ہی وقت میں زیادہ خرید یا زیادہ فروخت ہونے والے سگنل دکھاتے ہیں، اور سخت رسک مینجمنٹ کے ذریعے فنڈز کی حفاظت کرتے ہیں۔
حکمت عملی 14 مدت کے RSI اور 20 مدت کے بولنگر بینڈز کو اہم اشارے کے طور پر استعمال کرتی ہے۔ خریداری کی شرائط کو ایک ساتھ پورا کرنا ضروری ہے: RSI 30 سے کم ہے (زیادہ فروخت) اور قیمت نچلے بولنگر بینڈ کو چھوتی ہے یا نیچے آتی ہے۔ فروخت کی شرائط کو ایک ہی وقت میں پورا کرنا ضروری ہے: RSI 70 سے اوپر ہے (زیادہ خریدی گئی) اور قیمت بالنگر بینڈ کو چھوتی ہے یا اس سے زیادہ ہے۔ یہ نظام 5 K-لائنز کے سب سے زیادہ/کم ترین پوائنٹ کو موونگ سٹاپ نقصان کے طور پر استعمال کرتا ہے، اور ٹیک-پرافٹ پوزیشن سٹاپ نقصان کے فاصلے سے دوگنا ہے، 1:2 رسک ریٹرن ریشو کو سختی سے نافذ کرتا ہے۔
یہ ایک اچھی طرح سے تشکیل شدہ ریورسل ٹریڈنگ حکمت عملی ہے جو زیادہ درستگی کے لیے دوہری تکنیکی اشارے استعمال کرتی ہے اور سخت رسک مینجمنٹ کو ملازمت دیتی ہے۔ اگرچہ حکمت عملی سادہ اور بدیہی ہے، لیکن اس میں ایک بالغ تجارتی نظام کے لیے درکار کلیدی عناصر شامل ہیں۔ تجویز کردہ اصلاحی ہدایات کے ذریعے، اس حکمت عملی میں مزید بہتری کی گنجائش ہے۔ حقیقی تجارت میں، پہلے کافی بیک ٹیسٹنگ اور پیرامیٹر کی اصلاح کرنے کی سفارش کی جاتی ہے۔
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI + Bollinger Bands with 1:2 Risk/Reward", overlay=true)
// Define Inputs
length_rsi = input.int(14, title="RSI Period")
oversold_level = input.int(30, title="RSI Oversold Level")
overbought_level = input.int(70, title="RSI Overbought Level")
length_bb = input.int(20, title="Bollinger Bands Period")
src = close
risk_to_reward = input.float(2.0, title="Risk-to-Reward Ratio", minval=1.0, step=0.1)
// Calculate Indicators
rsi_value = ta.rsi(src, length_rsi)
basis = ta.sma(src, length_bb)
dev = ta.stdev(src, length_bb)
upper_band = basis + 2 * dev
lower_band = basis - 2 * dev
// Define Buy and Sell Conditions
rsi_buy_condition = rsi_value < oversold_level // RSI below 30 (buy signal)
bollinger_buy_condition = close <= lower_band // Price at or near lower Bollinger Band (buy signal)
rsi_sell_condition = rsi_value > overbought_level // RSI above 70 (sell signal)
bollinger_sell_condition = close >= upper_band // Price at or near upper Bollinger Band (sell signal)
// Combine Buy and Sell Conditions
buy_condition = rsi_buy_condition and bollinger_buy_condition
sell_condition = rsi_sell_condition and bollinger_sell_condition
// Plot Buy and Sell Signals with white text and green/red boxes
plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY", textcolor=color.white, size=size.small)
plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL", textcolor=color.white, size=size.small)
// Calculate Swing Points (for Stop Loss)
swing_low = ta.lowest(low, 5) // Last 5 bars' low
swing_high = ta.highest(high, 5) // Last 5 bars' high
// Calculate Risk (Distance from Entry to SL)
long_risk = close - swing_low
short_risk = swing_high - close
// Calculate Take Profit using 1:2 Risk-to-Reward Ratio
take_profit_long = close + 2 * long_risk
take_profit_short = close - 2 * short_risk
// Strategy Execution: Enter Buy/Sell Positions
if buy_condition
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", "Buy", limit=take_profit_long, stop=swing_low) // Set TP and SL for Buy
if sell_condition
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", "Sell", limit=take_profit_short, stop=swing_high) // Set TP and SL for Sell
// Plotting the Indicators for Visualization (Optional - comment out if not needed)
plot(rsi_value, color=color.blue, title="RSI", linewidth=2, display=display.none)
plot(upper_band, color=color.red, title="Upper BB", display=display.none)
plot(lower_band, color=color.green, title="Lower BB", display=display.none)