دوہری EMA کراس اوور ٹرینڈ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-29 15:46:15
ٹیگز:

img

جائزہ

یہ حکمت عملی موجودہ رجحان کی سمت کا تعین کرنے کے لئے دوہری ای ایم اے اشارے کے سنہری کراس اور موت کے کراس کا استعمال کرتی ہے ، اور خرید و فروخت کے مواقع سے بچنے کے لئے آر ایس آئی اشارے کو جوڑتی ہے۔ یہ ایک عام رجحان سے باخبر رہنے کی حکمت عملی ہے۔

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

  1. 10 مدت اور 20 مدت کی ای ایم اے لائنوں کا حساب لگائیں، جو بالترتیب ma00 اور ma01 کہلاتی ہیں۔
  2. خریدنے کا اشارہ اس وقت پیدا ہوتا ہے جب ma00 ma01 کے اوپر سے گزر جاتا ہے
  3. جب ma00 ma01 سے نیچے گزرتا ہے تو فروخت کا اشارہ پیدا ہوتا ہے
  4. ایک ہی وقت میں ، جب قیمت ma00 سے اوپر کی حد کو عبور کرتی ہے ، اگر ma00 ma01 سے اوپر ہے تو ، خریدنے کا اشارہ بھی تیار کیا جائے گا۔
  5. اسی طرح جب قیمت ma00 سے نیچے گزرتی ہے ، اگر ma00 ma01 سے نیچے ہے تو ، فروخت کا اشارہ بھی تیار کیا جائے گا۔
  6. اس طرح کی دوہری توثیق کے ذریعے، کچھ خرید اور فروخت کے پوائنٹس کی کمی سے بچا جا سکتا ہے
  7. خطرات کو کنٹرول کرنے کے لئے سٹاپ نقصان اور منافع کی قیمتیں مقرر کریں

فوائد کا تجزیہ

  1. کا تعین کرنے کے لئے دوہری EMA کا استعمال کرتے ہوئے مؤثر طریقے سے جھوٹے بریکآؤٹس کو فلٹر کر سکتا ہے
  2. دوہری حالت کی توثیق سے لاپتہ احکامات سے بچنے کے لئے
  3. سٹاپ نقصان اور منافع لینے کی ترتیبات خطرے کے انتظام کے لئے فائدہ مند ہیں

خطرے کا تجزیہ

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

اصلاح کی ہدایات

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

/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title='[STRATEGY][RS]MicuRobert EMA cross V1', shorttitle='S', overlay=true, pyramiding=0, initial_capital=100000)
USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true)
USE_TRAILINGSTOP = input(title='Use Trailing Stop?', type=bool, defval=true)
trade_session = input(title='Trade Session:',  defval='0400-1500', confirm=false)
istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session))
bgcolor(istradingsession?color.gray:na)
trade_size = input(title='Trade Size:', type=float, defval=1)
tp = input(title='Take profit in pips:', type=float, defval=55.0) * (syminfo.mintick*10)
sl = input(title='Stop loss in pips:', type=float, defval=11.0) * (syminfo.mintick*10)
ma_length00 = input(title='EMA length:',  defval=10)
ma_length01 = input(title='DEMA length:',  defval=20)
price = input(title='Price source:', defval=open)

//  ||--- NO LAG EMA, Credit LazyBear:  ---||
f_LB_zlema(_src, _length)=>
    _ema1=ema(_src, _length)
    _ema2=ema(_ema1, _length)
    _d=_ema1-_ema2
    _zlema=_ema1+_d
//  ||-------------------------------------||

ma00 = f_LB_zlema(price, ma_length00)
ma01 = f_LB_zlema(price, ma_length01)
plot(title='M0', series=ma00, color=black)
plot(title='M1', series=ma01, color=black)

isnewbuy = change(strategy.position_size)>0 and change(strategy.opentrades)>0
isnewsel = change(strategy.position_size)<0 and change(strategy.opentrades)>0

buy_entry_price = isnewbuy ? price : buy_entry_price[1]
sel_entry_price = isnewsel ? price : sel_entry_price[1]
plot(title='BE', series=buy_entry_price, style=circles, color=strategy.position_size <= 0 ? na : aqua)
plot(title='SE', series=sel_entry_price, style=circles, color=strategy.position_size >= 0 ? na : aqua)
buy_appex = na(buy_appex[1]) ? price : isnewbuy ? high : high >= buy_appex[1] ? high : buy_appex[1]
sel_appex = na(sel_appex[1]) ? price : isnewsel ? low : low <= sel_appex[1] ? low : sel_appex[1]
plot(title='BA', series=buy_appex, style=circles, color=strategy.position_size <= 0 ? na : teal)
plot(title='SA', series=sel_appex, style=circles, color=strategy.position_size >= 0 ? na : teal)
buy_ts = buy_appex - sl
sel_ts = sel_appex + sl
plot(title='Bts', series=buy_ts, style=circles, color=strategy.position_size <= 0 ? na : red)
plot(title='Sts', series=sel_ts, style=circles, color=strategy.position_size >= 0 ? na : red)

buy_cond1 = crossover(ma00, ma01) and (USE_TRADESESSION ? istradingsession : true)
buy_cond0 = crossover(price, ma00) and ma00 > ma01 and (USE_TRADESESSION ? istradingsession : true)
buy_entry = buy_cond1 or buy_cond0
buy_close = (not USE_TRAILINGSTOP ? false : low <= buy_ts) or high>=buy_entry_price+tp//high>=last_traded_price + tp or low<=last_traded_price - sl //high >= hh or 
sel_cond1 = crossunder(ma00, ma01) and (USE_TRADESESSION ? istradingsession : true)
sel_cond0 = crossunder(price, ma00) and ma00 < ma01 and (USE_TRADESESSION ? istradingsession : true)
sel_entry = sel_cond1 or sel_cond0
sel_close = (not USE_TRAILINGSTOP ? false : high >= sel_ts) or low<=sel_entry_price-tp//low<=last_traded_price - tp or high>=last_traded_price + sl //low <= ll or 

strategy.entry('buy', long=strategy.long, qty=trade_size, comment='buy', when=buy_entry)
strategy.close('buy', when=buy_close)
strategy.entry('sell', long=strategy.short, qty=trade_size, comment='sell', when=sel_entry)
strategy.close('sell', when=sel_close)

//What i add .!
pos = iff(ma01 < ma00 , 1,
	    iff(ma01 > ma00 , -1, nz(pos[1], 0))) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue)
plot(ma00, color=red, title="MA")
plot(ma01, color=blue, title="EMA")

مزید