এই কৌশলটি দুটি সূচক ব্যবহার করে, এটিআর (গড় সত্য পরিসীমা) এবং ইএমএ (প্রতিরোধ্য চলমান গড়), বাজারের অস্থিরতার সাথে খাপ খাইয়ে নেওয়ার জন্য লাভ এবং স্টপ লস স্তরগুলি গতিশীলভাবে সামঞ্জস্য করতে। কৌশলটির মূল ধারণাটি হ'ল এটিআর সূচকটি ব্যবহার করে বাজারের অস্থিরতা পরিমাপ করা এবং অস্থিরতার মাত্রার উপর ভিত্তি করে লাভ এবং স্টপ লস স্তর নির্ধারণ করা। একই সাথে, ইএমএ সূচকটি ট্রেডিং দিক নির্ধারণের জন্য ব্যবহৃত হয়। যখন দাম ইএমএর উপরে ভঙ্গ করে, তখন একটি দীর্ঘ অবস্থান খোলা হয় এবং যখন দাম ইএমএর নীচে ভঙ্গ করে, তখন একটি শর্ট অবস্থান খোলা হয়। এই কৌশলটি বাজারের অস্থিরতার পরিবর্তন অনুসারে স্বয়ংক্রিয়ভাবে লাভ এবং স্টপ লস স্তরগুলি সামঞ্জস্য করতে পারে, যার ফলে গতিশীল ঝুঁকি নিয়ন্ত্রণের উদ্দেশ্য অর্জন করা যায়।
এই কৌশলটি ট্রেডিংয়ের দিকনির্দেশনা নির্ধারণের জন্য ইএমএ সূচক ব্যবহার করার সময় বাজারের অস্থিরতার পরিবর্তনের সাথে খাপ খাইয়ে নেওয়ার জন্য গতিশীলভাবে লাভ এবং স্টপ লস স্তরগুলি সামঞ্জস্য করতে এটিআর এবং ইএমএ সূচকগুলি ব্যবহার করে। কৌশলটির দৃ strong় অভিযোজনযোগ্যতা এবং প্রবণতা অনুসরণ করার ক্ষমতা রয়েছে, তবে প্যারামিটার সেটিংস, দোলনকারী বাজার এবং প্রবণতা বিপরীতমুখী কিছু ঝুঁকির মুখোমুখি হতে পারে। ভবিষ্যতে, কৌশলটির কার্যকারিতা আরও প্রযুক্তিগত সূচক প্রবর্তন, লাভ এবং স্টপ লস অ্যালগরিদমগুলি অনুকূলিতকরণ, প্যারামিটার অপ্টিমাইজেশন এবং অবস্থান পরিচালনার মডিউল যুক্ত করে উন্নত করা যেতে পারে।
/*backtest start: 2024-04-27 00:00:00 end: 2024-05-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}] */ //@version=5 strategy(title='UT MB&SS Bot', overlay=true) // Inputs a = input(1, title='Key Value. \'This changes the sensitivity\'') c = input(10, title='ATR Period') h = input(false, title='Signals from Heikin Ashi Candles') stoploss = input(2.0, title='Stop Loss (ATR Multiples)') xATR = ta.atr(c) nLoss = a * xATR src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close var xATR_trailing_stop = 0.0 iff_1 = src > nz(xATR_trailing_stop[1], 0) ? src - nLoss : src + nLoss iff_2 = src < nz(xATR_trailing_stop[1], 0) and src[1] < nz(xATR_trailing_stop[1], 0) ? math.min(nz(xATR_trailing_stop[1]), src + nLoss) : iff_1 xATR_trailing_stop := src > nz(xATR_trailing_stop[1], 0) and src[1] > nz(xATR_trailing_stop[1], 0) ? math.max(nz(xATR_trailing_stop[1]), src - nLoss) : iff_2 pos = 0 iff_3 = src[1] > nz(xATR_trailing_stop[1], 0) and src < nz(xATR_trailing_stop[1], 0) ? -1 : nz(pos[1], 0) pos := src[1] < nz(xATR_trailing_stop[1], 0) and src > nz(xATR_trailing_stop[1], 0) ? 1 : iff_3 xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue ema = ta.ema(src, 1) above = ta.crossover(ema, xATR_trailing_stop) below = ta.crossover(xATR_trailing_stop, ema) buy = src > xATR_trailing_stop and above sell = src < xATR_trailing_stop and below barbuy = src > xATR_trailing_stop barsell = src < xATR_trailing_stop plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny) plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny) barcolor(barbuy ? color.green : na) barcolor(barsell ? color.red : na) stop_level = pos == 1 ? xATR_trailing_stop - stoploss * xATR : xATR_trailing_stop + stoploss * xATR stop_level := math.max(stop_level, nz(stop_level[1])) if pos == 1 strategy.exit('Exit Long', 'UT Long', stop=stop_level) else if pos == -1 strategy.exit('Exit Short', 'UT Short', stop=stop_level) if buy strategy.entry("Enter Long", strategy.long) else if sell strategy.entry("Enter Short", strategy.short)