
ট্রিপল সুপারট্রেন্ড এবং স্টচ আরএসআই কৌশলটি একটি পরিমাণযুক্ত ট্রেডিং কৌশল যা একাধিক সময় ফ্রেমের প্রবণতা অনুসরণ এবং ওভারকোম ওভারসোল সূচককে ওভারকোম করে। এই কৌশলটি তিনটি ভিন্ন প্যারামিটার সেট সুপারট্রেন্ড সূচক ব্যবহার করে বাজারের প্রবণতা নির্ধারণ করে এবং স্টচ আরএসআই সূচকের ওভারকোম ওভারসোল সংকেতের সাথে একত্রিত হয়ে একটি লেনদেনের সংকেত দেয়। নির্দিষ্ট ক্রিয়াকলাপে, এই কৌশলটি যখন দুটি দ্রুততর সুপারট্রেন্ড সূচক একই সাথে ক্রয় / বিক্রয় সংকেত দেয়, যদি স্টচ আরএসআই সূচকটিও এই সংকেতটি নিশ্চিত করে, তবে এটি একটি অনুরূপ ওভার / খালি ক্রিয়াকলাপ পরিচালনা করে।
ট্রিপল সুপারট্রেন্ড এবং স্টচ আরএসআই কৌশলটির মূল যুক্তি হ’ল সুপারট্রেন্ড সূচক এবং স্টচ আরএসআই সূচককে বিভিন্ন প্যারামিটার সেটের সাথে একত্রিত করে ট্রেডিং সিগন্যাল ফিল্টার করা, যাতে সংকেতের গুণমান উন্নত করা যায় এবং ভুল সংকেতের হার হ্রাস করা যায়।
প্রথমত, এই কৌশলটি বাজারের মূল প্রবণতা নির্ধারণের জন্য তিনটি ভিন্ন প্যারামিটারযুক্ত সুপারট্রেন্ড সূচক ব্যবহার করে। এই তিনটি সুপারট্রেন্ড সূচকের প্যারামিটার সেটিংগুলি দ্রুত থেকে ধীর সময়ের ফ্রেমে বিভিন্ন স্তরের প্রবণতার পরিবর্তনগুলি ধরার জন্য ব্যবহৃত হয়। যখন দ্রুততম এবং দ্বিতীয় দ্রুততম সুপারট্রেন্ড সূচকগুলি একই সাথে একটি কেনা/বেচা সংকেত দেয়, তখন আমরা প্রাথমিকভাবে সিদ্ধান্ত নিই যে সংকেতটির কিছু নির্ভরযোগ্যতা রয়েছে।
দ্বিতীয়ত, কৌশলটি স্টচ আরএসআই সূচককে সংযুক্ত করে যাতে সিদ্ধান্ত নেওয়া যায় যে এই সংকেতটি অত্যধিক ওভারবয়েড বা ওভারসোল্ড কিনা। স্টচ আরএসআই সূচকটি র্যান্ডম সূচক আরএসআই এবং র্যান্ডম সূচক স্টোক্যাস্টিকের সুবিধাগুলি একত্রিত করে যাতে কার্যকরভাবে সিদ্ধান্ত নেওয়া যায় যে বাজারটি ওভারবয়েড বা ওভারসোল্ড অবস্থায় রয়েছে কিনা। যদি দ্রুততম এবং দ্বিতীয় দ্রুততম সুপারট্রেন্ড সংকেত স্টচ আরএসআই সূচকের সংকেতের সাথে মিলিত হয় তবে আমরা একটি চূড়ান্ত ক্রয় / বিক্রয় সংকেত প্রেরণ করতে পারি।
একাধিক সূচক এবং একাধিক টাইমফ্রেমের সমন্বয় দ্বারা, ট্রিপল সুপারট্রেন্ড এবং স্টচ আরএসআই কৌশলগুলি কার্যকরভাবে বাজার শব্দকে ফিল্টার করতে পারে, সংকেতের নির্ভরযোগ্যতা বাড়ায় এবং ভুল ব্যবসায়ের ঘটনা হ্রাস করে।
ট্রিপল সুপারট্রেন্ড এবং স্টচ আরএসআই কৌশলগুলির সবচেয়ে বড় সুবিধা হল একাধিক সূচক এবং একাধিক টাইমফ্রেমের কার্যকর সমন্বয়, যা আমাদের নিম্নলিখিত সুবিধাগুলি দেয়ঃ
ত্রুটিপূর্ণ ট্রেডিং সিগন্যাল কমানো। ট্রিপল সুপারট্রেন্ড সূচক এবং স্টচ আরএসআই সূচকগুলির সংমিশ্রণটি একক সূচকের মধ্যে বিদ্যমান গোলমাল এবং ত্রুটিপূর্ণ সংকেতকে ব্যাপকভাবে হ্রাস করতে পারে।
সংকেত ফ্রিকোয়েন্সি হ্রাস করা হলেও, সংকেত ফ্রিকোয়েন্সির অনুপাত উল্লেখযোগ্যভাবে বৃদ্ধি পাবে।
প্রবণতাপূর্ণ বাজারের জন্য উপযুক্ত। মাল্টি টাইম ফ্রেম ওভারল্যাপগুলি মাঝারি এবং দীর্ঘ লাইন প্রবণতা ক্যাপচার করতে সহায়ক এবং প্রবণতা আরও স্পষ্ট বাজারের পরিবেশের জন্য উপযুক্ত।
প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে সহজেই আরও ভাল ফলাফল পাওয়া যায়। ট্রিপল সূচক প্যারামিটার অপ্টিমাইজেশনের জন্য আরও সম্ভাব্য স্থান সরবরাহ করে।
ব্যক্তিগত ট্রেডিং স্টাইল অনুযায়ী প্যারামিটারগুলি সামঞ্জস্য করা যায়। আপনি আপনার ট্রেডিং স্টাইল অনুযায়ী কৌশলগুলিকে আরও উপযুক্ত করার জন্য প্যারামিটারগুলিকে স্বাধীনভাবে সামঞ্জস্য করতে পারেন।
ট্রিপল সুপারট্রেন্ড এবং স্টচ আরএসআই কৌশলগুলিও কিছু ঝুঁকি নিয়ে আসে, যা নিম্নলিখিত দিকগুলিতে কেন্দ্রীভূত হয়ঃ
সিগন্যাল ফ্রিকোয়েন্সি হ্রাসঃ মাল্টি-লেয়ার ফিল্টারিং সিস্টেম কৌশলগুলির জন্য ট্রেডিং ফ্রিকোয়েন্সি উল্লেখযোগ্যভাবে হ্রাস পায়।
কিছু সংকেত মিস করা সহজ। কৌশলগত রক্ষণশীলতা কিছু সম্ভাব্য সুযোগ মিস করা সহজ করে তোলে।
একাধিক সূচক যুক্ত করা প্যারামিটার নির্ভরতা বাড়ায়। যত বেশি সূচক এবং প্যারামিটার, তত বেশি কৌশল অপ্টিমাইজ করা কঠিন।
ট্রেন্ড অনুসরণ করার ক্ষমতা সীমিত। একাধিক টাইম ফ্রেম সংযুক্ত করার ফলে ট্রেন্ড অনুসরণ করার জন্য কৌশলটির নমনীয়তা সীমিত হয়।
উপরোক্ত ঝুঁকিগুলির জন্য, আমরা সূচক প্যারামিটারগুলিকে সামঞ্জস্য করে এবং আরও সহায়ক বিচারক সূচকগুলি প্রবর্তন করে অপ্টিমাইজ করতে পারি, যাতে কৌশলটি ঝুঁকি নিয়ন্ত্রণের সাথে সাথে উচ্চতর মুনাফার গুণমান অর্জন করতে পারে।
ট্রিপল সুপারট্রেন্ড এবং স্টচ আরএসআই কৌশলগুলি আরও অপ্টিমাইজেশনের জন্য এখনও জায়গা রয়েছে, প্রধানত নিম্নলিখিত দিকগুলি থেকে শুরু করেঃ
সূচক প্যারামিটার সমন্বয়কে সমন্বয় করে সর্বোত্তম প্যারামিটার মিল খুঁজে বের করুন। আরও সূচক প্যারামিটার পরীক্ষার সমন্বয়কে প্রবর্তন করে সর্বোত্তম প্যারামিটার খুঁজে বের করুন।
স্টপ লস স্টপ কৌশল যুক্ত করুন, একক লেনদেনের ঝুঁকি নিয়ন্ত্রণ করুন। এটি কৌশলটির স্থায়িত্বকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।
সিগন্যাল যাচাইকরণের জন্য আরও বিচার সূচক প্রবর্তন করা। যেমন, লেনদেনের পরিমাণ সূচক প্রবর্তন করা।
স্বনির্ধারণ ক্ষমতা যোগ করা হয়েছে। এটি কৌশলগুলিকে স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করতে এবং বাজার পরিবর্তনের সাথে সামঞ্জস্যপূর্ণ প্যারামিটারগুলিকে সামঞ্জস্য করতে দেয়।
মেশিন লার্নিং অ্যালগরিদমের সাথে একত্রিত করে ভবিষ্যদ্বাণী করা। এআই অ্যালগরিদম ব্যবহার করে সূচক সংকেতের সঠিকতা ভবিষ্যদ্বাণী করা।
ক্রমাগত অপ্টিমাইজেশনের মাধ্যমে, ট্রিপল সুপারট্রেন্ড এবং স্টচ আরএসআই কৌশলটি একটি স্থিতিশীল, কার্যকর পরিমাণযুক্ত ট্রেডিং কৌশল হিসাবে পরিণত হতে পারে, যা আমাদের জন্য যথেষ্ট আলফা নিয়ে আসে।
ট্রিপল সুপারট্রেন্ড এবং স্টোচ আরএসআই কৌশলটি সফলভাবে একাধিক টাইম ফ্রেম বিশ্লেষণকে ওভার-বই ওভার-সেলিংয়ের সাথে একত্রিত করে একটি অনন্য ট্রেন্ড-অনুসরণ ট্রেডিং কৌশল তৈরি করে। এটি একই সাথে ট্রেন্ড-অনুসরণ এবং সূচক-ফিল্টারিংয়ের দ্বৈত সুবিধা বজায় রাখে এবং শব্দ সংকেত হ্রাস করার সাথে সাথে লাভজনক সংকেতগুলির অনুপাত বাড়ায়। যদিও কৌশলটির ঝুঁকি এবং অপ্টিমাইজযোগ্য স্থান এখনও বিদ্যমান, তবে প্যারামিটার সমন্বয় এবং কৌশল অপ্টিমাইজেশনের মাধ্যমে এর লাভজনকতা এবং স্থিতিশীলতা আরও উন্নত করা যেতে পারে। সামগ্রিকভাবে, ট্রিপল সুপারট্রেন্ড এবং স্টোচ আরএসআই কৌশলটি একটি উচ্চ মানের কৌশল পছন্দ করে যা পরিমাণগত ট্রেডিং অনুশীলনের জন্য উপযুক্ত।
/*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))