B-Xtrender افقی اوسط چلتی کراس اوور حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-20 14:45:17
ٹیگز:

img

جائزہ

یہ ایک تجارتی حکمت عملی ہے جو ایکسپونینشل موونگ ایوریج (ای ایم اے) کراس اوور اصول پر مبنی ہے۔ اس میں آر ایس آئی اشارے اور موونگ ایوریج فلٹرز کو بھی شامل کیا گیا ہے تاکہ نسبتا complete مکمل رجحان کی پیروی اور الٹ ٹریڈنگ سسٹم تشکیل دیا جاسکے۔

حکمت عملی منطق

  1. تیز اور سست ای ایم اے کراس اوور کے ذریعے تجارتی سگنل تیار کریں۔ تیز لائن 5 اور 20 دن کی ای ایم اے کراس اوور کا استعمال کرتی ہے جبکہ سست لائن 20 اور 15 دن کی ای ایم اے کراس اوور کا استعمال کرتی ہے۔
  2. جب تیز لائن سست لائن کے اوپر سے گزرتی ہے تو طویل ہوجائیں ، اور جب تیز لائن نیچے سے گزرتی ہے تو مختصر ہوجائیں۔ سیکنڈری تصدیق کے لئے آر ایس آئی کا استعمال کریں ، صرف اس وقت سگنل لیں جب آر ایس آئی بھی اسی سمت میں عبور کرے۔
  3. متضاد ادوار کے دوران سگنلز سے بچنے کے لئے 200 دن کا متحرک اوسط فلٹر شامل کریں۔ تجارت صرف اس وقت کی جاتی ہے جب قیمت پہلے اس بیس لائن ایم اے کو توڑ دیتی ہے۔

فوائد

  1. آر ایس آئی کی تصدیق سگنل کی وشوسنییتا کو نمایاں طور پر بڑھا دیتی ہے اور جھوٹے سگنل کو کم کرتی ہے۔
  2. ای ایم اے پیرامیٹر انتخاب حساسیت اور استحکام کو متوازن کرتا ہے۔
  3. ایم اے فلٹر غیر ضروری تجارت سے بچنے کے لئے شور کو ہٹا دیتا ہے.

خطرات

  1. ای ایم اے میں تیزی سے قیمتوں میں اتار چڑھاؤ، بڑھتے ہوئے نقصانات یا لاپتہ سگنل پر تاخیر کے مسائل ہیں۔
  2. خراب آر ایس آئی کی ترتیبات سگنل کی تاخیر کو بھی متعارف کروا سکتی ہیں۔
  3. ایم اے فلٹر ابتدائی رجحان سگنل کو فلٹر کر سکتا ہے.

بہتر مواقع

  1. متحرک طور پر EMA پیرامیٹرز کو سائیکلوں میں بہتر بنائیں.
  2. آر ایس آئی کے ساتھ مل کر دیگر اشارے جیسے ایم اے سی ڈی کے ساتھ تجربہ کریں.
  3. ٹھیک ٹیون MA فلٹر پیرامیٹر زیادہ سے زیادہ شور کی کمی اور موقع کی گرفت کے لئے.

نتیجہ

یہ ایک مکمل ای ایم اے ٹریڈنگ سسٹم کی تعمیر میں ایک مجموعی طور پر ٹھوس حکمت عملی ہے ، جس میں سگنل کے معیار کو بڑھانے کے لئے اضافی آر ایس آئی کی توثیق ہے۔ اس کا مطالعہ اور اصلاح کے قابل ہے۔ تاہم ، اندرونی اشارے کی تاخیر کے خطرات کو مناسب اسٹاپ نقصان کے ذریعے بھی سنبھالا جانا چاہئے۔


/*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)    

مزید