चलती औसत क्रॉसओवर के आधार पर रणनीति का अनुसरण करने वाली प्रवृत्ति

लेखक:चाओझांग, दिनांकः 2023-10-24 11:02:52
टैगः

img

अवलोकन

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

सिद्धांत

  1. दो चलती औसत, EMA1 और EMA2 की गणना करें, जिनकी अवधि अलग-अलग है। EMA1 की अवधि छोटी है और EMA2 की अवधि अधिक है।

  2. निर्धारित करें कि क्या ईएमए1 ईएमए2 से पार हो गया है, यदि हां, तो लंबा करें।

  3. निर्धारित करें कि क्या ईएमए1 ईएमए2 से नीचे जाता है, यदि हां, तो शॉर्ट करें।

  4. निर्धारित करें कि प्रवेश संकेत के रूप में समापन मूल्य EMA1 के माध्यम से तोड़ता है या नहीं।

  5. बाहर निकलने का तंत्र: स्टॉप लॉस को फिक्स्ड सेट करें या स्टॉप लॉस सेट करने के लिए डोंचियन चैनल का उपयोग करें।

उपयोग किए जाने वाले मुख्य कार्य:

  • ईएमए ((): घातीय चलती औसत की गणना करें
  • क्रॉसओवर ((): निर्धारित करें कि क्या ईएमए1 ईएमए2 से पार होता है
  • crossunder ((): निर्धारित करें कि क्या EMA1 EMA2 से नीचे जाता है
  • बढ़ रहा है (() / गिर रहा है ((): निर्धारित करें कि कीमत बढ़ रही है या गिर रही है
  • valuewhen(): स्थिति के आधार पर अलग-अलग मान लौटाता है

लाभ

  1. सरल तर्क, समझने और लागू करने में आसान।

  2. प्रवृत्तियों को प्रभावी ढंग से ट्रैक करने के लिए चलती औसत की प्रवृत्ति के अनुवर्ती विशेषता का उपयोग करें।

  3. कैंडलस्टिक बंद मूल्य सफलता का संयोजन झूठी सफलताओं से बचने में मदद करता है।

  4. विभिन्न अवधि के अनुकूल विभिन्न चलती औसत संयोजनों का लचीला उपयोग।

  5. स्टॉप लॉस तंत्र जोखिम को नियंत्रित करता है।

जोखिम

  1. बाजार के समेकन के दौरान अक्सर सोने के क्रॉस और मृत क्रॉस होने से झटके लगते हैं।

  2. निश्चित स्टॉप लॉस बिंदु बाजार परिवर्तनों के आधार पर समायोजित करने के लिए बहुत कठोर हो सकते हैं।

  3. मूविंग एवरेज में देरी होती है और मोड़ के बिंदुओं पर रिवर्स सिग्नल मिस हो सकते हैं।

  4. झूठी सफलताओं को फ़िल्टर करने के लिए चलती औसत ढलान का सटीक निर्णय आवश्यक है।

  5. पैरामीटर चयन में सावधानी बरतने की आवश्यकता है, अनुचित आवृत्ति या विलंब रणनीति के प्रदर्शन को प्रभावित कर सकता है।

अनुकूलन

  1. एमएसीडी शून्य रेखा क्रॉसओवर रुझानों और फिल्टर समेकन को निर्धारित करने में मदद कर सकता है।

  2. स्थिर स्टॉप हानि में सुधार के लिए गतिशील स्टॉप हानि लाइन के लिए डोनचियन चैनल जोड़ें।

  3. बाजार समेकन के दौरान अप्रभावी व्यापार से बचने के लिए मजबूत या कमजोर रुझानों का न्याय करने के लिए बोलिंगर बैंड जोड़ें।

  4. चलती औसत पैरामीटर संयोजनों को अनुकूलित करें और विभिन्न अवधि रणनीतियों के वास्तविक प्रदर्शन का परीक्षण करें।

  5. देरी को कम करने के लिए एंकर किए गए चलती औसत जोड़ने पर विचार करें।

निष्कर्ष

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


/*backtest
start: 2023-09-01 00:00:00
end: 2023-10-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='Mega crypto bot strategy', shorttitle='megacryptobot_Strategy', overlay=true, pyramiding=0, initial_capital=10000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
period = input('720')
ch1 = request.security(syminfo.tickerid, period, open)
ch2 = request.security(syminfo.tickerid, period, close)
longCondition = crossover(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

///////////////////////////////////////////////////////////////////////////////////////////

अधिक