یہ حکمت عملی متحرک حرکت پذیر اوسط اشارے پر مبنی ہے تاکہ حقیقی وقت میں قیمت کے رجحان کو ٹریک کیا جاسکے اور جب حرکت پذیر اوسط ٹوٹ جاتا ہے تو تجارتی سگنل تیار کیے جاسکیں۔ اس حکمت عملی کا فائدہ اس کی آسان پیرامیٹر کی ترتیبات ، واضح سگنل قوانین اور درمیانی سے طویل مدتی ہولڈنگ کے لئے موزوں ہے۔
یہ حکمت عملی متحرک حرکت پذیر اوسط اشارے کا استعمال کرتی ہے جس میں ALMA ، EMA ، SMA اور بہت کچھ شامل ہے۔ اصول یہ ہے کہ جب قیمت حرکت پذیر اوسط سے اوپر ٹوٹ جاتی ہے تو طویل عرصے تک جانا اور جب یہ نیچے ٹوٹ جاتا ہے تو مختصر ہوجاتا ہے۔ یعنی ، حرکت پذیر اوسط قیمت کے رجحان کے لئے بارومیٹر کی حیثیت سے کام کرتا ہے ، اور جب رجحان کی تبدیلی واقع ہوتی ہے تو سگنل تیار کیے جاسکتے ہیں۔
خاص طور پر ، یہ حکمت عملی اعلی اور کم قیمتوں سے بنی چلتی اوسط کا استعمال کرتی ہے۔ کم قیمت ایم اے طویل سگنلز کے لئے سگنل لائن کی حیثیت سے کام کرتی ہے ، جبکہ اعلی قیمت ایم اے شارٹس کے لئے لائن کی حیثیت سے کام کرتی ہے۔ جب اختتامی قیمت کم قیمت ایم اے سے اوپر بڑھتی ہے تو ، طویل ہوجائیں۔ جب قریب کی قیمت اعلی قیمت ایم اے سے نیچے آجاتی ہے تو ، مختصر ہوجائیں۔
ایم اے کے ساتھ قیمت کے رجحان کا فیصلہ کرکے اور سگنل پیدا کرنے کے لئے بریک آؤٹ اصول کے ساتھ مل کر ، ایک سادہ اور عملی رجحان کی پیروی کرنے والی حکمت عملی تشکیل دی جاتی ہے۔
یہ حکمت عملی ایم اے کے ساتھ رجحان کی سمت کا جائزہ لیتی ہے اور بریک آؤٹ اصولوں کی بنیاد پر سگنل تیار کرتی ہے۔ یہ استعمال کرنا آسان ہے اور درمیانی سے طویل مدتی ہولڈنگ کے لئے موزوں ہے۔ مارکیٹ میں ہونے والی تبدیلیوں کے مطابق پیرامیٹرز کو بھی ایڈجسٹ کیا جاسکتا ہے۔ قلیل مدتی اتار چڑھاؤ اور طویل عرصے تک ہولڈنگ سے ہونے والے خطرات کو اسٹاپ نقصان / منافع لینے کے ساتھ سنبھالنے کی ضرورت ہے۔ زیادہ اشارے شامل کرکے اور مشین لرننگ کے ذریعہ زیادہ سے زیادہ پیرامیٹرز تلاش کرکے بہتری کی گنجائش ہے۔
/*backtest start: 2023-12-02 00:00:00 end: 2024-01-01 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Baseline Strategy - evo", shorttitle="Baseline", overlay=true) //INPUTS mat = input("ALMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "ALMA"]) baseline = input(55, title="MA Length") src = input(ohlc4, title="Closing Source") offset = input(0.85, step=0.05, title="Offset (alma only)") sigma = input(10, title="Sigma (alma only)") useCurrentRes = input(true, title="Use Current Resolution") resCustom = input("1440", title="Timeframe") showsignals = input(false, title="Show Signals ?") //BASELINE baselinehigh = mat=="SMA" ? sma(high,baseline) : mat=="EMA" ? ema(high,baseline) : mat=="WMA" ? wma(high,baseline) : mat=="HMA" ? wma(2*wma(high, baseline/2)-wma(high, baseline), round(sqrt(baseline))) : mat=="VWMA" ? vwma(high,baseline) : mat=="RMA" ? rma(high,baseline) : mat=="ALMA" ? alma(high, baseline, offset, sigma) : na baselinelow = mat=="SMA" ? sma(low,baseline) : mat=="EMA" ? ema(low,baseline) : mat=="WMA" ? wma(low,baseline) : mat=="HMA" ? wma(2*wma(low, baseline/2)-wma(low, baseline), round(sqrt(baseline))) : mat=="VWMA" ? vwma(low,baseline) : mat=="RMA" ? rma(low,baseline) : mat=="ALMA" ? alma(low, baseline, offset, sigma) : na //RESOLUTION res = useCurrentRes ? timeframe.period : resCustom mtfhigh = security(syminfo.tickerid, res, baselinehigh) mtflow = security(syminfo.tickerid, res, baselinelow) //PLOTS plot(mtfhigh, color=color.navy, linewidth=2, transp=0, title="Baseline High") plot(mtflow, color=color.navy, linewidth=2, transp=0, title="Baseline Low") long = src > mtfhigh short = src < mtflow barcolor(long ? #ffe0b2 : short ? #2a2e39 : not long and not short ? #b09e82 : na, title="BaseLine BarColor") signal = 0 signal := long ? 1 : short ? 2 : nz(signal[1]) plotshape(showsignals ? (signal != signal[1] and long ? mtflow : na) : na, title="Long", location=location.absolute, size=size.small, style=shape.labelup, text="Long", textcolor=color.black, transp=40, color=#00ff00) plotshape(showsignals ? (signal != signal[1] and short ? mtfhigh : na) : na, title="Short", location=location.absolute, size=size.small, style=shape.labeldown, text="Short", textcolor=color.white, transp=40, color=#ff0000) alertcondition(signal != signal[1], title="Trend Change !", message="Trend Change !") if (long) strategy.entry("Long", strategy.long) if (short) strategy.entry("Short", strategy.short)