
এই কৌশলটি একাধিক প্রযুক্তিগত সূচকের উপর ভিত্তি করে একটি নগদ বাজারের একাধিক কৌশল। এটি মূলত দ্রুত এবং ধীর চলমান গড় ((EMA) এর ক্রস সংকেত ব্যবহার করে, তুলনামূলকভাবে দুর্বল সূচক ((RSI), গড় ট্রেন্ডিং সূচক ((ADX) এবং চলমান গড় প্রবণতা / বিপরীততা সূচক ((MACD) এর সাথে মিলিত ট্রেডিং সংকেত নিশ্চিত করে। কৌশলটি ডায়নামিক স্টপ এবং স্টপ লেভেল সেট করতে এবং ঝুঁকি পরিচালনার জন্য গড় বাস্তব তরঙ্গদৈর্ঘ্য (ATR) ব্যবহার করে।
কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করে:
এটি একটি যুক্তিসঙ্গত প্রবণতা ট্র্যাকিং কৌশল যা একাধিক প্রযুক্তিগত সূচকগুলির সমন্বিত ব্যবহারের মাধ্যমে ঝুঁকি নিয়ন্ত্রণের সাথে স্থিতিশীল উপার্জনের জন্য ডিজাইন করা হয়েছে। কৌশলটির সুবিধাটি তার নিখুঁত নিশ্চিতকরণ প্রক্রিয়া এবং ঝুঁকি ব্যবস্থাপনার সিস্টেমের মধ্যে রয়েছে, তবে প্রকৃত বাজারের অবস্থার উপর ভিত্তি করে প্যারামিটার অপ্টিমাইজেশন এবং লজিকাল উন্নতির প্রয়োজন রয়েছে। বিদ্যমান ঝুঁকির জন্য, বাজারের পরিবেশ ফিল্টার এবং অপ্টিমাইজেশন প্যারামিটার যুক্ত করে কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও বাড়ানো যেতে পারে।
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Optimized Long-Only Strategy (Spot Market) - Candle Signals Only", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1)
// INPUTS
fastEMA_len = input.int(8, "Fast EMA Length", minval=1)
slowEMA_len = input.int(21, "Slow EMA Length", minval=1)
rsiPeriod = input.int(14, "RSI Period")
rsiOverbought = input.int(70, "RSI Overbought Level", minval=50)
adxPeriod = input.int(14, "ADX Period", minval=1)
adxThreshold = input.int(25, "ADX Trend Strength Threshold", minval=1)
fastMACD = input.int(12, "MACD Fast Length", minval=1)
slowMACD = input.int(26, "MACD Slow Length", minval=1)
signalMACD = input.int(9, "MACD Signal Length", minval=1)
atrPeriod = input.int(14, "ATR Period", minval=1)
atrStopMultiplier = input.float(1.5, "ATR Stop Loss Multiplier", step=0.1)
atrProfitMultiplier = input.float(2.0, "ATR Profit Target Multiplier", step=0.1)
// CALCULATIONS
emaFast = ta.ema(close, fastEMA_len)
emaSlow = ta.ema(close, slowEMA_len)
rsiValue = ta.rsi(close, rsiPeriod)
// --- Custom ADX Calculation ---
up = ta.change(high)
down = -ta.change(low)
plusDM = (up > down and up > 0) ? up : 0
minusDM = (down > up and down > 0) ? down : 0
trueRange = ta.tr(true) // 'handle_na' parameter set to true
atrVal = ta.rma(trueRange, adxPeriod)
plusDI = 100 * ta.rma(plusDM, adxPeriod) / atrVal
minusDI = 100 * ta.rma(minusDM, adxPeriod) / atrVal
dx = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adxValue = ta.rma(dx, adxPeriod)
// MACD Calculation (MACD line, signal line, histogram)
[macdLine, signalLine, _] = ta.macd(close, fastMACD, slowMACD, signalMACD)
// ATR for stops and targets
atrValue = ta.atr(atrPeriod)
// TRADING CONDITION (Long Only, on confirmed candle)
longCondition = ta.crossover(emaFast, emaSlow) and (adxValue > adxThreshold) and (macdLine > signalLine) and (rsiValue < rsiOverbought)
// POSITION MANAGEMENT: Execute only on confirmed candles
if barstate.isconfirmed and longCondition
strategy.entry("Long", strategy.long)
longStop = close - atrStopMultiplier * atrValue
longTarget = close + atrProfitMultiplier * atrValue
strategy.exit("Long Exit", from_entry="Long", stop=longStop, limit=longTarget, trail_points=atrValue * 0.5, trail_offset=atrValue * 0.3)
// PLOTTING
plot(emaFast, color=color.green, title="Fast EMA")
plot(emaSlow, color=color.red, title="Slow EMA")
plotshape(barstate.isconfirmed and longCondition, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", textcolor=color.white, size=size.tiny)