
ٹرپل سپر ٹرینڈ اور اسٹوک آر ایس آئی حکمت عملی ایک مقدار کی تجارت کی حکمت عملی ہے جس میں ایک سے زیادہ ٹائم فریموں میں ٹرینڈ فالو اور اوورلوڈ اوورلوڈ اشارے کو اوورلوڈ کیا جاتا ہے۔ اس حکمت عملی میں تین مختلف پیرامیٹرز کی ترتیب میں سپر ٹرینڈ اشارے کا استعمال کرکے مارکیٹ کے رجحانات کا تعین کیا جاتا ہے اور اسٹوک آر ایس آئی کے اوورلوڈ اوورلوڈ سگنل کے ساتھ مل کر ایک تجارتی سگنل جاری کیا جاتا ہے۔ اس حکمت عملی میں ، جب دو تیز رفتار سپر ٹرینڈ اشارے بیک وقت خرید / فروخت سگنل جاری کرتے ہیں تو ، اگر اسٹوک آر ایس آئی اشارے نے بھی اس سگنل کی تصدیق کی ہے تو ، اس کے مطابق زیادہ / خالی آپریشن کیا جائے گا۔
ٹرپل سپر ٹرینڈ اور اسٹوک آر ایس آئی حکمت عملی کا بنیادی منطق یہ ہے کہ سپر ٹرینڈ اشارے اور اسٹوک آر ایس آئی اشارے کو مختلف پیرامیٹرز کی ترتیب کے ساتھ جوڑ کر ٹریڈنگ سگنل فلٹرنگ کی جائے تاکہ سگنل کے معیار کو بہتر بنایا جاسکے اور غلط سگنل کی شرح کو کم کیا جاسکے۔
سب سے پہلے ، اس حکمت عملی میں مارکیٹ کے اہم رجحانات کا تعین کرنے کے لئے سپر ٹرینڈ اشارے کے تین سیٹوں کا استعمال کیا گیا ہے۔ سپر ٹرینڈ اشارے کے تینوں سیٹوں میں پیرامیٹرز کی ترتیب مختلف ہوتی ہے ، ٹائم فریم تیز سے آہستہ ہوتا ہے ، جس میں مختلف سطحوں پر رجحانات کی تبدیلی کو پکڑنے کے لئے استعمال کیا جاتا ہے۔ جب سب سے تیز اور دوسرا تیز سپر ٹرینڈ اشارے بیک وقت خرید / فروخت سگنل دیتے ہیں تو ، ہم ابتدائی طور پر یہ سمجھتے ہیں کہ اس سگنل میں کچھ قابل اعتماد ہے۔
دوسرا ، حکمت عملی میں اسٹوک آر ایس آئی کو متعارف کرایا گیا ہے تاکہ یہ معلوم کیا جاسکے کہ آیا یہ سگنل حد سے زیادہ خرید یا فروخت ہے۔ اسٹوک آر ایس آئی ، بے ترتیب اشارے آر ایس آئی اور بے ترتیب اشارے اسٹوکاسٹک کی خوبیوں کو جوڑ کر ، مؤثر طریقے سے اس بات کا تعین کرسکتا ہے کہ آیا مارکیٹ زیادہ خرید یا فروخت کی حالت میں ہے۔ اگر سب سے تیز اور دوسرا تیز ترین سپر ٹرینڈ سگنل اسٹوک آر ایس آئی کے اشارے سے مماثل ہے تو ، ہم حتمی خرید / فروخت سگنل بھیج سکتے ہیں۔
متعدد اشارے اور متعدد ٹائم فریموں کے امتزاج کے ذریعہ ، ٹرپل سپر ٹرینڈ اور اسٹوک آر ایس آئی حکمت عملی مارکیٹ کے شور کو مؤثر طریقے سے فلٹر کرسکتی ہے ، سگنل کی وشوسنییتا کو بہتر بناسکتی ہے ، اور غلط تجارت کے واقعات کو کم کرسکتی ہے۔
ٹرپل سپر ٹرینڈ اور اسٹچ آر ایس آئی حکمت عملی کا سب سے بڑا فائدہ کثیر اشارے اور کثیر ٹائم فریموں کا موثر امتزاج ہے ، جس سے ہمیں مندرجہ ذیل فوائد حاصل ہوتے ہیں:
غلط ٹریڈنگ سگنل کو کم کریں۔ ٹرپل سپر ٹرینڈ اشارے اور اسٹوک آر ایس آئی اشارے کا امتزاج ایک اشارے میں موجود شور اور غلط سگنل کو بہت کم کرسکتا ہے۔
منافع بخش سگنل تناسب میں اضافہ کریں۔ اگرچہ سگنل کی تعدد کم ہے ، لیکن منافع بخش سگنل کا تناسب نمایاں طور پر بڑھتا ہے۔
رجحان ساز مارکیٹوں کے لئے موزوں۔ کثیر وقت کے فریم کے ہلچل کو پکڑنے کے لئے موزوں ہے وسط اور لمبی لکیری رجحانات ، مارکیٹ کے ماحول کے لئے موزوں ہیں جہاں رجحانات زیادہ واضح ہیں۔
پیرامیٹرز کو بہتر بنانے کے ذریعہ بہتر نتائج حاصل کرنا آسان ہے۔ ٹرپل اشارے پیرامیٹرز کو بہتر بنانے کے لئے زیادہ امکانات کی گنجائش فراہم کرتے ہیں۔
آپ کے ذاتی طرز کے مطابق پیرامیٹرز کو ایڈجسٹ کر سکتے ہیں. آپ کو آپ کے ٹریڈنگ کے انداز کے مطابق حکمت عملی کو بہتر بنانے کے لئے پیرامیٹرز کو آزادانہ طور پر ایڈجسٹ کر سکتے ہیں.
ٹرپل سپر ٹرینڈ اور اسٹوک آر ایس آئی حکمت عملی میں بھی کچھ خطرات موجود ہیں ، جو بنیادی طور پر درج ذیل پہلوؤں پر مرکوز ہیں:
سگنل کی تعدد میں کمی۔ کثیر پرت فلٹرنگ میکانزم کی وجہ سے حکمت عملی میں تجارت کی تعدد میں نمایاں کمی واقع ہوتی ہے۔
کچھ سگنل کو نظرانداز کرنا آسان ہے۔ حکمت عملی کی قدامت پسندی سے کچھ ممکنہ مواقع کو نظرانداز کرنا آسان ہوجاتا ہے۔
زیادہ اشارے اور پیرامیٹرز کے ساتھ ، حکمت عملی کو بہتر بنانا مشکل ہوتا ہے۔
ٹرینڈ کی پیروی کرنے کی صلاحیت محدود ہے۔ متعدد ٹائم فریموں کا امتزاج بھی حکمت عملی کی رجحانات کی پیروی کرنے کی لچک کو محدود کرتا ہے۔
مندرجہ بالا خطرات کے لئے ، ہم اشارے کے پیرامیٹرز کو ایڈجسٹ کرکے اور مزید معاون فیصلے کے اشارے متعارف کرانے کے ذریعہ بہتر بناسکتے ہیں ، تاکہ حکمت عملی خطرے کو کنٹرول کرنے کے ساتھ ساتھ اعلی منافع بخش معیار حاصل کرسکے۔
ٹرپل سپر ٹرینڈ اور اسٹوک آر ایس آئی حکمت عملی میں مزید اصلاحات کی گنجائش موجود ہے ، بنیادی طور پر مندرجہ ذیل پہلوؤں سے:
اشارے کے پیرامیٹرز کے مجموعے کو ایڈجسٹ کریں ، بہترین پیرامیٹر میچ تلاش کریں۔ زیادہ سے زیادہ اشارے کے پیرامیٹرز ٹیسٹ متعارف کروائیں ، بہترین پیرامیٹرز تلاش کریں۔
اسٹریٹجک استحکام کو نمایاں طور پر بہتر بنانے کے لئے اسٹاپ نقصان کی روک تھام کی حکمت عملی میں اضافہ کریں اور ایک ہی تجارت کے خطرے کو کنٹرول کریں۔
سگنل کی توثیق کے لئے مزید فیصلے کے اشارے متعارف کروائیں۔ مثال کے طور پر ، تجارت کے حجم کے اشارے متعارف کروائیں۔
ایڈجسٹمنٹ کو شامل کریں۔ حکمت عملی کو خود بخود بہتر بنانے اور پیرامیٹرز کو مارکیٹ میں تبدیلیوں کے مطابق ڈھالنے کی اجازت دیتا ہے۔
مشین لرننگ الگورتھم کے ساتھ مل کر پیش گوئی کریں۔ اشارے سگنل کی درستگی کی پیش گوئی کرنے کے لئے اے آئی الگورتھم کا استعمال کریں۔
مسلسل اصلاح کے ساتھ ، ٹرپل سپر ٹرینڈ اور اسٹوک آر ایس آئی حکمت عملی ایک مستحکم ، موثر کوانٹم ٹریڈنگ حکمت عملی بن سکتی ہے ، جس سے ہمیں کافی الفا ملتا ہے۔
ٹرپل سپر ٹرینڈ اور اسٹوک آر ایس آئی حکمت عملی نے ایک منفرد رجحان کی پیروی کرنے والی حکمت عملی کو تشکیل دینے کے لئے ملٹی ٹائم فریم تجزیہ کو اوور بُو اور اوور سیل فیصلے کے ساتھ کامیابی کے ساتھ جوڑ دیا۔ اس نے رجحان کی پیروی اور اشارے کو فلٹر کرنے کے دوہرے فوائد کو برقرار رکھا ، جبکہ شور سگنل کو کم کرتے ہوئے منافع بخش سگنل کا تناسب بڑھایا۔ اگرچہ اس حکمت عملی میں خطرات اور اصلاح کی گنجائش باقی ہے ، لیکن اس کی منافع بخش صلاحیت اور استحکام کو پیرامیٹرز کو ایڈجسٹ کرنے اور حکمت عملی کو بہتر بنانے کے ذریعے مزید بڑھایا جاسکتا ہے۔ مجموعی طور پر ، ٹرپل سپر ٹرینڈ اور اسٹوک آر ایس آئی حکمت عملی کو اعلی معیار کی حکمت عملی کا انتخاب فراہم کرتا ہے۔
/*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))