ایکسپونینشل موونگ ایوریج کراس اوور B-Xtrender حکمت عملی


تخلیق کی تاریخ: 2024-02-20 14:45:17 آخر میں ترمیم کریں: 2024-02-20 14:45:17
کاپی: 0 کلکس کی تعداد: 1666
1
پر توجہ دیں
1617
پیروکار

ایکسپونینشل موونگ ایوریج کراس اوور B-Xtrender حکمت عملی

جائزہ

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

حکمت عملی کا اصول

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

اسٹریٹجک فوائد

  1. ڈبل ای ایم اے کراسنگ RSI اشارے کے ساتھ مل کر سگنل کی وشوسنییتا میں نمایاں اضافہ کرتا ہے اور جھوٹے سگنل کی شرح کو کم کرتا ہے۔
  2. EMA پیرامیٹرز کے ساتھ میچنگ کی طرف سے، ٹریڈنگ سگنل کی حساسیت کو مدنظر رکھتے ہوئے، سگنل کی استحکام کو یقینی بنایا جاتا ہے.
  3. یکساں لائن فلٹر کا اضافہ، مؤثر طریقے سے شور کو فلٹر کرنے کے لئے، غیر ضروری تجارت سے بچنے کے لئے.

اسٹریٹجک رسک

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

حکمت عملی کی اصلاح کی سمت

  1. متحرک طور پر ای ایم اے پیرامیٹرز کو ایڈجسٹ کریں ، مختلف ادوار میں بہترین پیرامیٹرز کا مجموعہ منتخب کریں۔
  2. دوسرے اشارے جیسے MACD کو RSI کے ساتھ جوڑنے کی کوشش کریں۔
  3. مساوی فلٹر پیرامیٹرز کو بہتر بنائیں تاکہ شور کو ختم کرنے اور مواقع حاصل کرنے کے مابین توازن پیدا کیا جاسکے۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*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)