गतिशील चलती औसत ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-04 15:38:09
टैगः

img

अवलोकन

यह रणनीति लैरी विलियम्स द्वारा अपनी पुस्तक Long-Term Secrets to Short-Term Trading में समझाए गए दृष्टिकोण का उपयोग करती है, जिसमें दो 3-अवधि चलती औसत का उपयोग किया जाता है, एक उच्च और दूसरा निम्न का प्रतिनिधित्व करता है। जब कीमत 3-अवधि के निम्न ईएमए से नीचे गिरती है तो हमारे पास एक लंबा संकेत होता है। व्यापार बंद हो जाता है जब कीमत 3-अवधि के उच्च ईएमए से ऊपर बंद हो जाती है।

रणनीति तर्क

इस रणनीति का मुख्य तर्क उच्च और निम्न कीमतों के 3-अवधि चलती औसत की गणना करना है। विशेष रूप से, यह गतिशील समर्थन और प्रतिरोध स्तर उत्पन्न करने के लिए सबसे हाल के 3 बारों पर उच्च और निम्न कीमतों के घातीय चलती औसत की गणना करने के लिए ta.ema फ़ंक्शन का उपयोग करता है। जब कीमत कम ईएमए से नीचे टूट जाती है, तो यह एक डाउनट्रेंड का संकेत देती है, इसलिए हम लंबे समय तक जा सकते हैं। जब कीमत उच्च ईएमए से ऊपर उठती है, तो यह सुझाव देती है कि अपट्रेंड समाप्त हो गया है और हमें अपनी स्थिति को बंद करना चाहिए। इस तरह, रणनीति गतिशील रूप से मूल्य परिवर्तनों को ट्रैक कर सकती है और कम खरीद और उच्च बेच सकती है।

लाभ विश्लेषण

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

जोखिम और समाधान

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

अनुकूलन दिशाएँ

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

निष्कर्ष

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


/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(
     "Larry Williams 3 Period EMAs strategy",
     overlay=true,
     calc_on_every_tick=true,
     currency=currency.USD
     )

// Time range for backtesting
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year", defval=2018, minval=1800, maxval=2100)

endDate = input.int(title="End Date", defval=31, minval=1, maxval=31)
endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12)
endYear = input.int(title="End Year", defval=2041, minval=1800, maxval=2100)

inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and
     (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

// EMA
period = 3

emaH = ta.ema(high, period)
emaL = ta.ema(low, period)

// PLOT:
// Draw the EMA lines on the chart
plot(series=emaH, color=color.green, linewidth=2)
plot(series=emaL, color=color.red, linewidth=2)

// Conditions
if(inDateRange and close < emaL)
    strategy.entry("Long", strategy.long, comment="Long")
if(close > emaH)
    strategy.close("Long", comment="Close Long")

// Uncomment to enable short entries
//if(inDateRange and close > emaH)                                    
//    strategy.entry("Short", strategy.short, comment="Short")    
//if(close < emaL)
//    strategy.close("Short", comment="Close Short")

अधिक