یہ ایک تجارتی حکمت عملی ہے جو ایکسپونینشل موونگ ایوریج (ای ایم اے) کراس اوور اصول پر مبنی ہے۔ اس میں آر ایس آئی اشارے اور موونگ ایوریج فلٹرز کو بھی شامل کیا گیا ہے تاکہ نسبتا complete مکمل رجحان کی پیروی اور الٹ ٹریڈنگ سسٹم تشکیل دیا جاسکے۔
یہ ایک مکمل ای ایم اے ٹریڈنگ سسٹم کی تعمیر میں ایک مجموعی طور پر ٹھوس حکمت عملی ہے ، جس میں سگنل کے معیار کو بڑھانے کے لئے اضافی آر ایس آئی کی توثیق ہے۔ اس کا مطالعہ اور اصلاح کے قابل ہے۔ تاہم ، اندرونی اشارے کی تاخیر کے خطرات کو مناسب اسٹاپ نقصان کے ذریعے بھی سنبھالا جانا چاہئے۔
/*backtest start: 2023-02-13 00:00:00 end: 2024-02-19 00:00:00 period: 1d basePeriod: 1h 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/ // © QuantTherapy //@version=4 strategy("B-Xtrender [Backtest Edition] @QuantTherapy") i_short_l1 = input(5 , title="[Short] L1") i_short_l2 = input(20, title="[Short] L2") i_short_l3 = input(15, title="[Short] L3") i_long_l1 = input(20, title="[Long] L1") i_long_l2 = input(15, title="[Long] L2") i_ma_use = input(true , title="[MA Filter] Yes/No" ) i_ma_len = input(200 , title="[MA Filter] length" ) i_ma_type = input("EMA", title="[MA Filter] type", options = ["SMA", "EMA"]) shortTermXtrender = rsi( ema(close, i_short_l1) - ema(close, i_short_l2), i_short_l3 ) - 50 longTermXtrender = rsi( ema(close, i_long_l1), i_long_l2 ) - 50 shortXtrenderCol = shortTermXtrender > 0 ? shortTermXtrender > shortTermXtrender[1] ? color.lime : #228B22 : shortTermXtrender > shortTermXtrender[1] ? color.red : #8B0000 plot(shortTermXtrender, color=shortXtrenderCol, style=plot.style_columns, linewidth=1, title="B-Xtrender Osc. - Histogram", transp = 40) longXtrenderCol = longTermXtrender> 0 ? longTermXtrender > longTermXtrender[1] ? color.lime : #228B22 : longTermXtrender > longTermXtrender[1] ? color.red : #8B0000 macollongXtrenderCol = longTermXtrender > longTermXtrender[1] ? color.lime : color.red plot(longTermXtrender , color=longXtrenderCol, style=plot.style_columns, linewidth=2, title="B-Xtrender Trend - Histogram", transp = 90) plot(longTermXtrender , color=#000000 , style=plot.style_line, linewidth=5, title="B-Xtrender Trend - Line", transp = 100) plot(longTermXtrender , color=macollongXtrenderCol, style=plot.style_line, linewidth=3, title="B-Xtrender Trend - Line", transp = 100) // --- Initialize MA Filter ma = i_ma_type == "EMA" ? ema(close, i_ma_len) : sma(close, i_ma_len) maFilterLong = true maFilterShort = true if i_ma_use maFilterLong := close > ma ? true : false maFilterShort := close < ma ? true : false long = shortTermXtrender > 0 and longTermXtrender > 0 and maFilterLong closeLong = shortTermXtrender < 0 or longTermXtrender < 0 short = shortTermXtrender < 0 and longTermXtrender < 0 and maFilterShort closeShort = shortTermXtrender > 0 or longTermXtrender > 0 plotshape(long[1]==true and long[2]==false ? 0 : na , location=location.absolute, style=shape.labelup , color=color.lime, size=size.small, transp=10) plotshape(short[1]==true and short[2]==false ? 0 : na, location=location.absolute, style=shape.labeldown, color=color.red , size=size.small, transp=10) plotshape(closeLong[1]==true and closeLong[2]==false or closeShort[1]==true and closeShort[2]==false ? 0 : na, location=location.absolute, style=shape.circle, color=color.orange , size=size.small) i_perc = input(defval = 20.0, title = "[TSL-%] Percent" , minval = 0.1 ) i_src = close // constant for calculation sl_val = i_src * i_perc / 100 strategy.entry("Long", strategy.long, when = long ) strategy.close("Long", when = closeLong) strategy.entry("Short", strategy.short, when = short) strategy.close("Short", when = closeShort) // Calculate SL longStopPrice = 0.0, shortStopPrice = 0.0 longStopPrice := if (strategy.position_size > 0) stopValue = close - sl_val max(stopValue, longStopPrice[1]) else 0 shortStopPrice := if (strategy.position_size < 0) stopValue = close + sl_val min(stopValue, shortStopPrice[1]) else syminfo.mintick*1000000 // For TSL Visualisation on Chart // plot(series=(strategy.position_size > 0) ? longStopPrice : na, // color=color.fuchsia, style = plot.style_circles, // linewidth=1, title="Long Trail Stop") // plot(series=(strategy.position_size < 0) ? shortStopPrice : na, // color=color.fuchsia, style = plot.style_circles, // linewidth=1, title="Short Trail Stop") if (strategy.position_size > 0) strategy.exit(id="TSL Long", stop=longStopPrice) if (strategy.position_size < 0) strategy.exit(id="TSL Short", stop=shortStopPrice)