
EMA, ATR, MOMENTUM, EFFICIENCY, BREAKOUT
উপরের 18/50/120 ত্রিমাত্রিক গড়রেখার দ্বারা প্রতারিত হবেন না। এই কৌশলটির কেন্দ্রবিন্দুটি 8 টি স্বাধীন মাত্রার একটি প্রবণতা যাচাইকরণ সিস্টেম, যার প্রতিটি মাত্রার একটি স্পষ্ট সংখ্যাগত মানদণ্ড রয়েছে। এটি একটি সহজ গোল্ডফোর্ক ডেডফোর্ক নয়, তবে একটি ভারী স্কোরিং সিস্টেমের মাধ্যমে প্রবণতার গুণমান বিচার করার জন্য ((সর্বনিম্ন 5.0 প্রবেশ, 2.5 এর নীচে প্রস্থান)) ।
ঐতিহ্যগত গড়রেখার কৌশলগুলির সমস্যা হল যে, অনেকগুলি মিথ্যা সংকেত রয়েছে। এই সিস্টেমটি একাধিক ফিল্টারিংয়ের মাধ্যমে প্রবেশের সাফল্যের হারকে নতুন উচ্চতায় নিয়ে যায়, যেমনঃ পথের দক্ষতা (কমপক্ষে ৩৩%), গতির ধারাবাহিকতা (K-রেখার অনুপাত ৫৭% বা তার বেশি বৃদ্ধি পেয়েছে), ওঠানামার অবস্থা (ATR অনুপাত ৯৫% বা তার বেশি) ।
বাজারে ৯০% ব্রেক হ’ল ভুয়া ব্রেক। এই কৌশলটি নির্ধারণ করে যে ব্রেকিংয়ের শক্তিটি অবশ্যই ০.১৫ গুণ এটিআর পর্যন্ত পৌঁছাতে হবে, যার অর্থ ব্রেকিংয়ের মাত্রাটি সাম্প্রতিক গড় ওঠানামাটির ১৫% এর বেশি হওয়া উচিত যা কার্যকর সংকেত হিসাবে বিবেচিত হবে।
পুনঃনির্ধারণ পুনঃনির্ধারণের প্রক্রিয়াটি আরও চতুরঃ দামগুলিকে দ্রুত লাইন থেকে কমপক্ষে 0.9x এটিআর গভীরতার পুনঃনির্ধারণের জন্য অনুরোধ করা হয়, তারপরে পুনরায় গড়ের উপরে উঠার সময় এটির তীব্রতা 0.15x এটিআর হয়। এই নকশাটি কার্যকরভাবে অগভীর জাল ব্রেকআউটগুলিকে ফিল্টার করে এবং কেবলমাত্র সত্যিকারের অর্থায়িত প্রবণতা চালিত প্রবণতা শুরু করে।
2x লিভারেজ সেটিংটি উগ্র বলে মনে হচ্ছে, তবে 2% হার্ড স্টপ এবং 2.8x এটিআর ডায়নামিক ট্র্যাকিংয়ের সাথে, প্রকৃত ঝুঁকি নিয়ন্ত্রণযোগ্য। আরো গুরুত্বপূর্ণভাবে, 20.8x এটিআর এর মুনাফা লকিং সিস্টেম, যা স্বয়ংক্রিয়ভাবে স্টপ-ড্রপকে বাড়িয়ে তোলে যখন ফ্লেক্স এই স্তরে পৌঁছে যায় এবং নিশ্চিত করে যে বড় প্রবণতাগুলির মুনাফা ফিরে আসবে না।
বাধ্যতামূলকভাবে 1 টি সম্পূর্ণ কে লাইনের নকশা উচ্চ-ফ্রিকোয়েন্সি ইনপুট এবং আউটপুট প্রতিরোধ করে এবং 5 টি কে লাইনের শীতল সময়টি আবেগময় ধারাবাহিক লেনদেনকে এড়ায়। এই গতি নিয়ন্ত্রণটি খাঁটি প্রযুক্তিগত সূচকের চেয়ে গুরুত্বপূর্ণ।
প্রবণতা পুনরায় প্রবেশঃ প্রচলিত শক্তিশালী প্রবণতার জন্য প্রযোজ্য, বিপর্যয় + প্রান্তিকতা + দক্ষতা + গতিশীলতা সম্পূর্ণরূপে পূরণ করা প্রয়োজন। পুনঃনির্ধারণ পুনঃপ্রবেশঃ স্বাস্থ্যকর প্রবণতা পুনঃনির্ধারণের জন্য, যথেষ্ট গভীরতা এবং পুনরায় শক্তিশালী প্রয়োজন। প্রারম্ভিক প্রবণতা প্রবেশঃ প্রবণতা রূপান্তর ক্যাপচার সোনার 14 কে লাইন উইন্ডো সময়কাল।
এই ধরনের মাল্টি-মোড ডিজাইনের সুবিধা হল যে কোন প্রকার ট্রেন্ডিং সুযোগ মিস করা যাবে না, এবং প্রতিটি মোডের জন্য কঠোর মানের মান রয়েছে।
১৮টি চক্রের মধ্যে নিট স্থানচ্যুতি এবং ক্রমবর্ধমান স্থানচ্যুতির অনুপাত গণনা করার জন্য পথের কার্যকারিতা, 33% এর নিচে প্রবণতা অবিচ্ছিন্ন। এই সূচকটি ঝড়ের পরিস্থিতিতে মিথ্যা প্রবণতাকে কার্যকরভাবে সনাক্ত করতে পারে, যাতে ক্রস-অর্ধমুখী বাজারে পুনরাবৃত্ত ক্ষতিগ্রস্থ হওয়া এড়ানো যায়।
গতিশীলতা ধারাবাহিকতার জন্য 57% এরও বেশি K-রেখা সমান্তরাল প্রয়োজন, 12 টি চক্রের গতিশীলতার সাথে মিলিত হওয়া উচিত। এই দ্বৈত যাচাইকরণটি কেবলমাত্র দামের পৃষ্ঠের ব্রেকআউটের পরিবর্তে প্রবণতার অভ্যন্তরীণ শক্তি নিশ্চিত করে।
এই কৌশলটি প্রবণতা বাজারকে স্পষ্টভাবে পক্ষপাতদুষ্ট করে, এবং ঘন ঘন অস্থিরতার মধ্যে একটি প্রস্থান সংকেত ট্রিগার করে। এটিআর অবস্থা 80% এর নীচে এবং দক্ষতা 25% এর নীচে যখন প্রস্থান বাধ্যতামূলক করার নকশা করা হয়, এটি নির্দেশ করে যে কৌশলটি বাজারের পরিবেশের জন্য সুস্পষ্ট প্রয়োজনীয়তা রয়েছে।
সবচেয়ে বড় ঝুঁকি হল প্রবণতা রূপান্তর সময়কালের বিলম্বিততা, যদিও দ্রুত ইএমএ ক্রসিংয়ের মতো প্রাথমিক সতর্কতা রয়েছে, তবে দ্রুত বিপরীত হওয়ার সময় এখনও একটি বড় প্রত্যাহারের মুখোমুখি হতে পারে। উচ্চতর ওঠানামা সহ প্রবৃদ্ধি স্টক বা ক্রিপ্টোকারেন্সি বাজারে ব্যবহারের পরামর্শ দেওয়া হয়, বড় আকারের ব্লু চিপের মতো কম ওঠানামা সহ প্রয়োগ করা এড়ানো উচিত।
ঝুঁকি পরামর্শঃ ঐতিহাসিক প্রত্যাহার ভবিষ্যতের লাভের প্রতিনিধিত্ব করে না, কৌশলটি ক্রমাগত ক্ষতির ঝুঁকি রয়েছে, ঝুঁকি ব্যবস্থাপনা কঠোরভাবে প্রয়োগ করা প্রয়োজন, বিভিন্ন বাজার পরিবেশে পারফরম্যান্সের পার্থক্য উল্লেখযোগ্য।
/*backtest
start: 2026-01-07 15:30:00
end: 2026-03-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"XAG_USDT","balance":500000}]
*/
//@version=5
strategy("Quant Trend Engine Long Only v2 - Manual Leverage Fixed", overlay=true)
// === Core lengths ===
fastLen = input.int(18, "Fast EMA")
midLen = input.int(50, "Mid EMA")
slowLen = input.int(120, "Slow EMA")
smoothLen = input.int(3, "EMA Smoothing")
pullbackLen = input.int(8, "Pullback Lookback")
breakoutLen = input.int(20, "Breakout Length")
effLen = input.int(18, "Efficiency Length")
persistLen = input.int(7, "Persistence Length")
momLen = input.int(12, "Momentum Length")
slopeLen = input.int(10, "Slope Length")
atrLen = input.int(14, "ATR Length")
atrBaseLen = input.int(40, "ATR Baseline Length")
// === Thresholds ===
minScore = input.float(5.0, "Minimum Entry Score", step=0.25)
exitScore = input.float(2.5, "Weak Trend Exit Score", step=0.25)
minSepPerc = input.float(0.30, "Min EMA Separation %", step=0.05)
minSlowSlopePerc = input.float(0.03, "Min Slow Slope %", step=0.01)
minEff = input.float(0.33, "Min Efficiency", step=0.01)
minAtrRegime = input.float(0.95, "Min ATR Regime", step=0.05)
minBreakoutAtr = input.float(0.15, "Min Breakout ATR Strength", step=0.05)
pullbackAtrMult = input.float(0.90, "Pullback Distance ATR", step=0.05)
reclaimAtrMult = input.float(0.15, "Reclaim Distance ATR", step=0.05)
cooldownBars = input.int(5, "Cooldown Bars After Exit")
// === Risk ===
leverage = input.float(2.0, "Leverage", step=0.1, minval=0.1)
hardStopPerc = input.float(2.0, "Hard Stop %", step=0.1)
trailAtrMult = input.float(2.8, "ATR Trail Mult", step=0.1)
profitLockAtrMult = input.float(20.8, "Profit Lock ATR Mult", step=0.1)
// === Smoothed EMAs ===
fast = ta.ema(ta.ema(close, fastLen), smoothLen)
mid = ta.ema(ta.ema(close, midLen), smoothLen)
slow = ta.ema(ta.ema(close, slowLen), smoothLen)
// === Regime structure ===
bullStack = fast > mid and mid > slow
sepPerc = slow != 0 ? math.abs(fast - slow) / slow * 100 : 0.0
sepOk = sepPerc >= minSepPerc
fastSlope = fast[slopeLen] != 0 ? (fast - fast[slopeLen]) / fast[slopeLen] * 100 : 0.0
midSlope = mid[slopeLen] != 0 ? (mid - mid[slopeLen]) / mid[slopeLen] * 100 : 0.0
slowSlope = slow[slopeLen] != 0 ? (slow - slow[slopeLen]) / slow[slopeLen] * 100 : 0.0
slopeOk = slowSlope >= minSlowSlopePerc and midSlope > 0 and fastSlope > 0
// === Path efficiency ===
netMove = math.abs(close - close[effLen])
stepMove = 0.0
for i = 1 to effLen
stepMove += math.abs(close[i - 1] - close[i])
efficiency = stepMove != 0 ? netMove / stepMove : 0.0
effOk = efficiency >= minEff
// === Momentum persistence ===
upBars = 0.0
for i = 0 to persistLen - 1
upBars += close[i] > close[i + 1] ? 1 : 0
persistRatio = persistLen > 0 ? upBars / persistLen : 0.0
momRaw = close[momLen] != 0 ? (close - close[momLen]) / close[momLen] * 100 : 0.0
momOk = momRaw > 0 and persistRatio >= 0.57
// === Volatility regime ===
atr = ta.atr(atrLen)
atrBase = ta.sma(atr, atrBaseLen)
atrRegime = atrBase != 0 ? atr / atrBase : 0.0
atrOk = atrRegime >= minAtrRegime
// === Breakout quality ===
hh = ta.highest(high, breakoutLen)[1]
breakoutDist = close - hh
breakoutStrength = atr != 0 ? breakoutDist / atr : 0.0
breakoutOk = close > hh and breakoutStrength >= minBreakoutAtr
// === Pullback / reclaim logic ===
pullbackLow = ta.lowest(low, pullbackLen)
distFromFastAtr = atr != 0 ? (fast - pullbackLow) / atr : 0.0
deepEnoughPullback = distFromFastAtr >= pullbackAtrMult
reclaimFast = close > fast and close[1] <= fast[1]
reclaimMid = close > mid and close[1] <= mid[1]
reclaimStrength = atr != 0 ? (close - fast) / atr : 0.0
reclaimOk = (reclaimFast or reclaimMid) and reclaimStrength >= reclaimAtrMult
// === Transition memory ===
bullCross = ta.crossover(fast, mid) or ta.crossover(fast, slow) or ta.crossover(mid, slow)
barsSinceBullCross = ta.barssince(bullCross)
recentTrendBirth = barsSinceBullCross >= 0 and barsSinceBullCross <= 14
// === Weighted score ===
trendScore = 0.0
trendScore += bullStack ? 1.50 : 0.0
trendScore += sepOk ? 0.90 : 0.0
trendScore += slopeOk ? 1.10 : 0.0
trendScore += effOk ? 1.00 : 0.0
trendScore += atrOk ? 0.80 : 0.0
trendScore += momOk ? 1.00 : 0.0
trendScore += breakoutOk ? 1.25 : 0.0
trendScore += reclaimOk ? 1.10 : 0.0
// === Entry models ===
trendContinuationEntry = bullStack and breakoutOk and slopeOk and effOk and momOk
pullbackReentry = bullStack and sepOk and slopeOk and deepEnoughPullback and reclaimOk and effOk
earlyTrendEntry = recentTrendBirth and bullStack and sepOk and slopeOk and atrOk and momOk
// === Cooldown ===
var int lastExitBar = na
cooldownOk = na(lastExitBar) or bar_index - lastExitBar > cooldownBars
// === Final entry ===
enterLong = strategy.position_size == 0 and cooldownOk and trendScore >= minScore and close > slow and (trendContinuationEntry or pullbackReentry or earlyTrendEntry)
// === Manual leveraged sizing only ===
equity = math.max(strategy.equity, 0)
positionValue = equity * leverage
qty = positionValue > 0 ? positionValue / (close * syminfo.pointvalue) : 0.0
// === Entry tracking / mandatory 1 full candle hold ===
var int entryBarIndex = na
justOpened = strategy.position_size > 0 and strategy.position_size[1] == 0
if justOpened
entryBarIndex := bar_index
canExitNow = strategy.position_size > 0 and not na(entryBarIndex) and bar_index > entryBarIndex
// === Entry order ===
if enterLong and qty > 0
strategy.entry("Long", strategy.long, qty=qty)
// === Risk logic ===
hardStopPrice = strategy.position_size > 0 ? strategy.position_avg_price * (1 - hardStopPerc / 100) : na
var float trailStop = na
var float highSinceEntry = na
highSinceEntry := strategy.position_size > 0 ? (na(highSinceEntry) ? high : math.max(highSinceEntry, high)) : na
rawTrail = strategy.position_size > 0 ? close - atr * trailAtrMult : na
profitLock = strategy.position_size > 0 ? highSinceEntry - atr * profitLockAtrMult : na
combinedTrail = strategy.position_size > 0 ? math.max(rawTrail, profitLock) : na
trailStop := strategy.position_size > 0 ? (na(trailStop) ? combinedTrail : math.max(trailStop, combinedTrail)) : na
// === Exit logic ===
bearCross = ta.crossunder(fast, mid) or ta.crossunder(fast, slow)
structureBreak = close < mid and fast < mid
scoreWeak = trendScore <= exitScore
momentumFailure = persistRatio < 0.40 and momRaw < 0
regimeFailure = atrRegime < 0.80 and efficiency < 0.25
exitLong = strategy.position_size > 0 and canExitNow and (bearCross or structureBreak or scoreWeak or momentumFailure or regimeFailure)
// Only allow stop/trailing exits after 1 full candle has passed
if strategy.position_size > 0 and canExitNow
strategy.exit("Risk Exit", from_entry="Long", stop=math.max(hardStopPrice, trailStop))
justClosed = strategy.position_size[1] > 0 and strategy.position_size == 0
if justClosed
lastExitBar := bar_index
trailStop := na
highSinceEntry := na
entryBarIndex := na
if exitLong
strategy.close("Long")
// === Plots ===
plot(fast, color=color.green, linewidth=2, title="Fast EMA")
plot(mid, color=color.orange, linewidth=2, title="Mid EMA")
plot(slow, color=color.red, linewidth=2, title="Slow EMA")
plot(strategy.position_size > 0 ? trailStop : na, color=color.blue, linewidth=2, title="Adaptive Trail")
plot(trendScore, title="Trend Score", color=color.aqua)
plot(efficiency, title="Efficiency", color=color.fuchsia)
plot(atrRegime, title="ATR Regime", color=color.yellow)
plot(breakoutStrength, title="Breakout Strength", color=color.lime)
plot(persistRatio, title="Persistence Ratio", color=color.white)