یہ دوہری حرکت پذیر اوسط اشارے پر مبنی ایک الٹ ٹریڈنگ حکمت عملی ہے۔ پیرامیٹر کی مختلف ترتیبات کے ساتھ دو گروپوں کے حرکت پذیر اوسط کا حساب لگاتے ہوئے اور ان کی سمت کی تبدیلیوں کے مطابق قیمت کے رجحان کا فیصلہ کرتے ہوئے ، سمت کی تبدیلیوں کے لئے حساسیت پیرامیٹر کی ترتیب کے ذریعہ تجارتی سگنل تیار کیے جاسکتے ہیں۔
اس حکمت عملی کا بنیادی اشارے دوہری حرکت پذیر اوسط ہے۔ یہ حکمت عملی حرکت پذیر اوسط کی قسم (ایس ایم اے ، ای ایم اے ، وغیرہ) ، لمبائی اور قیمت کے ذریعہ (قریبی قیمت ، عام قیمت ، وغیرہ) کا انتخاب کرنے کی اجازت دیتی ہے۔ حرکت پذیر اوسط کے دو گروپوں کا حساب کتاب کرنے کے بعد ، رد عمل کے پیرامیٹر کی وضاحت کرکے ان کی سمت کا تعین کیا جاتا ہے۔ جب تیز لائن سست لائن سے اوپر عبور کرتی ہے تو خرید کا اشارہ پیدا ہوتا ہے ، اور جب یہ نیچے عبور کرتی ہے تو فروخت کا اشارہ پیدا ہوتا ہے۔ رد عمل کے پیرامیٹر کا استعمال موڑ کے مقامات کی نشاندہی کرنے کے لئے حساسیت کو ایڈجسٹ کرنے کے لئے کیا جاتا ہے۔
اس کے علاوہ ، حکمت عملی غلط سگنل پیدا کرنے سے بچنے کے لئے سمت کی تبدیلی اور مسلسل اضافے / کمی کا تعین کرنے کے لئے بھی شرائط طے کرتی ہے۔ اور یہ مختلف رنگوں میں قیمتوں کے اضافے اور گرنے کو ظاہر کرتی ہے۔ جب قیمتیں بڑھتی رہتی ہیں تو ، حرکت پذیر لائن سبز رنگ میں دکھائی دیتی ہے ، اور جب قیمتیں گرتی ہیں تو سرخ رنگ میں۔
ڈبل موواویگ حکمت عملی تیز رفتار اور سست لائنوں کو مختلف پیرامیٹرز کی ترتیبات کے ساتھ جوڑتی ہے ، جو مؤثر طریقے سے تجارتی مارکیٹ میں شور کو فلٹر کرسکتی ہے اور مضبوط رجحانات کی نشاندہی کرسکتی ہے۔ سنگل موواویگ حکمت عملی کے مقابلے میں ، یہ غلط سگنل کو کم کرتی ہے اور جب رجحان زیادہ واضح ہوتا ہے تو مارکیٹ میں داخل ہونے کی اجازت دیتی ہے ، اس طرح جیت کی شرح زیادہ ہوتی ہے۔
رد عمل پیرامیٹر حکمت عملی کو لچکدار اور مختلف سائیکلوں اور اقسام کے مطابق ڈھالنے کی اجازت دیتا ہے۔ اسٹریٹجک عمل بدیہی اور آسان ، سمجھنے اور بہتر بنانے میں آسان ہے۔
اس حکمت عملی کا سب سے بڑا خطرہ یہ ہے کہ موڑ کا نقطہ نظر کھو دیا جائے اور پیسہ ضائع ہوجائے یا الٹا موقف اختیار کیا جائے۔ اس کا تعلق رد عمل کے پیرامیٹر کی ترتیب سے ہے۔ اگر رد عمل بہت چھوٹا ہے تو ، غلط سگنل پیدا ہونے کا امکان ہے۔ اگر رد عمل بہت بڑا ہے تو ، یہ بہتر انٹری پوائنٹس کو یاد کرسکتا ہے۔
ایک اور خطرہ نقصانات کو مؤثر طریقے سے کنٹرول کرنے میں ناکامی ہے۔ جب قیمتوں میں پرتشدد اتار چڑھاؤ ہوتا ہے تو ، یہ نقصانات کو جلدی سے روک نہیں سکتا ، جس سے بڑے نقصانات ہوتے ہیں۔ اس کے لئے خطرات کو کنٹرول کرنے کے لئے اسٹاپ نقصان کی حکمت عملیوں کا استعمال ضروری ہے۔
اس حکمت عملی کی اصلاح کی اہم سمتیں رد عمل کے پیرامیٹرز ، قسموں اور چلتی اوسط کی لمبائی کو منتخب کرنے پر مرکوز ہیں۔ مناسب رد عمل میں اضافہ غلط سگنل کو کم کرسکتا ہے۔ سگنل پیدا کرنے کے لئے بہترین امتزاج کا انتخاب کرنے کے لئے مختلف سائیکلوں اور اقسام کے مطابق چلتی اوسط پیرامیٹرز کی جانچ کی جاسکتی ہے۔
اس کے علاوہ ، دوسرے معاون اشارے جیسے آر ایس آئی اور کے ڈی کے ساتھ تجارتی سگنلز کی تصدیق کرنا بھی ایک اصلاح کا خیال ہے۔ یا پیرامیٹرز کو خود بخود بہتر بنانے کے لئے مشین لرننگ کے طریقے استعمال کریں۔
مجموعی طور پر ، یہ حکمت عملی نسبتا simple آسان اور عملی ہے۔ دوہری حرکت پذیر اوسط کے ساتھ فلٹرنگ اور تجارتی سگنل تیار کرنے سے ، یہ مؤثر طریقے سے رجحان کی تبدیلیوں کی نشاندہی کرسکتا ہے اور یہ ایک عام رجحان کی پیروی کرنے والی حکمت عملی ہے۔ پیرامیٹر پورٹ فولیو کو بہتر بنانے کے بعد ، اس کی رجحانات کو پکڑنے اور مارکیٹ کے خلاف پوزیشنوں کو برقرار رکھنے کی صلاحیت میں بہتری آئے گی۔ اسے اسٹاپ نقصان اور پوزیشن مینجمنٹ میکانزم کے ساتھ استعمال کرنا بہتر کام کرتا ہے۔
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(shorttitle="MA_color strategy", title="Moving Average Color", overlay=true) // === INPUTS ma_type = input(defval="HullMA", title="MA Type: ", options=["SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "ZEMA", "TMA", "SSMA"]) ma_len = input(defval=32, title="MA Lenght", minval=1) ma_src = input(close, title="MA Source") reaction = input(defval=2, title="MA Reaction", minval=1) // SuperSmoother filter // © 2013 John F. Ehlers variant_supersmoother(src,len) => a1 = exp(-1.414*3.14159 / len) b1 = 2*a1*cos(1.414*3.14159 / len) c2 = b1 c3 = (-a1)*a1 c1 = 1 - c2 - c3 v9 = 0.0 v9 := c1*(src + nz(src[1])) / 2 + c2*nz(v9[1]) + c3*nz(v9[2]) v9 variant_smoothed(src,len) => v5 = 0.0 v5 := na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len v5 variant_zerolagema(src,len) => ema1 = ema(src, len) ema2 = ema(ema1, len) v10 = ema1+(ema1-ema2) v10 variant_doubleema(src,len) => v2 = ema(src, len) v6 = 2 * v2 - ema(v2, len) v6 variant_tripleema(src,len) => v2 = ema(src, len) v7 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len) v7 variant(type, src, len) => type=="EMA" ? ema(src,len) : type=="WMA" ? wma(src,len): type=="VWMA" ? vwma(src,len) : type=="SMMA" ? variant_smoothed(src,len) : type=="DEMA" ? variant_doubleema(src,len): type=="TEMA" ? variant_tripleema(src,len): type=="HullMA"? wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) : type=="SSMA" ? variant_supersmoother(src,len) : type=="ZEMA" ? variant_zerolagema(src,len) : type=="TMA" ? sma(sma(src,len),len) : sma(src,len) // === Moving Average ma_series = variant(ma_type,ma_src,ma_len) direction = 0 direction := rising(ma_series,reaction) ? 1 : falling(ma_series,reaction) ? -1 : nz(direction[1]) change_direction= change(direction,1) change_direction1= change(direction,1) pcol = direction>0 ? lime : direction<0 ? red : na plot(ma_series, color=pcol,style=line,join=true,linewidth=3,transp=10,title="MA PLOT") /////// Alerts /////// alertcondition(change_direction,title="Change Direction MA",message="Change Direction MA") longCondition = direction>0 shortCondition = direction<0 if (longCondition) strategy.entry("BUY", strategy.long) if (shortCondition) strategy.entry("SELL", strategy.short)