मूविंग एवरेज सिस्टम ट्रेडिंग रणनीति


निर्माण तिथि: 2024-01-05 15:36:00 अंत में संशोधित करें: 2024-01-05 15:36:00
कॉपी: 1 क्लिक्स: 683
1
ध्यान केंद्रित करना
1617
समर्थक

मूविंग एवरेज सिस्टम ट्रेडिंग रणनीति

अवलोकन

इस लेख में एक सरल चलती औसत आधारित ट्रेडिंग रणनीति पर चर्चा की गई है। यह रणनीति 17 की लंबाई की चलती औसत और समापन मूल्य की तुलना करती है। समापन मूल्य पर चलती औसत को पार करते समय अधिक करें, और नीचे जाने पर शून्य करें।

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

चलती औसत गणना

यह रणनीति निम्न पैरामीटर का उपयोग करके चलती औसत की गणना करती हैः

  • MA स्रोतः डिफ़ॉल्ट ओएचएलसी औसत ((OHCL4)
  • एमए प्रकारः डिफ़ॉल्ट सरल चलती औसत (एसएमए)
  • एमए लंबाईः डिफ़ॉल्ट रूप से 17

इन मापदंडों के आधार पर, getMAType () फ़ंक्शन को 17 चक्रों के समापन मूल्य SMA की गणना करने के लिए कहा जाता है।

व्यापार संकेत उत्पन्न

फिर बंद होने की कीमतों की तुलना चलती औसत के साथ करेंः

  • समापन मूल्य > चलती औसतः लंबी स्थिति संकेत
  • समापन मूल्य < चलती औसतः रिक्त स्थान संकेत

जब समापन मूल्य नीचे से चलती औसत को पार करता है, तो एक अधिक संकेत उत्पन्न होता है; जब ऊपर से नीचे से पार होता है, तो एक शून्य संकेत उत्पन्न होता है।

लेन-देन निष्पादन

रिटर्निंग चक्र के दौरान, अधिक संकेत मिलने पर अधिक स्थिति खोलें, और शून्य संकेत मिलने पर खाली स्थिति खोलें।

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

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

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

पैरामीटर के समायोजन के माध्यम से, यह विभिन्न चक्रों और विभिन्न किस्मों के लिए अनुकूलित किया जा सकता है।

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

सबसे पहले, यह रणनीति केवल एक सूचकांक पर आधारित है, और एक ही मापदंड के आधार पर, यह अधिक गलत संकेत दे सकता है।

और यह रणनीति एक प्रवृत्ति ट्रैकिंग प्रणाली है, जो एक स्थिर और अस्थिर बाजार में काम नहीं कर सकती है।

इसके अलावा, कोई स्टॉप लॉस स्टॉप सेट नहीं है, जिससे नुकसान बढ़ने का खतरा है।

समाधान अन्य संकेतकों के साथ संयोजन में है, पैरामीटर के संयोजन को अनुकूलित करें, गलत संकेतों को कम करें। स्टॉप लॉस स्टॉप सेट करें, जोखिम को नियंत्रित करें, और वापसी को अनुकूलित करें।

अनुकूलन दिशा

निम्नलिखित पहलुओं को ध्यान में रखते हुए रणनीति को अनुकूलित किया जा सकता हैः

  1. चलती औसत पैरामीटर को समायोजित करें, चक्रों की संख्या को अनुकूलित करें, जैसे कि 30 चक्र या 50 चक्र आदि।

  2. विभिन्न प्रकार के चलती औसत जैसे कि ईएमए, वीडीआईए आदि का प्रयास करें। वे मूल्य परिवर्तनों के लिए अलग-अलग संवेदनशील हैं।

  3. अन्य संकेतकों के संयोजन को जोड़ना. उदाहरण के लिए, MACD के साथ संयोजन, मजबूत और कमजोर का आकलन करने में सक्षम है. या RSI के साथ संयोजन, गलत संकेतों को कम करने के लिए.

  4. बढ़ी हुई रोकथाम तंत्र एक निश्चित प्रतिशत या एटीआर मूल्य की एक चलती रोकथाम सेट एकल हानि को नियंत्रित करना

  5. रोकथाम तंत्र को बढ़ाएं। लक्ष्य लाभ प्रतिशत निर्धारित करें। लाभ को अधिकतम करें।

ये अनुकूलन रणनीति के प्रदर्शन को स्थिर करते हैं और अत्यधिक वापसी से बचते हैं।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Simple 17 BF 🚀", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// Moving Average /////////////
source = input(title="MA Source", defval=ohlc4)
maType = input(title="MA Type", defval="sma", options=["sma", "ema", "swma", "wma", "vwma", "rma"])
length = input(title="MA Length", defval=17)

///////////// Get MA Function /////////////
getMAType(maType, sourceType, maLen) => 
    res = sma(close, 1)
    
    if maType == "ema"
        res := ema(sourceType, maLen)
    if maType == "sma"
        res := sma(sourceType, maLen)
    if maType == "swma"
        res := swma(sourceType)
    if maType == "wma"
        res := wma(sourceType, maLen)
    if maType == "vwma"
        res := vwma(sourceType, maLen)
    if maType == "rma"
        res := rma(sourceType, maLen)
    res
    
MA = getMAType(maType, source, length)

/////////////// Strategy ///////////////
long = close > MA
short = close < MA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("L", strategy.long, when=long_signal)
    strategy.entry("S", strategy.short, when=short_signal)

/////////////// Plotting /////////////// 
p1 = plot(MA, color = long ? color.lime : color.red, linewidth=2)
p2 = plot(close, linewidth=2)
fill(p1, p2, color=strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)