یہ حکمت عملی مختصر مدتی بی ٹی سی ٹریڈنگ کے لئے ای ایم اے فرق اور ایم اے سی ڈی اشارے پر مبنی ایک جامع حکمت عملی ہے۔ یہ کچھ شرائط کے تحت خرید و فروخت کے سگنل پیدا کرنے کے لئے ای ایم اے اور ایم اے سی ڈی کے سگنلز کو جوڑتا ہے۔
یہ خریدنے کے سگنل پیدا کرتا ہے جب فرق منفی ہوتا ہے اور ایک حد سے نیچے ہوتا ہے اور ایم اے سی ڈی میں ایک bearish کراس اوور ہوتا ہے۔ یہ فروخت سگنل پیدا کرتا ہے جب فرق مثبت ہوتا ہے اور ایک حد سے اوپر ہوتا ہے اور ایم اے سی ڈی میں ایک بولش کراس اوور ہوتا ہے۔
ای ایم اے فرق اور ایم اے سی ڈی دونوں کے سگنل کو ملا کر ، کچھ جعلی سگنل کو فلٹر کیا جاسکتا ہے اور سگنلز کی وشوسنییتا کو بہتر بنایا جاسکتا ہے۔
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-24 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("EMA50Diff & MACD Strategy", overlay=false) EMA = input(18, step=1) MACDfast = input(12) MACDslow = input(26) EMADiffThreshold = input(8) MACDThreshold = input(80) TargetValidityThreshold = input(65, step=5) Target = input(120, step=5) StopLoss = input(650, step=5) ema = ema(close, EMA) hl = plot(0, color=white, linewidth=1) diff = close - ema clr = color(blue, transp=100) if diff>0 clr := lime else if diff<0 clr := red fastMA = ema(close, MACDfast) slowMA = ema(close, MACDslow) macd = (fastMA - slowMA)*3 signal = sma(macd, 9) plot(macd, color=aqua, linewidth=2) plot(signal, color=purple, linewidth=2) macdlong = macd<-MACDThreshold and signal<-MACDThreshold and crossover(macd, signal) macdshort = macd>MACDThreshold and signal>MACDThreshold and crossunder(macd, signal) position = 0.0 position := nz(strategy.position_size, 0.0) long = (position < 0 and close < strategy.position_avg_price - TargetValidityThreshold and macdlong) or (position == 0.0 and diff < -EMADiffThreshold and diff > diff[1] and diff[1] < diff[2] and macdlong) short = (position > 0 and close > strategy.position_avg_price + TargetValidityThreshold and macdshort) or (position == 0.0 and diff > EMADiffThreshold and diff < diff[1] and diff[1] > diff[2] and macdshort) amount = (strategy.equity / close) //- ((strategy.equity / close / 10)%10) bgclr = color(blue, transp=100) //#0c0c0c if long strategy.entry("long", strategy.long, amount) bgclr := green if short strategy.entry("short", strategy.short, amount) bgclr := maroon bgcolor(bgclr, transp=20) strategy.close("long", when=close>strategy.position_avg_price + Target) strategy.close("short", when=close<strategy.position_avg_price - Target) strategy.exit("STOPLOSS", "long", stop=strategy.position_avg_price - StopLoss) strategy.exit("STOPLOSS", "short", stop=strategy.position_avg_price + StopLoss) //plotshape(long, style=shape.labelup, location=location.bottom, color=green) //plotshape(short, style=shape.labeldown, location=location.top, color=red) pl = plot(diff, style=histogram, color=clr) fill(hl, pl, color=clr)