یہ حکمت عملی ایک حرکت پذیر اوسط کے ساتھ قیمت کے کراسنگ کی بنیاد پر خرید اور فروخت کے سگنل پیدا کرتی ہے۔ یہ مختلف قسم کے حرکت پذیر اوسط اور جھوٹے بریکآؤٹس کو فلٹر کرنے کے لئے رواداری پیرامیٹر مہیا کرتی ہے۔ اس حکمت عملی کا مقصد رجحان کی پیروی کے لئے قیمت کے رجحانات میں موڑ کے مقامات پر قبضہ کرنا ہے۔
حکمت عملی اختتامی قیمت کی بنیاد پر ایک لمبائی این چلتی اوسط کا حساب لگاتی ہے۔ عام چلتی اوسط اقسام میں سادہ چلتی اوسط (ایس ایم اے) ، تیزی سے چلتی اوسط (ای ایم اے) ، وزن شدہ چلتی اوسط (ڈبلیو ایم اے) وغیرہ شامل ہیں۔ پھر ایک رواداری کی سطح مقرر کی جاتی ہے ، جیسے 5٪ ، اور اوپری بینڈ (1.05 گنا چلتی اوسط) اور نچلے بینڈ (0.95 گنا چلتی اوسط) کا حساب لگایا جاتا ہے۔ جب اختتامی قیمت اوپری بینڈ سے تجاوز کرتی ہے تو ، خرید کا سگنل تیار کیا جاتا ہے۔ جب اختتامی قیمت نچلی بینڈ سے تجاوز کرتی ہے تو ، فروخت کا سگنل تیار کیا جاتا ہے۔ اس سے کچھ جھوٹے بریکآؤٹس کو فلٹر کرنے میں مدد ملتی ہے۔ نیز ، ایک بولین پیرامیٹر
مجموعی طور پر یہ ایک عام رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ کچھ لچک کے ساتھ ، رجحانات کا تعین کرنے کے لئے قیمت اور چلتی اوسط کے مابین تعلقات کا استعمال کرتی ہے۔ پیرامیٹر کی اصلاح اور مناسب سگنل فلٹرنگ کے ذریعہ ، یہ ایک مہذب مقدار کی حکمت عملی بن سکتی ہے۔ لیکن زیادہ نقصانات سے بچنے کے لئے شارٹ شیئرنگ کے دوران نیچے کے خطرات پر قابو پانا ضروری ہے۔
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-25 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/ // © RafaelPiccolo //@version=4 strategy("Price X MA Cross", overlay=true) typ = input("HMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"]) len = input(100, minval=1, title="Length") src = input(close, "Source", type=input.source) tol = input(0, minval=0, title="Tolerance (%)", type=input.float) shortOnly = input(false, "Short only") tema(src, len)=> ema1 = ema(src, len) ema2 = ema(ema1, len) ema3 = ema(ema2, len) return = 3 * (ema1 - ema2) + ema3 getMAPoint(type, len, src)=> return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len) ma = getMAPoint(typ, len, src) upperTol = ma * (1 + tol/100) lowerTol = ma * (1 - tol/100) longCondition = crossover(close, upperTol) shortCondition = crossunder(close, lowerTol) if (shortCondition) strategy.entry("Short", strategy.short) if (longCondition) if (shortOnly) strategy.close("Short") else strategy.entry("Long", strategy.long) plot(ma, "Moving Average", close > ma ? color.green : color.red, linewidth = 2) t1 = plot(tol > 0 ? upperTol : na, transp = 70) t2 = plot(tol > 0 ? lowerTol : na, transp = 70) fill(t1, t2, color = tol > 0 ? color.blue : na)