
یہ حکمت عملی ٹریڈنگ کے فیصلے کرنے کے لئے متحرک اوسط ((MA) کے سلپ اور متحرک اشارے کے سلپ کا استعمال کرتی ہے۔ یہ ایم اے سلپ اور متحرک سلپ کا موازنہ ایک مقررہ حد سے کرتا ہے ، اور جب دونوں سلپ حد سے تجاوز کرتے ہیں تو ٹریڈنگ سگنل پیدا کرتا ہے۔ اس حکمت عملی میں کم اتار چڑھاؤ کا فلٹر بھی شامل ہے ، اور جب مارکیٹ میں اتار چڑھاؤ کم ہوتا ہے تو مختلف ایم اے سگنل پیدا کرتا ہے۔
اس حکمت عملی کا بنیادی مقصد یہ ہے کہ دو اسکیلپنگ منحنی خطوط کا موازنہ کیا جائے۔ پہلے ، اس میں ایم اے اور حرکیات کے اشارے کے لئے اسکیلپنگ کا حساب لگایا جائے گا۔ اسکیلپنگ منحنی خطوط کی رفتار اور سمت میں تبدیلی کی عکاسی کرتی ہے۔ اس کے بعد ، دو گھاٹیوں کا استعمال کیا جاتا ہے ، اور جب دونوں اسکیلپنگ منحنی خطوط دونوں گھاٹیوں سے تجاوز کرتے ہیں تو تجارتی سگنل پیدا ہوتا ہے۔
مثال کے طور پر ، جب ایم اے اسکیلپنگ اور حرکیاتی اسکیلپنگ دونوں سے تجاوز کرتے ہیں تو ، خریدنے کا اشارہ پیدا ہوتا ہے۔ جب دونوں منحنی خطوط نیچے جاتے ہیں تو ، فروخت کا اشارہ پیدا ہوتا ہے۔ اس طرح کچھ غلط سگنلوں کو فلٹر کیا جاسکتا ہے۔
کم اتار چڑھاؤ کے فلٹر مارکیٹ میں اتار چڑھاؤ کا فیصلہ کرنے کے لئے ایک طویل مدتی ایم اے کا استعمال کرتے ہیں۔ جب اتار چڑھاؤ کم ہوتا ہے تو ، ایم اے مختلف پیرامیٹرز کا استعمال کرتے ہوئے تجارتی سگنل پیدا کرتا ہے ، تاکہ مارکیٹ کی مختلف حالتوں کے مطابق ڈھال لیا جاسکے۔
اس حکمت عملی کے درج ذیل فوائد ہیں:
ڈبل فلٹر کا استعمال کرتے ہوئے ٹریڈنگ سگنل کو ترتیب دیں ، جس سے کچھ شور کو فلٹر کیا جاسکتا ہے ، جس سے سگنل کا معیار بہتر ہوتا ہے۔
کم اتار چڑھاؤ کے فلٹر حکمت عملی کو مختلف مارکیٹ کے حالات کے مطابق ڈھالنے اور لچکدار بنانے کے قابل بناتے ہیں۔
مختلف پیرامیٹرز کو انتہائی تخصیص کرنے کی اجازت دیتا ہے ، جو مختلف نسلوں کے لئے بہتر بنایا جاسکتا ہے۔
اس میں بغیر کسی پینٹ کی خصوصیت ہے ، جس سے نتائج پر منحنی فٹ ہونے کے اثرات کو کم کیا جاسکتا ہے۔
اس حکمت عملی کے کچھ خطرات بھی ہیں:
ڈبل فلٹرنگ ممکنہ طور پر کچھ حقیقی سگنلوں کو فلٹر کرتی ہے ، جس کی وجہ سے کھوئے ہوئے مواقع پیدا ہوتے ہیں۔ آپ پیرامیٹرز کو ایڈجسٹ کرکے بہتر بنا سکتے ہیں۔
نچلے طول و عرض کے فلٹر کا تعین کرنے کے لئے محتاط ٹیسٹنگ کی ضرورت ہوتی ہے۔ اگر پیرامیٹرز غلط ہیں تو سگنل کی انحراف ہوسکتی ہے۔
ایم اے اور طاقت کے اشارے کے پیرامیٹرز کی ترتیب کو مخصوص نسلوں کے لئے بہتر بنانے کی ضرورت ہے ، پوری مارکیٹ میں عام پیرامیٹرز کا تعین کرنا مشکل ہے۔
کوئی دوبارہ پینٹ کی خصوصیت کو مکمل طور پر ریٹرننگ وکر فٹ ہونے کے مسئلے سے گریز نہیں کیا جاسکتا ہے۔ ٹھوس ڈسک اثر کو ابھی بھی تصدیق کی ضرورت ہے۔
اعلی درجے کی اپنی مرضی کے مطابق پیرامیٹرز پیرامیٹر اسپیس کو پیچیدہ بناتے ہیں اور اصلاح کی دشواری میں اضافہ کرتے ہیں۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
زیادہ سے زیادہ قسم کے ایم اے اور متحرک اشارے کے مجموعے کی جانچ کریں اور سب سے زیادہ مماثل اشارے تلاش کریں۔
ایم اے اور حرکیات کے اشارے کی لمبائی کے پیرامیٹرز کو بہتر بنائیں ، تاخیر اور شور کو متوازن کریں۔
زیادہ مستحکم اشارے کا مجموعہ تلاش کرنے کے لئے اسکیلپنگ کے حساب سے پیرامیٹرز کو بہتر بنائیں۔
مختلف کم اتار چڑھاؤ کے اشارے اور پیرامیٹرز کی جانچ کرنا ، لچک کو بہتر بنانا
مختلف اقسام اور ادوار پر ٹیسٹ، بہترین اطلاق کی حد تلاش کریں.
پیرامیٹرز کو ایڈجسٹ کرنے کا طریقہ کار بنانا ، دستی اصلاحات کے کام کو کم کرنا
یہ حکمت عملی مجموعی طور پر ایک بہت ہی لچکدار اور مرضی کے مطابق ڈبل ایم اے حکمت عملی ہے۔ یہ قیمت اور متحرک معلومات کے ساتھ ساتھ فیصلے کرنے کے لئے حوالہ دیتا ہے ، جعلی سگنل کو مؤثر طریقے سے فلٹر کرسکتا ہے۔ کم اتار چڑھاؤ فلٹر بھی حکمت عملی کو زیادہ لچکدار بناتا ہے ، جو مارکیٹ میں تبدیلیوں کو اپنانے کے قابل ہوتا ہے۔
پیرامیٹرز کی اصلاح اور اشارے کے انتخاب میں بہتری کے ذریعہ ، یہ حکمت عملی عملی عملی میں لاگو کرنے کے لئے ایک قابل غور انتخاب ہوسکتی ہے۔ یہ ایم اے اور متحرک اشارے کا استعمال کرتے ہوئے تجارتی فیصلوں کے لئے ایک حوالہ ٹیمپلیٹ فراہم کرتا ہے۔
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
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/
// © Allenlk
//@version=4
strategy("DRSI DMA Scalping Strategy", shorttitle="DRSIDMA", overlay=false, initial_capital=1000, pyramiding=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//Inputs
matype = input(7, minval=1, maxval=8, title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA, 8=Tilson T3", group="Moving Average")
masrc = input(close, title="MA Source", group="Moving Average")
malen = input(5, title="Moving Average Length - LookBack Period", group="Moving Average")
factorT3 = input(defval=7, title="Tilson T3 Factor - *.10 - so 7 = .7 etc.", minval=0, group="Moving Average")
maderiv = input(3, title="MA Slope Lookback", minval=1, group="Moving Average")
masmooth = input(5, title="MA Slope Smoothing", minval=1, group="Moving Average")
momtype = input(3, minval=1, maxval=3, title="1=RSI, 2=CCI, 3=RSI/ROC", group="Momentum Moving Average")
momsrc = input(close, title="Momentum Source", group="Momentum Moving Average")
momlen = input(3, title="Momentum Length", minval=1, group="Momentum Moving Average")
momderiv = input(8, title="Momentum Slope Lookback", minval=1, group="Momentum Moving Average")
momsmooth = input(7, title="Momentum Slope Smoothing", minval=1, group="Momentum Moving Average")
higherTf = input("1", title="Higher timeframe?", type = input.resolution, group="Time Resolution")
higherTfmult = input(130, title="MA Slope multiplier for Alternate Resolutions (Make the waves of the blue line similar size as the orange line)", group="Time Resolution")
buffup = input(0.02, title="Buy when both slopes cross this line", step=0.01, group="Buy and Sell Threshold")
bufflow = input(-0.03, title="Sell when both slopes cross this line", step=0.01, group="Buy and Sell Threshold")
lowVolMALength = input(28, title="Big MA Length", minval=1, group="Low Volatility Function")
MAlength = input(10, title="Low Volatility Moving Average Length", minval=1, group="Low Volatility Function")
MAThresh = input(0.05, title="Low Volatility Buy and Sell Threshold", step=0.01, group="Low Volatility Function")
Volminimum = input(2.5, title="Minimum volatility to trade", minval=0, step=0.01, group="Low Volatility Function")
//Low Volatility Function
//When Volatility is low refer to the slope of a long moving average
low_vol_MA = sma(close, lowVolMALength)
low_vol_down = (low_vol_MA[3] - low_vol_MA[1]) > MAThresh
low_vol_up = (low_vol_MA[3] - low_vol_MA[1]) < MAThresh * -1
percent_volatility = (1 - (low / high)) * 100
chng_MA = sma(percent_volatility, MAlength)
bad_vol = chng_MA < Volminimum
//No repaint function
nrp_funct(_symbol, _res, _src) => security(_symbol, _res, _src[barstate.isrealtime ? 1 : 0])
//hull ma definition
hullma = wma(2*wma(masrc, malen/2)-wma(masrc, malen), round(sqrt(malen)))
//TEMA definition
ema1 = ema(masrc, malen)
ema2 = ema(ema1, malen)
ema3 = ema(ema2, malen)
tema = 3 * (ema1 - ema2) + ema3
//Tilson T3
factor = factorT3 *.10
gd(masrc, malen, factor) => ema(masrc, malen) * (1 + factor) - ema(ema(masrc, malen), malen) * factor
t3(masrc, malen, factor) => gd(gd(gd(masrc, malen, factor), malen, factor), malen, factor)
tilT3 = t3(masrc, malen, factor)
//MA Type
avg = matype == 1 ? sma(masrc,malen) : matype == 2 ? ema(masrc,malen) : matype == 3 ? wma(masrc,malen) : matype == 4 ? hullma : matype == 5 ? vwma(masrc, malen) : matype == 6 ? rma(masrc,malen) : matype == 7 ? 3 * (ema1 - ema2) + ema3 : tilT3
//MA Slope Percentage
DeltaAvg = (avg / avg[maderiv]) - 1
SmoothedAvg = sma(DeltaAvg, masmooth)
MAout = nrp_funct(syminfo.tickerid, higherTf, SmoothedAvg) * higherTfmult
//Momentum indicators
Momentum = momtype == 1 ? rsi(momsrc, momlen) : momtype == 2 ? cci(momsrc, momlen) : momtype == 3 ? rsi(roc(momsrc,momlen),momlen) : na
//Momentum Slope Percentage
Deltamom = (Momentum / Momentum[momderiv]) - 1
SmoothedMom = sma(Deltamom, momsmooth)
Momout = nrp_funct(syminfo.tickerid, higherTf, SmoothedMom)
//Plottings
plot(buffup, color=color.green, title="Buy line")
plot(bufflow, color=color.red, title="Sell line")
plot(MAout, color=color.blue, linewidth=2, title="MA Slope")
plot(Momout, color=color.orange, linewidth=2, title="Momentum Slope")
longCondition = bad_vol ? low_vol_up : MAout > buffup and Momout > buffup
if (longCondition)
strategy.entry("Buy", strategy.long)
shortCondition = bad_vol ? low_vol_down : MAout < bufflow and Momout < bufflow
if (shortCondition)
strategy.entry("Sell", strategy.short)