دو طرفہ ATR لہر تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-11-01 11:40:07 آخر میں ترمیم کریں: 2023-11-01 11:40:07
کاپی: 0 کلکس کی تعداد: 642
1
پر توجہ دیں
1617
پیروکار

دو طرفہ ATR لہر تجارتی حکمت عملی

جائزہ

دو طرفہ اے ٹی آر لہر ٹریڈنگ حکمت عملی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو مساوی لائن ، اے ٹی آر اور متعدد تکنیکی اشارے کو یکجا کرتی ہے تاکہ رجحان کی سمت قائم ہونے کے بعد رجحان کی پیروی کی جاسکے۔

حکمت عملی کا اصول

اس حکمت عملی میں کیجون لائن کو بطور مرکزی اوسط لائن اشارے استعمال کیا جاتا ہے تاکہ قیمتوں کے رجحان کی سمت کا تعین کیا جاسکے۔ حکمت عملی کے ساتھ ساتھ اے ٹی آر چینل کو بھی شامل کیا جاتا ہے تاکہ قیمتوں کی سرگرمیوں کی حد کو محدود کیا جاسکے۔ جب قیمت اوپر کی طرف بڑھتی ہے تو زیادہ کام نہ کریں اور جب قیمت نیچے کی طرف بڑھتی ہے تو خالی جگہ نہ بنائیں ، تاکہ اونچائی اور گرنے سے بچ سکیں۔

جب کیجون لائن اوپر کی طرف ٹوٹ جاتی ہے تو خریدنے کا اشارہ پیدا ہوتا ہے ، اور جب نیچے کی طرف ٹوٹ جاتا ہے تو بیچنے کا اشارہ پیدا ہوتا ہے۔ غلط سگنل کو فلٹر کرنے کے لئے ، حکمت عملی میں متعدد تکنیکی اشارے بھی متعارف کروائے گئے ہیں جن کی تصدیق ہوتی ہے ، بشمول ارون اشارے ، آر ایس آئی اشارے ، میکڈ اشارے اور پی ایس اے آر اشارے۔ جب تمام اشارے کی تصدیق کی شرائط پوری ہوجاتی ہیں تو خریدنے اور بیچنے کا اشارہ پیدا ہوتا ہے۔

مارکیٹ میں داخل ہونے کے بعد ، حکمت عملی اسٹاپ اور اسٹاپ اسٹاپ کا استعمال کرتے ہوئے پوزیشنوں کا انتظام کرتی ہے۔ اسٹاپ نقصان کا نقطہ 0.5 اے ٹی آر ہے ، اسٹاپ نقصان کا نقطہ 0.5٪ ہے۔ جب قیمت ایک بار پھر کیجون لائن کو توڑ دیتی ہے تو ، فوری طور پر اسٹاپ نقصان سے باہر نکلنے کا انتخاب کریں۔

اسٹریٹجک فوائد

  • رجحانات کی سمت کا تعین کرنے کے لئے کیجون لائن کا استعمال کریں ، اور مارکیٹ کے جھٹکے سے بچیں
  • اے ٹی آر چینل قیمتوں کی سرگرمیوں کی حد کو محدود کرتا ہے ، جو خطرے پر قابو پانے میں مددگار ہوتا ہے
  • متعدد تکنیکی اشارے کی تصدیق ، غلط سگنلوں کو نمایاں طور پر فلٹر کریں
  • منافع کو لاک کرنے کے لئے سٹاپ نقصان اور روک تھام کے خطرے کے انتظام کے ساتھ

اسٹریٹجک رسک

  • ایک سے زیادہ اشارے نے سگنل کی تاخیر کی تصدیق کی ، جس سے رجحان کے آغاز کا مرحلہ ضائع ہوسکتا ہے
  • اسٹاپ نقصان کا نقطہ بہت چھوٹا ہے اور اس کی وجہ سے اکثر اسٹاپ نقصان ہوتا ہے۔
  • Kijun لائن اور ATR پیرامیٹرز غیر معقول طور پر بار بار غلط سگنل کا سبب بن سکتا ہے
  • پیرامیٹرز کی اصلاح اور تاریخی اعداد و شمار کے مماثلت کے نتائج پر منحصر ہے ، فکسڈ ڈسک خراب ہوسکتی ہے

اصلاح کی سمت

  • اس کے علاوہ، آپ کو کچھ جدید رجحانات کے اشارے بھی مل سکتے ہیں، جیسے Ichimoku Cloud Map.
  • سٹاپ نقصان کی حد کو ایڈجسٹ کریں اور نقصان کا تناسب بہتر بنائیں
  • مختلف مارکیٹوں کے لئے بہترین پیرامیٹرز کا مجموعہ ٹیسٹ
  • ریئل ٹائم مارکیٹ کی بنیاد پر پیرامیٹرز کو ایڈجسٹ کرنے کے لئے خود کار طریقے سے شیڈولنگ کی خصوصیت شامل کی گئی
  • تصدیق کے مختلف اشارے کے مجموعے کی جانچ

خلاصہ کریں۔

دو طرفہ اے ٹی آر لہر ٹریڈنگ حکمت عملی اوسط لائن ، اے ٹی آر چینل اور متعدد معاون تکنیکی اشارے کا استعمال کرتے ہوئے ، رجحان کی سمت کی نشاندہی کرنے کے بعد رجحان سے باخبر رہنے کے لئے ہے۔ اس سے سگنل کے معیار اور منافع کی امکانات میں نمایاں اضافہ ہوتا ہے۔ اس کے ساتھ ہی ، اسٹریپنگ میکانیزم کے کنٹرول کے خطرات کو روکنا۔ اس حکمت عملی کو پیرامیٹرز کی اصلاح اور مجموعہ ٹیسٹنگ کے ذریعہ مستحکم منافع کی توقع ہے۔ تاہم ، تاریخی اعداد و شمار پر بہت زیادہ انحصار کرنے کے مسئلے پر توجہ دینے کی ضرورت ہے ، اور عملی ڈسک کی تاثیر کو ابھی بھی تصدیق کی ضرورت ہے۔ اس حکمت عملی کی تاثیر کو یقینی بنانے کے لئے مستقل اصلاح کی کلید ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-27 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy(title="NoNonsense Forex", overlay=true, default_qty_value=100000, initial_capital=100)

//////////////////////
////// BASELINE //////
//////////////////////
ma_slow_type = input(title="Baseline Type", type=input.string, defval="Kijun", options=["ALMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA", "SMA", "SMMA", "HMA", "LSMA", "Kijun", "McGinley"])
ma_slow_src = close //input(title="MA Source", type=input.source, defval=close)
ma_slow_len = input(title="Baseline Length", type=input.integer, defval=20)
ma_slow_len_fast = input(title="Baseline Length Fast", type=input.integer, defval=12)

lsma_offset  = input(defval=0, title="* Least Squares (LSMA) Only - Offset Value", minval=0)
alma_offset  = input(defval=0.85, title="* Arnaud Legoux (ALMA) Only - Offset Value", minval=0, step=0.01)
alma_sigma   = input(defval=6, title="* Arnaud Legoux (ALMA) Only - Sigma Value", minval=0)

ma(type, src, len) =>
    float result = 0
    if type=="SMA" // Simple
        result := sma(src, len)
    if type=="EMA" // Exponential
        result := ema(src, len)
    if type=="DEMA" // Double Exponential
        e = ema(src, len)
        result := 2 * e - ema(e, len)
    if type=="TEMA" // Triple Exponential
        e = ema(src, len)
        result := 3 * (e - ema(e, len)) + ema(ema(e, len), len)
    if type=="WMA" // Weighted
        result := wma(src, len)
    if type=="VWMA" // Volume Weighted
        result := vwma(src, len) 
    if type=="SMMA" // Smoothed
        w = wma(src, len)
        result := na(w[1]) ? sma(src, len) : (w[1] * (len - 1) + src) / len
    if type=="HMA" // Hull
        result := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))
    if type=="LSMA" // Least Squares
        result := linreg(src, len, lsma_offset)
    if type=="ALMA" // Arnaud Legoux
        result := alma(src, len, alma_offset, alma_sigma)
    if type=="Kijun" //Kijun-sen
        kijun = avg(lowest(len), highest(len))
        result :=kijun
    if type=="McGinley"
        mg = 0.0
        mg := na(mg[1]) ? ema(src, len) : mg[1] + (src - mg[1]) / (len * pow(src/mg[1], 4))
        result :=mg
    result

baseline = ma(ma_slow_type, ma_slow_src, ma_slow_len)
plot(baseline, title='Baseline', color=rising(baseline,1) ? color.green : falling(baseline,1) ? color.maroon : na, linewidth=3)

//////////////////
////// ATR ///////
//////////////////
atrlength=input(14, title="ATR Length")
one_atr=rma(tr(true), atrlength)
upper_atr_band=baseline+one_atr
lower_atr_band=baseline-one_atr
plot(upper_atr_band, color=color.gray, style=plot.style_areabr, transp=95, histbase=50000, title='ATR Cave')
plot(lower_atr_band, color=color.gray, style=plot.style_areabr, transp=95, histbase=0, title='ATR Cave')
plot(upper_atr_band, color=close>upper_atr_band ? color.fuchsia : na, style=plot.style_line, linewidth=5, transp=50, title='Close above ATR cave')
plot(lower_atr_band, color=close<lower_atr_band ? color.fuchsia : na, style=plot.style_line, linewidth=5, transp=50, title='Close below ATR cave')
donttradeoutside_atrcave=input(true)
too_high = close>upper_atr_band and donttradeoutside_atrcave
too_low = close<lower_atr_band and donttradeoutside_atrcave

////////////////////////////
////// CONFIRMATION 1 ////// the trigger actually
////////////////////////////
lenaroon = input(8, minval=1, title="Length Aroon")
c1upper = 100 * (highestbars(high, lenaroon+1) + lenaroon)/lenaroon
c1lower = 100 * (lowestbars(low, lenaroon+1) + lenaroon)/lenaroon
c1CrossUp=crossover(c1upper,c1lower)
c1CrossDown=crossunder(c1upper,c1lower)


////////////////////////////////
////// CONFIRMATION: MACD //////
////////////////////////////////
dont_use_macd=input(false)
macd_fast_length = input(title="Fast Length", type=input.integer, defval=13)
macd_slow_length = input(title="Slow Length", type=input.integer, defval=26)
macd_signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
macd_fast_ma = ema(close, macd_fast_length)
macd_slow_ma = ema(close, macd_slow_length)
macd = macd_fast_ma - macd_slow_ma
macd_signal = ema(macd, macd_signal_length)
macd_hist = macd - macd_signal

macdLong=macd_hist>0 or dont_use_macd
macdShort=macd_hist<0 or dont_use_macd

/////////////////////////////
///// CONFIRMATION: RSI /////
/////////////////////////////
dont_use_rsi=input(false)
lenrsi = input(14, minval=1, title="RSI Length") //14
up = rma(max(change(close), 0), lenrsi)
down = rma(-min(change(close), 0), lenrsi)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiLong=rsi>50 or dont_use_rsi
rsiShort=rsi<50 or dont_use_rsi

//////////////////////////////
///// CONFIRMATION: PSAR /////
//////////////////////////////
dont_use_psar=input(false)
psar_start = input(0.03, step=0.01)
psar_increment = input(0.018, step=0.001)
psar_maximum = input(0.11, step=0.01) //default 0.08
psar = sar(psar_start, psar_increment, psar_maximum)

plot(psar, style=plot.style_cross, color=color.blue, title='PSAR')
psarLong=close>psar or dont_use_psar
psarShort=close<psar or dont_use_psar

/////////////////////////
///// CONFIRMATIONS /////
/////////////////////////
Long_Confirmations=psarLong and rsiLong and macdLong
Short_Confirmations=psarShort and rsiShort and macdShort

GoLong=c1CrossUp and Long_Confirmations and not too_high
GoShort=c1CrossDown and Short_Confirmations and not too_low

////////////////////
///// STRATEGY /////
////////////////////

use_exit=input(false)
KillLong=c1CrossDown and use_exit
KillShort=c1CrossUp and use_exit

SL=input(0.5, step=0.1)/syminfo.mintick
TP=input(0.005, step=0.001)/syminfo.mintick

strategy.entry("nnL", strategy.long, when = GoLong)
strategy.entry("nnS", strategy.short, when = GoShort)
strategy.exit("XL-nn", from_entry = "nnL", loss = SL, profit=TP)
strategy.exit("XS-nn", from_entry = "nnS", loss = SL, profit=TP)
strategy.close("nnL", when = KillLong)
strategy.close("nnS", when = KillShort)