মাল্টি-ইন্ডিকেটর কম্বিনেশন ATR ট্রেলিং স্টপ লস ইন্টেলিজেন্ট ট্রেডিং কৌশল

ATR EMA VWMA SMA JLines Cloud
সৃষ্টির তারিখ: 2025-02-21 10:03:26 অবশেষে সংশোধন করুন: 2025-02-21 10:03:26
অনুলিপি: 1 ক্লিকের সংখ্যা: 373
2
ফোকাস
319
অনুসারী

মাল্টি-ইন্ডিকেটর কম্বিনেশন ATR ট্রেলিং স্টপ লস ইন্টেলিজেন্ট ট্রেডিং কৌশল মাল্টি-ইন্ডিকেটর কম্বিনেশন ATR ট্রেলিং স্টপ লস ইন্টেলিজেন্ট ট্রেডিং কৌশল

ওভারভিউ

এটি একটি বুদ্ধিমান ট্রেডিং কৌশল যা একাধিক প্রযুক্তিগত সূচককে একত্রিত করে, মূলত এটিআর সূচকগুলির উপর ভিত্তি করে স্টপ লস ট্র্যাকিংয়ের কার্যকারিতা। কৌশলটি একই সাথে মিউচুয়াল ক্লাউড ((JLines Cloud), লেনদেনের পরিমাণ বিশ্লেষণ এবং intraday খোলার মূল্যের মতো বহু-মাত্রিক বিশ্লেষণ সূচকগুলিকে একীভূত করে, বিশেষত 3 মিনিটের এবং 5 মিনিটের সময়কালের জন্য উপযুক্ত। কৌশলটি এটিআর দ্বারা গতিশীলভাবে স্টপ লস অবস্থানকে সামঞ্জস্য করে, ট্রেন্ডের দিকনির্দেশের জন্য মিউচুয়াল সিস্টেমের সাথে মিলিত, একটি বিস্তৃত লেনদেনের সিদ্ধান্ত গ্রহণের সিস্টেম বাস্তবায়ন করে।

কৌশল নীতি

কৌশলটির কেন্দ্রবিন্দু হল একটি ট্র্যাকিং স্টপ লস সিস্টেম যা এটিআর (এভারেজ রিয়েল ওয়েভ্যাম্প) সূচকের উপর ভিত্তি করে নির্মিত। এটি 10 পিরিয়ডের এটিআর এবং 2x এটিআর গুণক ব্যবহার করে গতিশীল স্টপ লস লাইন গণনা করে। একই সাথে দুটি সময়কালের JLines ক্লাউড সিস্টেম ((7289 সমান্তরাল সমন্বয়), এবং একটি বিকল্প 515 সমান্তরাল সিস্টেম। ট্রেডিং সিগন্যালের উত্পাদন নিম্নলিখিত শর্তগুলি পূরণ করতে হবেঃ

  1. এটিআর স্টপ লিনের ব্রেকডাউন ট্র্যাক করে
  2. JLines ক্লাউডের প্রবণতা দুটি সময়কালের মধ্যে একমত
  3. দিনের ওপেন প্রাইসের তুলনায় দামের অবস্থান
  4. অস্বাভাবিক লেনদেনের পরিমাণ নিশ্চিতকরণ

কৌশলগত সুবিধা

  1. ডায়নামিক স্টপ লস প্রোটেকশন - এটিআর সূচকগুলির মাধ্যমে বাজারের অস্থিরতার সাথে সামঞ্জস্য রেখে নমনীয় স্টপ লস প্রোটেকশন সরবরাহ করে
  2. বহু-মাত্রিক প্রবণতা যাচাইকরণ - বিভিন্ন সময়কালের গড়-রেখার সমন্বয় ব্যবহার করে প্রবণতা বিচারের নির্ভুলতা বাড়ায়
  3. লেনদেনের পরিমাণ যাচাইকরণ - অস্বাভাবিক লেনদেনের পরিমাণ বিশ্লেষণের মাধ্যমে লেনদেনের নিশ্চিতকরণ বৃদ্ধি
  4. ভাল ঝুঁকি ব্যবস্থাপনা - স্থির ক্ষতি এবং লাভের লক্ষ্য সহ দ্বৈত সুরক্ষা ব্যবস্থা
  5. অভিযোজ্যতা - বিভিন্ন বাজারের অবস্থার সাথে সামঞ্জস্য রেখে প্যারামিটারগুলি সামঞ্জস্য করা যায়

কৌশলগত ঝুঁকি

  1. প্যারামিটার সংবেদনশীলতা - ATR চক্র এবং গুণক নির্বাচন কৌশল কর্মক্ষমতা উল্লেখযোগ্যভাবে প্রভাবিত করে
  2. বাজারের অবস্থার উপর নির্ভরশীলতা - প্রায়শই মিথ্যা সংকেত হতে পারে
  3. একাধিক শর্তাদির সীমাবদ্ধতা - কঠোর প্রবেশের শর্তগুলি কিছু ব্যবসায়ের সুযোগ হারাতে পারে
  4. স্লাইড পয়েন্ট প্রভাব - উচ্চ অস্থিরতার সময়, প্রকৃত কার্যকর মূল্য সংকেত মূল্যের সাথে বড় বিচ্যুতি হতে পারে

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

  1. গতিশীল প্যারামিটার সমন্বয় - এটিআর প্যারামিটারগুলি বাজারের অস্থিরতার সাথে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করতে পারে
  2. টাইম ফিল্টার - ট্রেডিং টাইম ফিল্টার যুক্ত করুন, বাজারের ওপেনিং এবং ক্লোজিংয়ের উচ্চ অস্থিরতা এড়াতে
  3. প্রবণতা শক্তি ফিল্টার - প্রবণতা শক্তি সূচক প্রবর্তন করে, যা প্রবণতা বিচারকে আরও নির্ভুল করে তোলে
  4. ঝুঁকি ব্যবস্থাপনা অপ্টিমাইজেশান - গতিশীল স্টপ-অফ-লস অনুপাত উপলব্ধ করা, বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নেওয়া
  5. লেনদেনের পরিমাণ বিশ্লেষণের উন্নতি - লেনদেনের পরিমাণ বিশ্লেষণের পদ্ধতিগুলিকে পরিমার্জিত করে লেনদেনের নিশ্চিতকরণের নির্ভুলতা বাড়ায়

সারসংক্ষেপ

এটি একটি সম্পূর্ণ ট্রেডিং সিস্টেম যা একাধিক প্রযুক্তিগত সূচককে একত্রিত করে, এটিআর ট্র্যাকিং স্টপ লস দ্বারা মূল ঝুঁকি ব্যবস্থাপনা সরবরাহ করে, এবং একই সাথে সমান্তরাল ক্লাউড এবং লেনদেনের পরিমাণ বিশ্লেষণ ব্যবহার করে লেনদেনের নিশ্চিতকরণ সরবরাহ করে। কৌশলটির সুবিধা হল এর বিস্তৃত বাজার বিশ্লেষণ কাঠামো এবং একটি উন্নত ঝুঁকি ব্যবস্থাপনা সিস্টেম, তবে নির্দিষ্ট বাজার পরিবেশের জন্য প্যারামিটার অপ্টিমাইজেশনের প্রয়োজন। প্রস্তাবিত অপ্টিমাইজেশন দিকনির্দেশের মাধ্যমে কৌশলটির স্থায়িত্ব এবং লাভজনকতা আরও বাড়ানোর সম্ভাবনা রয়েছে।

কৌশল সোর্স কোড
/*backtest
start: 2025-02-13 00:00:00
end: 2025-02-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("AI trade Roney nifty value", overlay=true)

// User Inputs
atrPeriod = input.int(10, "ATR Period")
atrMultiplier = input.float(2, "ATR Multiplier")
target = input.float(40, "Target")
stopLoss = input.float(40, "Stop Loss")

// Calculate ATR-based trailing stop
atr = ta.atr(atrPeriod)
nLoss = atrMultiplier * atr
var float xATRTrailingStop = na

if na(xATRTrailingStop)
    xATRTrailingStop := close - nLoss
else
    if close > xATRTrailingStop[1] and close[1] > xATRTrailingStop[1]
        xATRTrailingStop := math.max(xATRTrailingStop[1], close - nLoss)
    else if close < xATRTrailingStop[1] and close[1] < xATRTrailingStop[1]
        xATRTrailingStop := math.min(xATRTrailingStop[1], close + nLoss)
    else
        xATRTrailingStop := close > xATRTrailingStop[1] ? close - nLoss : close + nLoss

// Define position and entry/exit prices
var int pos = na
pos := close[1] < xATRTrailingStop[1] and close > xATRTrailingStop[1] ? 1 : 
       close[1] > xATRTrailingStop[1] and close < xATRTrailingStop[1] ? -1 : pos[1]

var bool isLong = false
var bool isShort = false

var float entryPrice = na
var float exitPrice = na
var float exitStop = na

// JLines Cloud indicator
sl = input.int(72, "Smaller length")
hl = input.int(89, "Higher length")

res = input.timeframe("1", "JLines - Time Frame 1")
res1 = input.timeframe("3", "JLines - Time Frame 2")
enable515 = input.bool(false, "5/15 EMA")
res2 = input.timeframe("5", "5/15 EMA")

ema1_72 = request.security(syminfo.tickerid, res, ta.ema(close, sl))
ema1_89 = request.security(syminfo.tickerid, res, ta.ema(close, hl))
ema2_72 = request.security(syminfo.tickerid, res1, ta.ema(close, sl))
ema2_89 = request.security(syminfo.tickerid, res1, ta.ema(close, hl))
ema3_5 = request.security(syminfo.tickerid, res2, ta.ema(close, 5))
ema3_15 = request.security(syminfo.tickerid, res2, ta.ema(close, 15))

// Plot JLines Cloud
p1_1 = plot(ema1_72, "TimeFrame 1 - SL", color=color.blue, display=display.none)
p1_2 = plot(ema1_89, "TimeFrame 1 - HL", color=color.blue, display=display.none)
p2_1 = plot(ema2_72, "TimeFrame 2 - SL", color=color.yellow, display=display.none)
p2_2 = plot(ema2_89, "TimeFrame 2 - HL", color=color.yellow, display=display.none)
p3_1 = plot(enable515 ? ema3_5 : na, "Late Day Fade - 5 EMA", color=color.yellow, display=display.none)
p3_2 = plot(enable515 ? ema3_15 : na, "Late Day Fade - 15 EMA", color=color.yellow, display=display.none)

fill(p1_1, p1_2, color=ema1_72 > ema1_89 ? color.new(color.green, 30) : color.new(color.red, 30), title="Background 1")
fill(p2_1, p2_2, color=ema2_72 > ema2_89 ? color.new(color.green, 90) : color.new(color.red, 90), title="Background 2")
fill(p3_1, p3_2, color=enable515 ? (ema3_5 > ema3_15 ? color.new(color.blue, 50) : color.new(color.red, 50)) : na, title="Late Day Fade")

// Plot Buy and Sell signals
plotshape(pos == 1, title="Buy", style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(pos == -1, title="Sell", style=shape.triangledown, location=location.abovebar, color=color.red)

// Volume Analysis
vol_length = input.int(20, "Volume SMA length", minval=1)
vol_avg = ta.sma(volume, vol_length)

unusual_vol_down = volume > vol_avg * 1.2 and close < open
unusual_vol_up = volume > vol_avg * 1.2 and close > open

barcolor(unusual_vol_down or unusual_vol_up ? color.yellow : na)

// ATR Indicator
len2 = input.int(20, minval=1, title="Smooth")
src = input.source(close, title="Source")
out = ta.vwma(src, len2)
avg1 = math.avg(out, xATRTrailingStop) // FIXED: Replaced `ta.avg()` with `math.avg()`

plot(avg1, color=color.aqua, title="ATR")

// Daily Open Line
dl = input.bool(true, "Show daily Open")
dopen = request.security(syminfo.tickerid, "D", open)
plot(dl ? dopen : na, title="Day Open", color=color.orange, style=plot.style_circles, linewidth=2)

// Strategy Entry Conditions
if pos == 1 and not isLong and ema1_72 > ema1_89 and ema2_72 > ema2_89 and ema1_72 > ema2_72 and close > dopen
    entryPrice := close
    exitPrice := close + target
    exitStop := entryPrice - stopLoss
    strategy.entry("Buy", strategy.long)
    strategy.exit("buy_target", "Buy", limit=exitPrice)
    isLong := true
    isShort := false

if pos == -1 and not isShort and ema1_72 < ema1_89 and ema2_72 < ema2_89 and ema1_72 < ema2_72 and close < dopen
    entryPrice := close
    exitPrice := close - target
    exitStop := entryPrice + stopLoss
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell_target", "Sell", limit=exitPrice)
    isLong := false
    isShort := true

// Stop Loss Handling
if strategy.position_size > 0 and close < entryPrice - stopLoss
    strategy.close("Buy", comment="Buy_Stop Loss")

if strategy.position_size < 0 and close > entryPrice + stopLoss
    strategy.close("Sell", comment="Sell_Stop Loss")