ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশল একটি পরিমাণগত ট্রেডিং কৌশল যা সুপারট্রেন্ড সূচক এবং স্টক আরএসআই সূচক থেকে ওভারবয় / ওভারসোল্ড সংকেতগুলির বহু-সময়সীমার প্রবণতা অনুসরণ করে। কৌশলটি বাজারের প্রবণতা নির্ধারণের জন্য বিভিন্ন পরামিতি সেটিং সহ তিনটি সুপারট্রেন্ড সূচক ব্যবহার করে এবং ট্রেড সংকেতগুলি ফিল্টার করতে স্টক আরএসআই সংকেতগুলিকে একত্রিত করে। বিশেষত, যখন দুটি দ্রুত সুপারট্রেন্ড সূচক একই সাথে কেনা / বিক্রয় সংকেত দেয়, যদি স্টক আরএসআই সূচকটি নিশ্চিত করে তবে সংশ্লিষ্ট দীর্ঘ / সংক্ষিপ্ত অবস্থান নেওয়া হবে।
ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশলটির মূল যুক্তি হ'ল বিভিন্ন পরামিতি সহ সুপারট্রেন্ড সূচক এবং ট্রেড সিগন্যাল ফিল্টারিংয়ের জন্য স্টক আরএসআই সূচককে সংকেত মান উন্নত করতে এবং মিথ্যা সংকেত হ্রাস করতে একত্রিত করা।
প্রথমত, কৌশলটি প্রধান বাজারের প্রবণতা নির্ধারণের জন্য বিভিন্ন প্যারামিটার সেটিং সহ তিনটি সুপারট্রেন্ড সূচক গ্রহণ করে। তিনটি সুপারট্রেন্ড সূচকগুলিতে বিভিন্ন স্তরের প্রবণতা পরিবর্তনগুলি ক্যাপচার করার জন্য দ্রুত থেকে ধীর সময়ের ফ্রেম পর্যন্ত প্যারামিটার রয়েছে। যখন দ্রুততম এবং দ্বিতীয় দ্রুততম সুপারট্রেন্ড সূচকগুলি একযোগে কেনা / বিক্রয় সংকেত দেয়, আমরা একটি প্রাথমিক বিচার করি যে সংকেতের কিছু নির্ভরযোগ্যতা রয়েছে।
দ্বিতীয়ত, স্টক আরএসআই সূচকটি বাজারে সিগন্যালটি ঘটে যখন বাজারটি অত্যন্ত বেশি ক্রয় বা বেশি বিক্রি হয় কিনা তা নির্ধারণের জন্য চালু করা হয়। স্টক আরএসআই সূচকটি আরএসআই এবং স্টোকাস্টিক সূচকগুলির শক্তিগুলিকে একত্রিত করে, অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় বাজারের অবস্থার উপর কার্যকর বিচারকে সক্ষম করে। যখন দ্রুততম এবং দ্বিতীয় দ্রুততম সুপারট্রেন্ড সংকেতগুলি স্টক আরএসআই সংকেতগুলির সাথে সারিবদ্ধ হয়, তখন চূড়ান্ত কিনুন / বিক্রয় সংকেতগুলি ট্রিগার করা যেতে পারে।
একাধিক সূচক এবং সময়সীমার সংমিশ্রণের মাধ্যমে, ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশল কার্যকরভাবে বাজারের গোলমাল ফিল্টার করতে পারে, সংকেত নির্ভরযোগ্যতা উন্নত করতে পারে এবং ভুল ট্রেড হ্রাস করতে পারে।
ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশলটির সবচেয়ে বড় সুবিধা হল একাধিক সূচক এবং সময়সীমার কার্যকর সমন্বয় যা নিম্নলিখিত সুবিধাগুলি নিয়ে আসেঃ
ত্রুটিপূর্ণ ট্রেডিং সংকেত হ্রাস করে। ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই সূচকগুলির সমন্বয় পৃথক সূচকগুলির সাথে আসা গোলমাল এবং মিথ্যা সংকেতগুলিকে ব্যাপকভাবে হ্রাস করতে পারে।
লাভজনক সংকেত অনুপাত উন্নত করে। সংকেত ফ্রিকোয়েন্সি হ্রাস সত্ত্বেও, লাভজনক সংকেতগুলির অনুপাত উল্লেখযোগ্য উন্নতি দেখে।
ট্রেন্ডিং মার্কেটের জন্য উপযুক্ত। মাল্টি-টাইমফ্রেম ফিল্টারিং মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতা ক্যাপচার করা সহজ করে তোলে, ট্রেন্ডিং মার্কেট পরিবেশে ভালভাবে ফিট করে।
আরও ভাল পারফরম্যান্সের জন্য সহজ অপ্টিমাইজেশান। ট্রিপল সূচকগুলি পরামিতি অপ্টিমাইজেশনের জন্য বৃহত্তর সম্ভাবনা দেয়।
ব্যক্তিগত ট্রেডিং স্টাইলের জন্য কাস্টমাইজযোগ্য প্যারামিটার। প্যারামিটারগুলি নিজের ট্রেডিং স্টাইলের সাথে আরও ভালভাবে সামঞ্জস্য করার জন্য অবাধে সামঞ্জস্য করা যেতে পারে।
ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশলগুলির সাথে যুক্ত কিছু ঝুঁকি রয়েছেঃ
সিগন্যাল ফ্রিকোয়েন্সি হ্রাস। মাল্টিলেয়ার ফিল্টার প্রক্রিয়া কৌশলটির ট্রেডিং ফ্রিকোয়েন্সি উল্লেখযোগ্যভাবে হ্রাস করে।
কিছু সম্ভাব্য সংকেত মিস করার প্রবণতা। সংরক্ষণশীল প্রকৃতি কৌশল কিছু লাভজনক সুযোগ মিস করতে পারে।
প্যারামিটার নির্ভরতা বৃদ্ধি। আরও সূচক মানে অপ্টিমাইজেশনে আরও অসুবিধা।
সীমিত প্রবণতা অনুসরণ করার ক্ষমতা। একাধিক সময়সীমার সমন্বয় কৌশলটির প্রবণতা অনুসরণ করার নমনীয়তাকেও সীমাবদ্ধ করে।
এই ঝুঁকিগুলি মোকাবেলা করার জন্য, লাভজনকতার মান উন্নত করার সাথে সাথে ঝুঁকি নিয়ন্ত্রণকে উন্নত করার জন্য সূচকের পরামিতিগুলি সামঞ্জস্য এবং আরও পরিপূরক সূচক প্রবর্তনের মতো অপ্টিমাইজেশন ব্যবস্থা গ্রহণ করা যেতে পারে।
ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশল আরও অপ্টিমাইজেশনের জন্য এখনও জায়গা আছেঃ
সর্বোত্তম সমন্বয় জন্য সূচক পরামিতি সামঞ্জস্য করুন। সর্বোত্তম খুঁজে পেতে পরামিতি আরো সেট পরীক্ষা করা যেতে পারে।
ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস/টেক প্রফিট চালু করুন। এটি কৌশলটির স্থিতিশীলতাকে ব্যাপকভাবে উন্নত করতে পারে।
সিগন্যাল বৈধকরণের জন্য আরও সূচক অন্তর্ভুক্ত করুন, যেমন ভলিউম সূচক।
বাজারের পরিবর্তনশীল গতিশীলতা অনুযায়ী স্বয়ংক্রিয়ভাবে প্যারামিটার অপ্টিমাইজ করার জন্য অভিযোজনযোগ্য ক্ষমতা তৈরি করুন।
কর্মক্ষমতা পূর্বাভাসের জন্য মেশিন লার্নিং অ্যালগরিদম একত্রিত করুন, সংকেতের নির্ভুলতা মূল্যায়ন করুন।
ক্রমাগত অপ্টিমাইজেশনের মাধ্যমে, ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশল একটি স্থিতিশীল, দক্ষ ট্রেডিং সিস্টেমে বিকশিত হতে পারে, উল্লেখযোগ্য আলফা প্রদান করে।
ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশলটি মাল্টি-টাইমফ্রেম বিশ্লেষণ এবং ওভারবাপ্ট / ওভারসোল্ড বিচারের সাথে একটি অনন্য ট্রেডিং কৌশল অনুসরণ করে ট্রেডিং কৌশলতে সফলভাবে একত্রিত করে। এটি প্রবণতা অনুসরণ এবং সূচক ফিল্টারিংয়ের দ্বৈত সুবিধাগুলি বজায় রাখে, মিথ্যা সংকেত হ্রাস করার সময় লাভজনক সংকেতগুলি উন্নত করে। যদিও ঝুঁকি এবং অপ্টিমাইজেশনের স্থান এখনও বিদ্যমান রয়েছে, তবে এর লাভজনকতা এবং স্থিতিশীলতা প্যারামিটার টিউনিং এবং কৌশল অপ্টিমাইজেশনের মাধ্যমে আরও বাড়ানো যেতে পারে। সামগ্রিকভাবে, ট্রিপল সুপারট্রেন্ড এবং স্টক আরএসআই কৌশল একটি উচ্চ মানের পরিমাণগত ট্রেডিং কৌশল পছন্দ সরবরাহ করে।
/*backtest start: 2022-11-29 00:00:00 end: 2023-04-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © M3RZI //@version=4 strategy("3x Supertrend and Stoch RSI", overlay = true, max_bars_back = 1000) //INPUTS STATRLENGTH1 = input(10, title = "Fast Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS") STATRMULT1 = input(1, title = "Fast Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS") STATRLENGTH2 = input(11, title = "Medium Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS") STATRMULT2 = input(2, title = "Medium Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS") STATRLENGTH3 = input(12, title = "Slow Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS") STATRMULT3 = input(3, title = "Slow Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS") stochK = input(3, title = "K (Stochastic Fast)", type = input.integer, group = "STOCHASTIC RSI SETTINGS") stochD = input(3, title = "D (Signal Line)", type = input.integer, group = "STOCHASTIC RSI SETTINGS") rsiLength = input(14, title = "RSI Length", type = input.integer, group = "STOCHASTIC RSI SETTINGS") stochLength = input(14, title = "Stochastic Length", type = input.integer, group = "STOCHASTIC RSI SETTINGS") rsiSource = input(close, title = "RSI Source", type = input.source, group = "STOCHASTIC RSI SETTINGS") stochRestrictions = input(false, title = "Restrict crosses to overbought/oversold territory", type = input.bool, group = "STOCHASTIC RSI SETTINGS") overboughtLine = input(80, title = "Stochastic RSI Upper Band", type = input.integer, group = "STOCHASTIC RSI SETTINGS") oversoldLine = input(20, title = "Stochastic RSI Lower Band", type = input.integer, group = "STOCHASTIC RSI SETTINGS") EMALength = input(200, title = "EMA Length", type = input.integer, group = "EMA SETTINGS") SLStrategy = input("ATR Based", title = "Stop Loss Strategy", options = ["ATR Based"],type = input.string, group = "POSITION EXIT SETTINGS") SLATRLength = input(14, title = "Stop Loss ATR Length", type = input.integer, group = "POSITION EXIT SETTINGS") SLATRMult = input(2.7, title = "Stop Loss ATR Multiplier", type = input.float, group = "POSITION EXIT SETTINGS") TPStrategy = input("ATR Based", title = "Take Profit Strategy", options = ["ATR Based"],type = input.string, group = "POSITION EXIT SETTINGS") TPATRLength = input(14, title = "Take Profit ATR Length", type = input.integer, group = "POSITION EXIT SETTINGS") TPATRMult = input(1.6, title = "Take Profit ATR Multiplier", type = input.float, group = "POSITION EXIT SETTINGS") //SUPERTRENDS [superTrend1,dir1] = supertrend(STATRMULT1,STATRLENGTH1) [superTrend2,dir2] = supertrend(STATRMULT2,STATRLENGTH2) [superTrend3,dir3] = supertrend(STATRMULT3,STATRLENGTH3) directionST1 = dir1 == 1 and dir1[1] == 1 ? false : dir1 == -1 and dir1[1] == -1 ? true : na directionST2 = dir2 == 1 and dir2[1] == 1 ? false : dir2 == -1 and dir2[1] == -1 ? true : na directionST3 = dir3 == 1 and dir3[1] == 1 ? false : dir3 == -1 and dir3[1] == -1 ? true : na //STOCH RSI rsi = rsi(rsiSource, rsiLength) k = sma(stoch(rsi, rsi, rsi, stochLength), stochK) d = sma(k, stochD) //EMA ema = ema(close,EMALength) //CONDITIONS LONG AND SHORT var long = false var longCondition = false var short = false var shortCondition = false var drawing = false var TP = 0.0 var SL = 0.0 var middle = 0.0 var initial = 0 stopSize = atr(SLATRLength) * SLATRMult profitSize = atr(TPATRLength) * TPATRMult longStop = close - stopSize longProfit = close + profitSize current = close shortStop = close + stopSize shortProfit = close - profitSize barInitial = bar_index if stochRestrictions longCondition := close > ema and ((directionST1 == true and directionST2 == true) or (directionST2 == true and directionST3 == true)) and crossover(k,d) and k < oversoldLine and not long and not drawing shortCondition := close < ema and ((directionST1 == false and directionST2 == false) or (directionST2 == false and directionST3 == false)) and crossunder(k,d) and k > overboughtLine and not short and not drawing else longCondition := close > ema and ((directionST1 == true and directionST2 == true) or (directionST2 == true and directionST3 == true)) and crossover(k,d) and not long and not drawing shortCondition := close < ema and ((directionST1 == false and directionST2 == false) or (directionST2 == false and directionST3 == false)) and crossunder(k,d) and not short and not drawing if longCondition long := true short := false drawing := true TP := longProfit middle := current SL := longStop initial := barInitial strategy.entry("Long", strategy.long, 10) strategy.exit("Long exit","Long", limit = TP, stop = SL) alert("Long signal Supertrend \n Profit:"+tostring(TP)+"\Curret price:"+tostring(close)+"\Stop:"+tostring(SL),alert.freq_once_per_bar_close) //label.new(bar_index,low,text = "Long\nTP:"+tostring(TP)+"\nSL:"+tostring(SL)+"\nAbierto:"+tostring(current), yloc = yloc.belowbar, textcolor = color.white, color = color.green, size = size.small, style = label.style_label_up) if shortCondition short := true long := false drawing := true TP := shortProfit middle := current SL := shortStop initial := barInitial strategy.entry("Short", strategy.short, 10) strategy.exit("Short exit","Short",limit = TP , stop = SL) alert("Short signal Supertrend \n Profit:"+tostring(TP)+"\Curret price:"+tostring(close)+"\Stop:"+tostring(SL),alert.freq_once_per_bar_close) //label.new(bar_index,high,text = "Short\nTP:"+tostring(TP)+"\nSL:"+tostring(SL)+"\nAbierto:"+tostring(current), yloc = yloc.abovebar, textcolor = color.white, color = color.red, size = size.small, style = label.style_label_down) if long and (high[1] >= TP or low[1] <= SL) drawing := false long := false if high[1] >= TP label.new(bar_index[int((bar_index - initial)/2)],TP, text = "Win (Long)", textcolor = color.white, color = color.green, size = size.small, style = label.style_label_down) else label.new(bar_index[int((bar_index - initial)/2)],SL, text = "Lose (Long)", textcolor = color.white, color = color.red, size = size.small, style = label.style_label_up) if short and (low[1] <= TP or high[1] >= SL) drawing := false short := false if low[1] <= TP label.new(bar_index[int((bar_index - initial)/2)],TP, text = "Win (short)", textcolor = color.white, color = color.green, size = size.small, style = label.style_label_up) else label.new(bar_index[int((bar_index - initial)/2)],SL, text = "Lose (short)", textcolor = color.white, color = color.red, size = size.small, style = label.style_label_down) //STRATEGY //strategy.entry("buy", strategy.long, 10, when = longCondition) //strategy.exit("bracket", "buy", 10, limit = TP, stop = SL) //strategy.entry("short", strategy.long, 10, when = shortCondition) //strategy.exit("bracket", "short", 10, limit = TP, stop = SL) //DRAWING plotshape(longCondition, title = "Long Signal", location=location.belowbar, style=shape.labelup, color=color.green, textcolor=color.white, size=size.small, text="Long") plotshape(shortCondition, title = "Short Signal", location=location.abovebar, style=shape.labeldown, color=color.red, textcolor=color.white, size=size.small, text="Short") profitLine = plot(drawing and drawing[1] ? TP : na, title = "Take profit", color = color.green, style = plot.style_linebr) currentLine =plot(drawing and drawing[1] ? middle : na, title = "Middle Line", color = color.white, style = plot.style_linebr) lossLine = plot(drawing and drawing[1] ? SL : na, title = "Stop Loss", color = color.red, style = plot.style_linebr) fill(currentLine,profitLine, title = "Profit Background" ,color = color.new(color.green,75)) fill(currentLine,lossLine, title = "Loss Background" ,color = color.new(color.red,75)) plot(superTrend1, title = "Fast Supertrend", color = dir1 == 1 and dir1[1] == 1 ? color.red : dir1 == -1 and dir1[1] == -1 ? color.green : na) plot(superTrend2, title = "Medium Supertrend", color = dir2 == 1 and dir2[1] == 1 ? color.red : dir2 == -1 and dir2[1] == -1 ? color.green : na) plot(superTrend3, title = "Slow Supertrend", color = dir3 == 1 and dir3[1] == 1 ? color.red : dir3 == -1 and dir3[1] == -1 ? color.green : na) plot(ema, title = "EMA",color = color.yellow) //plot(k, color = color.blue) //plot(d, color = color.orange) //h1 = hline(80) //h2 = hline(20) //fill(h1,h2, color = color.new(color.purple,60))