یہ ایک تجارتی حکمت عملی ہے جس میں ٹرپل سپر ٹرینڈ ، ای ایم اے اور اے ڈی ایکس اشارے شامل ہیں۔ یہ ٹریڈنگ سگنل کے لئے ٹرپل سپر ٹرینڈ سسٹم کا استعمال کرتا ہے ، اور ٹریڈنگ کی فریکوئنسی کو کنٹرول کرنے اور ٹریڈنگ سگنل کے معیار کو بہتر بنانے کے لئے ای ایم اے اور اے ڈی ایکس کو فلٹرنگ کی شرط کے طور پر جوڑتا ہے۔
خاص طور پر ، طویل اندراج کی شرائط تین گنا اوور ٹرینڈ کے لئے بیضوی میں تبدیل ہوجاتی ہیں ، جب بند ہونے والی قیمت ای ایم اے سے زیادہ ہوتی ہے تو ، ایڈ ایکس مقررہ قیمت سے زیادہ کھولی جاتی ہے۔ مختصر اندراج کی شرائط تین گنا اوور ٹرینڈ کے لئے بیضوی میں تبدیل ہوجاتی ہیں ، جب بند ہونے والی قیمت ای ایم اے سے کم ہوتی ہے تو ، ایڈ ایکس مقررہ قیمت سے زیادہ ہوتی ہے۔ کھلنے والی پوزیشن کی شرائط کسی بھی سپر ٹرینڈ کے لئے موجودہ پوزیشن کو ختم کرتی ہیں۔
اس حکمت عملی میں ایک ہی وقت میں سپر رجحانات کے تین گروپوں کی حمایت اور مزاحمت کی لائنیں کھینچی گئیں ، جس سے رجحانات کی سمت کا تعین کرنے میں مدد ملی۔
پیرامیٹرز کے مجموعے کو ایڈجسٹ کرنے ، فلٹرنگ کے حالات کو بہتر بنانے اور اس طرح کے طریقوں سے ان خطرات کو کم کیا جاسکتا ہے۔ اس کے ساتھ ساتھ پوزیشن کے سائز پر قابو رکھنا ، غیر یقینی مارکیٹ کے حالات کا مقابلہ کرنے کے لئے سختی سے روکنا۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
اس حکمت عملی میں ٹریپل سپر ٹرینڈ سسٹم کی طاقت کا بھرپور استعمال کیا گیا ہے ، اور ای ایم اے اور اے ڈی ایکس ڈبل فلٹرنگ کے ساتھ مل کر ، تجارتی سگنل کے معیار کو مؤثر طریقے سے بہتر بنایا جاسکتا ہے۔ پیرامیٹرز کی اصلاح ، فلٹرنگ کے حالات میں اضافہ ، متحرک اسٹاپ نقصان وغیرہ کے ذریعہ حکمت عملی کی مضبوطی اور موافقت کو مزید بڑھایا جاسکتا ہے۔ رجحانات کے فیصلے کے ساتھ مل کر ، یہ حکمت عملی مؤثر اندراج اور خارجی سگنل فراہم کرسکتی ہے۔
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 2h
basePeriod: 15m
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/
// ©kunjandetroja
//@version=5
strategy('Triple Supertrend with EMA and ADX', overlay=true)
m1 = input.float(1,"ATR Multi",minval = 1,maxval= 6,step=0.5,group='ST 1')
m2 = input.float(2,"ATR Multi",minval = 1,maxval= 6,step=0.5,group='ST 2')
m3 = input.float(3,"ATR Multi",minval = 1,maxval= 6,step=0.5,group='ST 3')
p1 = input.int(10,"ATR Multi",minval = 5,maxval= 25,step=1,group='ST 1')
p2 = input.int(15,"ATR Multi",minval = 5,maxval= 25,step=1,group='ST 2')
p3 = input.int(20,"ATR Multi",minval = 5,maxval= 25,step=1,group='ST 3')
len_EMA = input.int(200,"EMA Len",minval = 5,maxval= 250,step=1)
len_ADX = input.int(14,"ADX Len",minval = 1,maxval= 25,step=1)
len_Di = input.int(14,"Di Len",minval = 1,maxval= 25,step=1)
adx_above = input.float(25,"adx filter",minval = 1,maxval= 50,step=0.5)
var bool long_position = false
adx_filter = input.bool(false, "Add Adx & EMA filter")
renetry = input.bool(true, "Allow Reentry")
f_getColor_Resistance(_dir, _color) =>
_dir == 1 and _dir == _dir[1] ? _color : na
f_getColor_Support(_dir, _color) =>
_dir == -1 and _dir == _dir[1] ? _color : na
[superTrend1, dir1] = ta.supertrend(m1, p1)
[superTrend2, dir2] = ta.supertrend(m2, p2)
[superTrend3, dir3] = ta.supertrend(m3, p3)
EMA = ta.ema(close, len_EMA)
[diplus,diminus,adx] = ta.dmi(len_Di,len_ADX)
// ADX Filter
adxup = adx > adx_above and close > EMA
adxdown = adx > adx_above and close < EMA
sum_dir = dir1 + dir2 + dir3
dir_long = if(adx_filter == false)
sum_dir == -3
else
sum_dir == -3 and adxup
dir_short = if(adx_filter == false)
sum_dir == 3
else
sum_dir == 3 and adxdown
Exit_long = dir1 == 1 and dir1 != dir1[1]
Exit_short = dir1 == -1 and dir1 != dir1[1]
// BuySignal = dir_long and dir_long != dir_long[1]
// SellSignal = dir_short and dir_short != dir_short[1]
// if BuySignal
// label.new(bar_index, low, 'Long', style=label.style_label_up)
// if SellSignal
// label.new(bar_index, high, 'Short', style=label.style_label_down)
longenter = if(renetry == false)
dir_long and long_position == false
else
dir_long
shortenter = if(renetry == false)
dir_short and long_position == true
else
dir_short
if longenter
long_position := true
if shortenter
long_position := false
strategy.entry('BUY', strategy.long, when=longenter)
strategy.entry('SELL', strategy.short, when=shortenter)
strategy.close('BUY', Exit_long)
strategy.close('SELL', Exit_short)
buy1 = ta.barssince(dir_long)
sell1 = ta.barssince(dir_short)
colR1 = f_getColor_Resistance(dir1, color.red)
colS1 = f_getColor_Support(dir1, color.green)
colR2 = f_getColor_Resistance(dir2, color.orange)
colS2 = f_getColor_Support(dir2, color.yellow)
colR3 = f_getColor_Resistance(dir3, color.blue)
colS3 = f_getColor_Support(dir3, color.maroon)
plot(superTrend1, 'R1', colR1, linewidth=2)
plot(superTrend1, 'S1', colS1, linewidth=2)
plot(superTrend2, 'R1', colR2, linewidth=2)
plot(superTrend2, 'S1', colS2, linewidth=2)
plot(superTrend3, 'R1', colR3, linewidth=2)
plot(superTrend3, 'S1', colS3, linewidth=2)
// // Intraday only
// var int new_day = na
// var int new_month = na
// var int new_year = na
// var int close_trades_after_time_of_day = na
// if dayofmonth != dayofmonth[1]
// new_day := dayofmonth
// if month != month[1]
// new_month := month
// if year != year[1]
// new_year := year
// close_trades_after_time_of_day := timestamp(new_year,new_month,new_day,15,15)
// strategy.close_all(time > close_trades_after_time_of_day)