ডায়নামিক মুভিং এভারেজ ট্র্যাকিং কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১১-২৪ 16:59:25
ট্যাগঃ

img

সারসংক্ষেপ

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

নীতিমালা

কৌশলটি প্রথমে এটিআর সূচকটি গণনা করে, তারপরে ইনপুট মূল্য উত্স এবং পরামিতিগুলিকে সংযুক্ত করে গতিশীল চলমান গড় গণনা করে। যখন দাম গতিশীল চলমান গড়ের উপরে / নীচে অতিক্রম করে তখন দীর্ঘ / সংক্ষিপ্ত সংকেত উত্পন্ন হয়। এদিকে, স্টপ লস এবং লাভের অবস্থানগুলি রিয়েল টাইমে দামের পরিবর্তনগুলি ট্র্যাক করতে সেট করা হয়।

বিশেষত, এটিআর সূচক এবং প্যারামিটার এন লস প্রথমে গণনা করা হয়। তারপরে বর্তমান সময়ের মূল্য এবং পূর্ববর্তী সময়ের স্টপ লস অবস্থান স্টপ লস লাইন আপডেট করার জন্য তুলনা করা হয়। যখন দাম পূর্ববর্তী সময়ের স্টপ লস লাইনের মধ্য দিয়ে ভেঙে যায়, তখন দীর্ঘ / সংক্ষিপ্ত সংকেত পোস এবং সংশ্লিষ্ট রঙগুলি উত্পন্ন হয়। যখন ট্রেডিং সংকেতগুলি ট্রিগার করা হয়, তখন তীর চিহ্নগুলি প্লট করা হয়। অবশেষে স্টপ লস / লাভ গ্রহণের যৌক্তিকতার ভিত্তিতে অবস্থানগুলি বন্ধ করা হয়।

সুবিধা বিশ্লেষণ

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

ঝুঁকি এবং সমাধান

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

সমাধানগুলির মধ্যে রয়েছে চলমান গড় সময়ের অনুকূলকরণ, মিথ্যা সংকেতগুলির সম্ভাবনা হ্রাস করার জন্য এটিআর এবং স্টপ লস সহগকে সামঞ্জস্য করা। অতিরিক্ত ঘন ব্যবসায় এড়াতে অতিরিক্ত ফিল্টার যুক্ত করা যেতে পারে।

অপ্টিমাইজেশান নির্দেশাবলী

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. সর্বোত্তম পরামিতি সমন্বয় খুঁজে পেতে চলমান গড়ের বিভিন্ন ধরণের এবং সময়কাল পরীক্ষা করুন

  2. স্টপ লস সংবেদনশীলতার ভারসাম্য বজায় রাখার জন্য ATR সময়কালের প্যারামিটারটি অপ্টিমাইজ করুন

  3. সিগন্যালের গুণমান উন্নত করতে অতিরিক্ত ফিল্টার এবং সূচক যুক্ত করুন

  4. ঝুঁকি পুরস্কার অনুপাত অপ্টিমাইজ করার জন্য স্টপ লস/ট্যাক প্রফিট মানগুলি সামঞ্জস্য করুন

সিদ্ধান্ত

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


/*backtest
start: 2022-11-23 00:00:00
end: 2023-11-05 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT","stocks":0}]
*/

//@version=5
strategy(title='UT Bot v5', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 
//Edited and converted to @version=5 by SeaSide420 for Paperina
// Inputs
AllowBuy = input(defval=true, title='Allow Buy?')
AllowSell = input(defval=false, title='Allow Sell?')
h = input(false, title='Signals from Heikin Ashi Candles')
//revclose = input(defval=true, title='Close when reverse signal?')
Price = input(defval=open, title='Price Source (recommended OPEN to avoid repainting)')
smoothing = input.string(title="Moving Average Type", defval="HMA", options=["SMA", "EMA", "WMA", "HMA"])
MA_Period = input(2, title='This changes the MAPeriod')
a = input.float(1, title='This changes the sensitivity',step=0.1)
c = input(11, title='ATR Period')
TakeProfit = input.int(defval=50000, title='Take Profit ($)', minval=1)
StopLoss = input.int(defval=50000, title='Stop Loss ($)', minval=1)
xATR = ta.atr(c)
nLoss = a * xATR
src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, Price, lookahead=barmerge.lookahead_off) : Price
xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2
pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3
xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue
ma_function(src, MA_Period) =>
    switch smoothing
        "SMA" => ta.sma(src, MA_Period)
        "EMA" => ta.ema(src, MA_Period)
        "WMA" => ta.wma(src, MA_Period)
        => ta.hma(src, MA_Period)
thema = ma_function(src, MA_Period)
above = ta.crossover(thema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, thema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
plot(thema,title="The M.A.",color=color.green,linewidth=2)
plot(xATRTrailingStop,title="The M.A.",color=color.red,linewidth=2)
plotshape(buy,  title = "Buy",  text = "Buy",  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, size = size.tiny)
plotshape(sell, title = "Sell", text = "Sell", style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, size = size.tiny)
barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)
strategy.close_all(when=strategy.openprofit>TakeProfit,alert_message="Close- TakeProfit", comment = "TP")
strategy.close_all(when=strategy.openprofit<StopLoss-(StopLoss*2),alert_message="Close- StopLoss", comment = "SL")
strategy.close("buy", when =  sell and AllowSell==false , comment = "close buy")
strategy.close("sell", when =  buy and AllowBuy==false, comment = "close sell")
strategy.entry("buy", strategy.long, when = buy and AllowBuy)
strategy.entry("sell", strategy.short, when = sell and AllowSell)

আরো