এই কৌশলটি ট্রেডিং কৌশল অনুসরণ করে একটি প্রবণতা বাস্তবায়নের জন্য সুপারট্রেন্ড সূচক এবং ডিইএমএ সূচককে একত্রিত করে। যখন দাম উপরের ব্যান্ডটি ভেঙে যায় তখন এটি ক্রয় সংকেত তৈরি করে এবং যখন দাম নীচের ব্যান্ডটি ভেঙে যায় তখন বিক্রয় সংকেত তৈরি করে। ডিইএমএ সূচকটি মিথ্যা সংকেতগুলি ফিল্টার করতে ব্যবহৃত হয়। এই কৌশলটি ট্রেন্ডিং বাজারের জন্য ভাল কাজ করে এবং কার্যকরভাবে প্রবণতা অনুসরণ করতে পারে এবং সংহতকরণ ফিল্টার করতে পারে।
এই কৌশলটির মূল অংশটি দামের প্রবণতা দিক নির্ধারণের জন্য সুপারট্রেন্ড সূচকের উপর নির্ভর করে। সুপারট্রেন্ড সূচকটি এটিআর সূচককে অন্তর্ভুক্ত করে এবং কার্যকরভাবে দামের প্রবণতা সনাক্ত করতে পারে। যখন দাম বেড়ে যায়, তখন একটি উপরের ব্যান্ড গঠন হবে এবং যখন দাম কমে যায়, তখন একটি নিম্ন ব্যান্ড গঠন হবে। নিম্ন ব্যান্ড থেকে একটি ব্রেকআউট একটি প্রবণতা বিপরীতের সংকেত দেয় এবং একটি ক্রয় সংকেত উত্পন্ন করে। উপরের ব্যান্ড থেকে একটি ব্রেকআউট একটি প্রবণতা বিপরীতের সংকেত দেয় এবং একটি বিক্রয় সংকেত উত্পন্ন করে।
মিথ্যা সংকেতগুলি ফিল্টার করার জন্য, এই কৌশলটি ডিইএমএ সূচককেও অন্তর্ভুক্ত করে। যখন দামগুলি উপরের ব্যান্ডটি ভেঙে দেয় এবং ডিইএমএ লাইনের উপরে থাকে তখনই কিনুন সংকেত উত্পন্ন হয়। বিক্রয় সংকেতগুলি কেবল তখনই উত্পন্ন হয় যখন দামগুলি নীচের ব্যান্ডটি ভেঙে দেয় এবং ডিইএমএ লাইনের নীচে থাকে। এটি কার্যকরভাবে ব্যাপ্তির বাজারে মিথ্যা সংকেতগুলি ফিল্টার করে।
বিশেষ করে, ট্রেডিং সিগন্যাল লজিক নিম্নরূপঃ
এই লজিক ডিজাইনের মাধ্যমে, কৌশলটি ট্রেন্ডিং মার্কেটের প্রবণতা অনুসরণ করতে পারে এবং বিভিন্ন বাজারে ঘন ঘন পজিশন খোলার বিষয়টি এড়াতে পারে।
ঝুঁকি ব্যবস্থাপনাঃ
কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
সুপারট্রেন্ড প্যারামিটার অপ্টিমাইজেশান। সর্বোত্তম প্যারামিটার খুঁজে পেতে বিভিন্ন ATR সময়ের সমন্বয় পরীক্ষা করুন।
ডিএমএ প্যারামিটার অপ্টিমাইজেশান. সর্বোত্তম সেটিংস নির্ধারণ করতে বিভিন্ন মান পরীক্ষা.
স্টপ লস মেকানিজম যোগ করুন। অতিরিক্ত আকারের স্টপগুলি রোধ করার জন্য এটিআর মানগুলির উপর ভিত্তি করে স্টপ লস সেট করুন।
সিগন্যাল ফিল্টার যোগ করুন। মিথ্যা সংকেত প্রতিরোধ করার জন্য মূল পয়েন্টগুলিতে অন্যান্য সূচক থেকে নিশ্চিতকরণ বৃদ্ধি করুন। উদাহরণস্বরূপ, প্রবণতা বিপরীত পয়েন্টগুলিতে ভলিউম নিশ্চিতকরণ যুক্ত করুন।
পজিশনের আকার উন্নত করা। বাজারের অস্থিরতা এবং ঝুঁকিগুলির উপর ভিত্তি করে গতিশীলভাবে আকারগুলি সামঞ্জস্য করুন।
এই কৌশলটি প্রবণতা অনুসরণ এবং সংকেত ফিল্টারিংয়ের উপর ভিত্তি করে একটি পরিমাণগত ট্রেডিং কৌশল বাস্তবায়নের জন্য সুপারট্রেন্ড এবং ডিইএমএ সূচকগুলির শক্তিকে একত্রিত করে। স্থিতিশীলতা এবং লাভজনকতা আরও উন্নত করতে প্যারামিটার টিউনিং, স্টপ লস এবং সংকেত ফিল্টারগুলির মাধ্যমে অপ্টিমাইজেশনের জন্য প্রচুর জায়গা রয়েছে। কৌশল যুক্তি সহজ এবং নিয়ন্ত্রণযোগ্য ঝুঁকিগুলির সাথে বাস্তবায়ন করা সহজ। এটি লাইভ ট্রেডিংয়ের জন্য উপযুক্ত।
/*backtest start: 2023-11-07 00:00:00 end: 2023-12-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Krish\'s Supertrend Strategy', overlay=true) // Supertrend Settings 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)) // DEMA Settings dema_length = 200 dema = ta.ema(close, dema_length) // Long and Short Conditions longCondition = buySignal and close > dema shortCondition = sellSignal and close < dema // Strategy Entry and Exit strategy.entry('Long', strategy.long, when=longCondition) strategy.entry('Short', strategy.short, when=shortCondition) strategy.close('Long', when=ta.change(trend) or close < dema) strategy.close('Short', when=ta.change(trend) or close > dema) // Plotting 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 Highlighter', color=longFillColor, transp=90) fill(mPlot, dnPlot, title='DownTrend Highlighter', color=shortFillColor, transp=90) // Alerts (using plotshape for alerts in strategies) plotshape(buySignal, title='SuperTrend Buy', color=color.new(color.green, 0), style=shape.triangleup, size=size.small) plotshape(sellSignal, title='SuperTrend Sell', color=color.new(color.red, 0), style=shape.triangledown, size=size.small) changeCond = trend != trend[1] plotshape(changeCond, title='SuperTrend Direction Change', color=color.new(color.yellow, 0), style=shape.triangleup, size=size.small)