
এই কৌশলটি একটি কোয়ান্টাম ট্রেডিং সিস্টেম যা একটি নূন্য বিলম্বিত চলমান গড় এবং প্রবণতা শক্তির স্কোরের উপর ভিত্তি করে। এটি বাজারের প্রবণতা সনাক্ত করে, প্রচলিত চলমান গড়ের পিছিয়ে পড়া দূর করে, উদ্বায়ীতা চ্যানেল এবং প্রবণতা শক্তির স্কোরের সাথে মিলিত হয়, যার ফলে দামের মধ্য-স্বল্পমেয়াদী ওঠানামা সুযোগ ধরা যায়। এই কৌশলটি একটি দ্বি-মুখী ট্রেডিং মডেল ব্যবহার করে, একটি উত্থান প্রবণতা, একটি পতন প্রবণতা মধ্যে একটি শূন্য, এবং ঝুঁকি নিয়ন্ত্রণের জন্য একটি স্টপ লস সেট করে।
কৌশলটির মূল বিষয় হল প্রচলিত চলমান গড়ের পিছিয়ে পড়া প্রভাবগুলি দূর করার জন্য একটি শূন্য-বিলম্বিত চলমান গড় ব্যবহার করা। এটি বাস্তবায়নের পদ্ধতিটি হলঃ প্রথমে বর্তমান মূল্যের সাথে পিছিয়ে থাকা মূল্যের পার্থক্য গণনা করা, তারপরে বর্তমান মূল্যের সাথে এই পার্থক্যটি যুক্ত করা, এবং শেষ পর্যন্ত ফলাফলের জন্য একটি চলমান গড় গণনা করা। একই সাথে, কৌশলটি একটি প্রবণতা শক্তি স্কোরিং সিস্টেম প্রবর্তন করে, যা বিভিন্ন সময়কালের দামের উচ্চতা এবং নিম্নের তুলনা করে প্রবণতা শক্তিকে পরিমাণে পরিমাপ করে। এছাড়াও, কৌশলটি ট্রেডিং সিগন্যালগুলি ভেঙে ফেলার জন্য এটিআর-ভিত্তিক গতিশীল ওঠানামার চ্যানেল সেট করে। যখন দামের মূল্যায়ন চ্যানেলটি অতিক্রম করে এবং প্রবণতা ব্রেকিং প্রান্তিক হয় তখনই একটি ট্রেডিং সিগন্যাল ট্রিগার করা হয়।
এই কৌশলটি উদ্ভাবনী শূন্য-বিলম্ব গণনা পদ্ধতি এবং প্রবণতা শক্তির স্কোরিং সিস্টেমের মাধ্যমে traditionalতিহ্যবাহী প্রবণতা ট্র্যাকিং কৌশলগুলির পিছনে থাকা সমস্যাগুলিকে ভালভাবে সমাধান করেছে। একই সাথে, গতিশীল ওঠানামা চ্যানেল এবং উন্নত ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা প্রবর্তনের মাধ্যমে কৌশলটির স্থায়িত্ব এবং নির্ভরযোগ্যতা বৃদ্ধি পেয়েছে। যদিও প্যারামিটার অপ্টিমাইজেশন এবং বাজারের অভিযোজনযোগ্যতার দিক থেকে কৌশলটির উন্নতির জায়গা রয়েছে, তবে সামগ্রিক নকশা ধারণাটি পরিষ্কার এবং ভাল রিয়েল-টাইম মানের প্রয়োগ রয়েছে।
/*backtest
start: 2024-11-14 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © josephdelvecchio
//@version=6
strategy("Zero Lag Trend Strategy", overlay=true)
// -- Input Parameters --
timeframe = input.timeframe("10", "Timeframe")
zeroLagMovAvg = input.string("ema", "Zero Lag Moving Average", options=["ema", "sma"])
length = input.int(50, "Lookback Period")
volatility_mult = input.float(1.5, "Volatility Multiplier")
loop_start = input.int(1, "Loop Start")
loop_end = input.int(50, "Loop End")
threshold_up = input.int(5, "Threshold Up")
threshold_down = input.int(-5, "Threshold Down")
signalpct = input.float(8, "Signal Percentage")
stoppct = input.float(0, "Stop Percentage")
// -- Helper Variables --
nATR = ta.atr(length)
lag = math.floor((length - 1) / 2)
zl_basis = zeroLagMovAvg == "ema" ? ta.ema(2 * close - close[lag], length) : ta.sma(2 * close - close[lag], length)
volatility = ta.highest(nATR, length * 3) * volatility_mult
// -- Trend Strength Scoring Function --
forloop_analysis(basis_price, loop_start, loop_end) =>
int sum = 0 // Use 'sum' as you did originally, for the +/- logic
for i = loop_start to loop_end
if basis_price > basis_price[i]
sum += 1
else if basis_price < basis_price[i] // Explicitly check for less than
sum -= 1
// If they are equal, do nothing (sum remains unchanged)
sum
score = forloop_analysis(zl_basis, loop_start, loop_end)
// -- Signal Generation --
long_signal = score > threshold_up and close > zl_basis + volatility
short_signal = score < threshold_down and close < zl_basis - volatility
// -- Trend Detection (Ensure One Trade Until Reversal) --
var int trend = na
trend := long_signal ? 1 : short_signal ? -1 : trend[1]
trend_changed = trend != trend[1]
// -- Stop-Loss & Take-Profit --
stop_loss = close * (1 - stoppct / 100)
take_profit = close * (1 + signalpct / 100)
// -- Strategy Orders (Enter Only When Trend Changes) --
if long_signal
strategy.entry("Long", strategy.long)
else if short_signal
strategy.entry("Short", strategy.short)
// -- Strategy Exits --
strategy.exit("Exit Long", from_entry="Long", stop=stop_loss, limit=take_profit)
strategy.exit("Exit Short", from_entry="Short", stop=take_profit, limit=stop_loss)
// -- Visualization --
p_basis = zl_basis
plot(p_basis, title="Zero Lag Line", color=color.blue, linewidth=2)
// -- Buy/Sell Arrows --
plotshape(series=trend_changed and trend == 1, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large, title="Buy Signal")
plotshape(series=trend_changed and trend == -1, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large, title="Sell Signal")