এটি সুপারট্রেন্ড সূচক এবং এটিআর সূচকের উপর ভিত্তি করে একটি কৌশল। এই কৌশলটির মূল ধারণা হ'ল সুপারট্রেন্ড সূচকটি বর্তমান বাজারের প্রবণতার দিক নির্ধারণ করতে এবং সুপারট্রেন্ড সূচকটি পরিবর্তিত হলে বাণিজ্য করা। একই সাথে, এই কৌশলটি স্টপ লস এবং লাভের দাম গণনা করতে এটিআর সূচক ব্যবহার করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য অ্যাকাউন্ট ব্যালেন্সের একটি নির্দিষ্ট শতাংশের ভিত্তিতে অবস্থান আকার গণনা করে।
এই কৌশলটির মূলনীতি নিম্নরূপঃ
এই কৌশলটির সুবিধাগুলি নিম্নরূপঃ
এই কৌশলের ঝুঁকি নিম্নরূপঃ
উপরের ঝুঁকিগুলি মোকাবেলা করার জন্য, নিম্নলিখিত ব্যবস্থা গ্রহণ করা যেতে পারেঃ
এই কৌশল নিম্নলিখিত ক্ষেত্রে অপ্টিমাইজ করা যেতে পারেঃ
উপরের অপ্টিমাইজেশানগুলি কৌশলটির লাভজনকতা এবং স্থিতিশীলতা বাড়িয়ে তুলতে পারে, একই সাথে এর ঝুঁকি হ্রাস করে, এটিকে বিভিন্ন বাজারের পরিবেশে আরও অভিযোজিত করে তোলে।
এই কৌশলটি সুপারট্রেন্ড সূচক এবং এটিআর সূচককে ঝুঁকি নিয়ন্ত্রণের সময় কার্যকরভাবে প্রবণতা ক্যাপচার করতে একত্রিত করে। সর্বোত্তম অবস্থানের আকার গণনা করে, প্রতিটি ব্যবসায়ের ঝুঁকি নিয়ন্ত্রণযোগ্য। তবে, এই কৌশলটি একটি অস্থির বাজারে উচ্চ লেনদেনের ব্যয় এবং ড্রডাউন তৈরি করতে পারে। আরও প্রযুক্তিগত সূচক প্রবর্তন করে, পরামিতিগুলি অনুকূল করে, ঝুঁকি নিয়ন্ত্রণের কারণগুলি যুক্ত করে এবং লাভের কৌশলগুলি উন্নত করে, এই কৌশলটির কার্যকারিতা আরও উন্নত করা যেতে পারে। সামগ্রিকভাবে, এই কৌশলটি একটি সহজ এবং কার্যকর প্রবণতা অনুসরণকারী কৌশল যা ট্রেন্ডিং বাজারে ব্যবহারের জন্য উপযুক্ত।
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tradez99 //@version=5 strategy('Supertrend', overlay=true, format=format.price, precision=2) Periods = input(title='ATR Period', defval=10) src = input(hl2, title='Source') Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0) changeATR = input(title='Change ATR Calculation Method ?', defval=true) showsignals = input(title='Show Buy/Sell Signals ?', defval=true) highlighting = input(title='Highlighter On/Off ?', defval=true) atr2 = ta.sma(ta.tr, Periods) atr = changeATR ? ta.atr(Periods) : atr2 up = src - Multiplier * atr up1 = nz(up[1], up) up := close[1] > up1 ? math.max(up, up1) : up dn = src + Multiplier * atr dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? math.min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0)) buySignal = trend == 1 and trend[1] == -1 plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0)) plotshape(buySignal and showsignals ? up : na, title='Buy', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0)) dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0)) sellSignal = trend == -1 and trend[1] == 1 plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0)) plotshape(sellSignal and showsignals ? dn : na, title='Sell', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0)) mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0) longFillColor = highlighting ? trend == 1 ? color.green : color.white : color.white shortFillColor = highlighting ? trend == -1 ? color.red : color.white : color.white //fill(mPlot, upPlot, title='UpTrend Highligter', color=longFillColor) //fill(mPlot, dnPlot, title='DownTrend Highligter', color=shortFillColor) multiplier = input.float(title="ATR multiplier", defval = 1.5) rr = input.float(title="Risk:Reward", defval=1.0) riskPerTrade = input.float(title="Risk Per Trade %", defval=1.0) atr3 = ta.atr(14) //calculate stops and targets longstop = close - (atr3 * multiplier) shortstop = close + (atr3 * multiplier) longStopDistance = close - longstop shortStopDistance = shortstop - close longTarget = close + (longStopDistance * rr) shortTarget = close - (shortStopDistance * rr) // Save stops & targets var t_stop = 0.0 var t_target = 0.0 longCondition = buySignal if (longCondition) t_stop := longstop t_target := longTarget positionSize = math.floor((strategy.equity * (riskPerTrade/100)) / (close - t_stop)) strategy.entry("Long", strategy.long, qty = positionSize) shortCondition = sellSignal if (shortCondition) t_stop := shortstop t_target := shortTarget positionSize = math.floor((strategy.equity * (riskPerTrade/100)) / (t_stop - close)) strategy.entry("Short", strategy.short, qty = positionSize) strategy.exit(id="Long Exit", from_entry="Long", limit=t_target, stop=t_stop) strategy.exit(id="Short Exit", from_entry="Short", limit=t_target, stop=t_stop)