
এই কৌশলটি প্রবণতা ট্র্যাকিং এবং ব্যবধানের ব্যবসায়ের সমন্বয়ে একটি স্বনির্ধারিত ট্রেডিং সিস্টেম। সিস্টেমটি এডিএক্স সূচকগুলির মাধ্যমে বাজারের অবস্থাকে গতিশীলভাবে সনাক্ত করে এবং প্রবণতা বাজার এবং ঝড়ের বাজারে পৃথক পৃথক ট্রেডিং কৌশল গ্রহণ করে। প্রবণতা বাজারগুলিতে, কৌশলটি আরএসআই এবং এমএসিডি নিশ্চিতকরণের সাথে চলমান গড় ক্রস সিগন্যাল ব্যবহার করে; ঝড়ের বাজারে, কৌশলটি আরএসআই ওভার-বই ওভার-বিক্রয় সংকেতের সাথে বুলিনব্যান্ডের মাধ্যমে ট্রেডিং সিস্টেমটি ব্যবহার করে। এটিআর-ভিত্তিক গতিশীল স্টপ লস-স্টপিং ব্যবস্থাও সংহত করে, কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে।
এই কৌশলটির কেন্দ্রবিন্দু হল বাজারের অবস্থা সনাক্তকরণ প্রক্রিয়া। যখন ADX 25 এর চেয়ে বড় হয় তখন ট্রেন্ডিং বাজার হিসাবে বিচার করা হয়, তখন ট্রেন্ড ট্র্যাকিং কৌশলটি চালু করা হয়ঃ
যখন ADX 25 এর চেয়ে কম হয় তখন এটি একটি ঝড়ের বাজার হিসাবে বিবেচিত হয়, একটি ব্যবধানযুক্ত ট্রেডিং কৌশল চালু করুনঃ
স্টপ লস স্টপ সেটআপটি এটিআর এর গতিশীল গুণিতক পদ্ধতি ব্যবহার করে, যা স্টপ লস 1.5 গুণ এটিআর এবং স্টপ লস 3 গুণ এটিআর।
এই কৌশলটি বাজারের অবস্থার গতিশীল সনাক্তকরণ এবং সংশ্লিষ্ট কৌশল স্যুইচিংয়ের মাধ্যমে বিভিন্ন বাজার পরিবেশে অভিযোজিত হয়। একাধিক প্রযুক্তিগত সূচকের সমন্বয় এবং গতিশীল ঝুঁকি নিয়ন্ত্রণ ব্যবস্থার মাধ্যমে কৌশলটির ভাল ব্যবহারিকতা রয়েছে। তবে সিগন্যাল লেগ্যাসিটি এবং ভুয়া বিরতির মতো ঝুঁকির বিষয়ে এখনও সতর্কতা অবলম্বন করা উচিত। রিয়েল-টাইমে পর্যাপ্ত পরীক্ষার এবং প্যারামিটার অপ্টিমাইজেশনের পরামর্শ দেওয়া হয়েছে।
/*backtest
start: 2024-09-01 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Trend vs Range Trading - Fully Fixed for v6", overlay=true)
// 🔹 Moving Averages (SMA 50 & 200)
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
// 🔹 Proper ADX Calculation (With Corrected ta.dmi() Parameters)
dmiLength = 14
adxSmoothing = 14
[dmiPlus, dmiMinus, adx] = ta.dmi(dmiLength, adxSmoothing)
// 🔹 Bollinger Bands Calculation (Fixed for v6)
bb_length = 20
bb_mult = 2.0
bb_basis = ta.sma(close, bb_length)
bb_dev = ta.stdev(close, bb_length)
bb_upper = bb_basis + (bb_mult * bb_dev)
bb_lower = bb_basis - (bb_mult * bb_dev)
// 🔹 Additional Indicators (RSI & MACD)
rsi = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// 🔹 ATR for Stop Loss & Take Profit
atr = ta.atr(14)
stop_loss_mult = 1.5 // Stop Loss Multiplier
take_profit_mult = 3.0 // Take Profit Multiplier
// 🔹 Trend vs Range Market Detection
is_trending = adx > 25
// 🔹 Trend Following Strategy (SMA Cross & Confirmation)
long_condition_trend = is_trending and ta.crossover(sma50, sma200) and rsi > 50 and macdLine > signalLine
short_condition_trend = is_trending and ta.crossunder(sma50, sma200) and rsi < 50 and macdLine < signalLine
// 🔹 Range Trading Strategy (Bollinger Bands & RSI Confirmation)
long_condition_range = not is_trending and ta.crossover(close, bb_lower) and rsi < 40
short_condition_range = not is_trending and ta.crossunder(close, bb_upper) and rsi > 60
// 🔹 Stop Loss & Take Profit Calculations
long_stop_loss = close - (atr * stop_loss_mult)
long_take_profit = close + (atr * take_profit_mult)
short_stop_loss = close + (atr * stop_loss_mult)
short_take_profit = close - (atr * take_profit_mult)
// 🔹 Execute Trades (With Stop Loss & Take Profit)
if long_condition_trend
strategy.entry("Long_Trend", strategy.long)
strategy.exit("Exit_Long_Trend", from_entry="Long_Trend", stop=long_stop_loss, limit=long_take_profit)
if short_condition_trend
strategy.entry("Short_Trend", strategy.short)
strategy.exit("Exit_Short_Trend", from_entry="Short_Trend", stop=short_stop_loss, limit=short_take_profit)
if long_condition_range
strategy.entry("Long_Range", strategy.long)
strategy.exit("Exit_Long_Range", from_entry="Long_Range", stop=long_stop_loss, limit=long_take_profit)
if short_condition_range
strategy.entry("Short_Range", strategy.short)
strategy.exit("Exit_Short_Range", from_entry="Short_Range", stop=short_stop_loss, limit=short_take_profit)
// 🔹 Visual Indicators & Background Color (Trend vs Range)
bgcolor(is_trending ? color.green : color.blue)
// 🔹 Plot Moving Averages & Bollinger Bands
plot(sma50, color=color.blue, title="SMA 50")
plot(sma200, color=color.red, title="SMA 200")
plot(bb_upper, color=color.green, title="BB Upper")
plot(bb_lower, color=color.orange, title="BB Lower")