डबल मूविंग एवरेज क्रॉसिंग ट्रेडिंग रणनीति के आधार पर


निर्माण तिथि: 2023-12-27 16:07:49 अंत में संशोधित करें: 2023-12-27 16:07:49
कॉपी: 2 क्लिक्स: 681
1
ध्यान केंद्रित करना
1623
समर्थक

डबल मूविंग एवरेज क्रॉसिंग ट्रेडिंग रणनीति के आधार पर

अवलोकन

इस रणनीति को खरीदने और बेचने के संकेतों को उत्पन्न करने के लिए एक गोल्ड क्रॉस और मूविंग एवरेज के डेथ क्रॉस पर आधारित है। विशेष रूप से, यह रणनीति एक साथ 5-दिवसीय इंडेक्सल मूविंग एवरेज (ईएमए) और 34-दिवसीय डबल इंडेक्सल मूविंग एवरेज (डीईएमए) का उपयोग करती है। जब एक अल्पकालिक 5-दिवसीय ईएमए नीचे से लंबे समय तक 34-दिवसीय डीईएमए को पार करता है, तो एक खरीदने का संकेत उत्पन्न होता है; जब एक अल्पकालिक 5-दिवसीय ईएमए ऊपर से लंबे समय तक 34-दिवसीय डीईएमए को पार करता है, तो एक बेचने का संकेत उत्पन्न होता है।

रणनीति सिद्धांत

  1. 5 दिन ईएमए और 34 दिन डीईएमए की गणना करें
  2. जब अल्पकालिक 5-दिवसीय ईएमए 34-दिवसीय डीईएमए को नीचे से पार करता है, तो एक खरीद संकेत उत्पन्न होता है
  3. जब अल्पकालिक 5 दिन ईएमए 34 दिन के लंबे डीईएमए को ऊपर से नीचे से पार करता है, तो एक बेचने का संकेत उत्पन्न होता है
  4. केवल एक निश्चित समय के लिए ट्रेड करने का विकल्प
  5. ट्रैक करने के लिए रोक का उपयोग करने के लिए चुनें

इस रणनीति में ट्रेंड फॉलोइंग और एवरेज लाइन क्रॉसिंग के दो कारक शामिल हैं, जिसका स्थिर प्रभाव है। एक ट्रेंड फॉलोइंग इंडिकेटर के रूप में चलती औसत बाजार की प्रवृत्ति की पहचान करने के लिए प्रभावी है। ईएमए और डीईएमए के संयोजन का उपयोग व्यापार संकेतों को उत्पन्न करने के लिए मूल्य डेटा को प्रभावी ढंग से चिकना करने में सक्षम है। और एक छोटी और लंबी अवधि के एवरेज लाइन क्रॉसिंग के लिए एक व्यापार संकेत प्रदान करता है जब एक बड़ी प्रवृत्ति बदलती है।

श्रेष्ठता विश्लेषण

  1. रणनीति सरल, स्पष्ट और समझने में आसान है
  2. मूविंग एवरेज के संयोजन का उपयोग, प्रवृत्ति के निर्णय के साथ-साथ मूल्य डेटा के चिकनी प्रसंस्करण को ध्यान में रखते हुए
  3. अल्पकालिक और दीर्घकालिक औसत रेखाओं का क्रॉसिंग, बड़े बाजार के मोड़ बिंदुओं पर अग्रिम में व्यापारिक संकेत देता है
  4. पैरामीटर के माध्यम से अनुकूलित किया जा सकता है, औसत रेखा की लंबाई को समायोजित करने के लिए विभिन्न किस्मों और चक्रों के लिए अनुकूलित
  5. दो कारकों के एकीकरण से रणनीतिक स्थिरता में सुधार हो सकता है

जोखिम विश्लेषण

  1. भूकंपीय घटनाओं के दौरान अधिक गलत संकेत हो सकते हैं
  2. औसत रेखा की गलत लंबाई सिग्नल विलंबता का कारण बन सकती है
  3. अनुचित ट्रेडिंग समय और स्टॉप लॉस सेटिंग्स रणनीतिक लाभ को प्रभावित कर सकते हैं

इन जोखिमों को औसत रेखा की लंबाई को समायोजित करके, व्यापार के समय को अनुकूलित करके और उचित स्टॉप-लॉस सेट करके कम किया जा सकता है।

अनुकूलन दिशा

  1. विभिन्न प्रकार के ट्रेडों और चक्रों के लिए औसत रेखा लंबाई पैरामीटर को समायोजित करना
  2. ट्रेडिंग समय पैरामीटर को अनुकूलित करें, मुख्य सक्रिय समय अवधि में व्यापार करें
  3. फिक्स्ड स्टॉप और ट्रैकिंग स्टॉप के फायदे और नुकसान
  4. मूल्य निर्धारण के विभिन्न तरीकों का परीक्षण करें

संक्षेप

इस रणनीति के माध्यम से द्वि-समान रेखा क्रॉसिंग व्यापार संकेत उत्पन्न करता है, जबकि प्रवृत्ति ट्रैकिंग और डेटा चिकनाई प्रसंस्करण के संयोजन में, एक सरल व्यावहारिक प्रवृत्ति ट्रैकिंग रणनीति है. पैरामीटर के अनुकूलन और नियम अनुकूलन के माध्यम से, विभिन्न किस्मों और व्यापार चक्रों के लिए अनुकूलित किया जा सकता है, अग्रिम में व्यापार संकेत देने के लिए जब बड़े प्रवृत्ति परिवर्तन, गलत संकेतों से बचने के लिए। सिफारिश और आवेदन के लायक है।

रणनीति स्रोत कोड
/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",false]]
*/

//@version=2
strategy(title='[STRATEGY][RS]MicuRobert EMA cross V2', shorttitle='S', overlay=true)
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?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=22.0) * (syminfo.mintick*10)
ma_length00 = input(title='EMA length:', defval=5)
ma_length01 = input(title='DEMA length:',  defval=34)
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 ? low <= buy_entry_price - sl: 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 ? high >= sel_entry_price + sl : 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)