
इस लेख में एक सरल चलती औसत आधारित ट्रेडिंग रणनीति पर चर्चा की गई है। यह रणनीति 17 की लंबाई की चलती औसत और समापन मूल्य की तुलना करती है। समापन मूल्य पर चलती औसत को पार करते समय अधिक करें, और नीचे जाने पर शून्य करें।
यह रणनीति निम्न पैरामीटर का उपयोग करके चलती औसत की गणना करती हैः
इन मापदंडों के आधार पर, getMAType () फ़ंक्शन को 17 चक्रों के समापन मूल्य SMA की गणना करने के लिए कहा जाता है।
फिर बंद होने की कीमतों की तुलना चलती औसत के साथ करेंः
जब समापन मूल्य नीचे से चलती औसत को पार करता है, तो एक अधिक संकेत उत्पन्न होता है; जब ऊपर से नीचे से पार होता है, तो एक शून्य संकेत उत्पन्न होता है।
रिटर्निंग चक्र के दौरान, अधिक संकेत मिलने पर अधिक स्थिति खोलें, और शून्य संकेत मिलने पर खाली स्थिति खोलें।
इस रणनीति का सबसे बड़ा लाभ यह है कि विचार बहुत सरल और स्पष्ट है। केवल एक संकेतक है, इसकी दिशा में बदलाव के माध्यम से प्रवृत्ति के परिवर्तन का न्याय करने के लिए। रणनीति को समझना आसान है, इसे लागू करना आसान है, और शुरुआती सीखने के लिए उपयुक्त है।
इसके अलावा, चलती औसत एक प्रवृत्ति-अनुसरण प्रकार का सूचक है, जो बाजार में अल्पकालिक शोर से बाधित होने से बचने के लिए प्रवृत्ति में बदलाव को प्रभावी ढंग से ट्रैक करने में सक्षम है।
पैरामीटर के समायोजन के माध्यम से, यह विभिन्न चक्रों और विभिन्न किस्मों के लिए अनुकूलित किया जा सकता है।
सबसे पहले, यह रणनीति केवल एक सूचकांक पर आधारित है, और एक ही मापदंड के आधार पर, यह अधिक गलत संकेत दे सकता है।
और यह रणनीति एक प्रवृत्ति ट्रैकिंग प्रणाली है, जो एक स्थिर और अस्थिर बाजार में काम नहीं कर सकती है।
इसके अलावा, कोई स्टॉप लॉस स्टॉप सेट नहीं है, जिससे नुकसान बढ़ने का खतरा है।
समाधान अन्य संकेतकों के साथ संयोजन में है, पैरामीटर के संयोजन को अनुकूलित करें, गलत संकेतों को कम करें। स्टॉप लॉस स्टॉप सेट करें, जोखिम को नियंत्रित करें, और वापसी को अनुकूलित करें।
निम्नलिखित पहलुओं को ध्यान में रखते हुए रणनीति को अनुकूलित किया जा सकता हैः
चलती औसत पैरामीटर को समायोजित करें, चक्रों की संख्या को अनुकूलित करें, जैसे कि 30 चक्र या 50 चक्र आदि।
विभिन्न प्रकार के चलती औसत जैसे कि ईएमए, वीडीआईए आदि का प्रयास करें। वे मूल्य परिवर्तनों के लिए अलग-अलग संवेदनशील हैं।
अन्य संकेतकों के संयोजन को जोड़ना. उदाहरण के लिए, MACD के साथ संयोजन, मजबूत और कमजोर का आकलन करने में सक्षम है. या RSI के साथ संयोजन, गलत संकेतों को कम करने के लिए.
बढ़ी हुई रोकथाम तंत्र एक निश्चित प्रतिशत या एटीआर मूल्य की एक चलती रोकथाम सेट एकल हानि को नियंत्रित करना
रोकथाम तंत्र को बढ़ाएं। लक्ष्य लाभ प्रतिशत निर्धारित करें। लाभ को अधिकतम करें।
ये अनुकूलन रणनीति के प्रदर्शन को स्थिर करते हैं और अत्यधिक वापसी से बचते हैं।
इस लेख में 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)