
यह रणनीति तीन अलग-अलग चक्रों के लिए चलती औसत की गणना करके और कीमत के ब्रेकआउट के साथ मिलकर ट्रेडिंग सिग्नल बनाने के लिए एक विशिष्ट प्रवृत्ति ट्रैकिंग रणनीति है। यह रणनीति बाजार के मध्यवर्ती रुझानों को ट्रैक करने के लिए डिज़ाइन की गई है, जो कि विभिन्न किस्मों और ट्रेडिंग वातावरणों के लिए पैरामीटर को गतिशील रूप से समायोजित करने के लिए है।
इस रणनीति में तीन चलती औसत शामिल हैंः MA1, MA2 और MA3। MA1 और MA2 के बीच एक लेनदेन चैनल बनाया गया है, जिसका क्रॉसिंग ट्रेडिंग सिग्नल देता है; MA3 सिग्नल को फ़िल्टर करने के लिए है।
जब एक त्वरित औसत MA1 पर मध्य अवधि के औसत MA2 को पार करता है, तो यह संकेत देता है कि अल्पकालिक प्रवृत्ति मजबूत हो गई है, और यदि कीमत लंबी अवधि के औसत MA3 से अधिक है, तो एक अधिक संकेत उत्पन्न होता है; इसके विपरीत, यदि MA1 नीचे MA2 को पार करता है, और कीमत MA3 से कम है, तो एक शून्य संकेत उत्पन्न होता है।
एमए 3 का कार्य अल्पावधि बाजार के शोर को फ़िल्टर करना है और केवल मध्यम और दीर्घकालिक चरण में प्रवृत्ति की पहचान करने के बाद संकेत उत्पन्न करता है। यह रणनीति तीन चलती औसत के मापदंडों को गतिशील रूप से समायोजित करके विभिन्न बाजारों में सर्वोत्तम संयोजनों की तलाश कर सकती है।
MA चक्र को समायोजित करके, विभिन्न किस्मों को चुनने के लिए पैरामीटर का अनुकूलन करें; स्टॉप लॉस रणनीति को अनुकूलित करें, एकल नुकसान को नियंत्रित करें; अन्य तकनीकी संकेतकों के साथ संयोजन में संकेत की प्रभावशीलता की पुष्टि करें, गलत संकेत की संभावना को कम करें।
यह रणनीति तीन चलती औसत की गणना करके और क्रॉस-उत्पादित ट्रेडिंग सिग्नल को देखकर, तेजी से या धीमी गति से संयोजन करने वाले विचारों का उपयोग करके प्रवृत्ति का आकलन करने के लिए एक विशिष्ट प्रवृत्ति ट्रैकिंग रणनीति है। यह रणनीति विभिन्न किस्मों के लिए पैरामीटर अनुकूलन के माध्यम से लागू की जा सकती है, लेकिन ओवरराइड और टर्निंग पॉइंट को याद करने का जोखिम है। भविष्य में अन्य तकनीकी संकेतकों को लागू करके सिग्नल की प्रभावशीलता का आकलन करके, गतिशील पैरामीटर अनुकूलन तंत्र विकसित करके और अन्य तरीकों से रणनीति को अनुकूलित किया जा सकता है।
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Meesemoo
//@version=4
strategy("Custom MA Strategy Tester", overlay = true)
MA1Period = input(13, title="MA1 Period")
MA1Type = input(title="MA1 Type", defval="SMA", options=["RMA", "SMA", "EMA", "WMA", "HMA", "DEMA", "TEMA"])
MA1Source = input(title="MA1 Source", type=input.source, defval=close)
MA1Visible = input(title="MA1 Visible", type=input.bool, defval=true)
MA2Period = input(50, title="MA2 Period")
MA2Type = input(title="MA2 Type", defval="SMA", options=["RMA", "SMA", "EMA", "WMA", "HMA", "DEMA", "TEMA"])
MA2Source = input(title="MA2 Source", type=input.source, defval=close)
MA2Visible = input(title="MA2 Visible", type=input.bool, defval=true)
MA3Period = input(200, title="MA3 Period")
MA3Type = input(title="MA3 Type", defval="SMA", options=["RMA", "SMA", "EMA", "WMA", "HMA", "DEMA", "TEMA"])
MA3Source = input(title="MA3 Source", type=input.source, defval=close)
MA3Visible = input(title="MA3 Visible", type=input.bool, defval=true)
ShowCrosses = input(title="Show Crosses", type=input.bool, defval=true)
MA1 = if MA1Type == "SMA"
sma(MA1Source, MA1Period)
else
if MA1Type == "EMA"
ema(MA1Source, MA1Period)
else
if MA1Type == "WMA"
wma(MA1Source, MA1Period)
else
if MA1Type == "RMA"
rma(MA1Source, MA1Period)
else
if MA1Type == "HMA"
wma(2*wma(MA1Source, MA1Period/2)-wma(MA1Source, MA1Period), round(sqrt(MA1Period)))
else
if MA1Type == "DEMA"
e = ema(MA1Source, MA1Period)
2 * e - ema(e, MA1Period)
else
if MA1Type == "TEMA"
e = ema(MA1Source, MA1Period)
3 * (e - ema(e, MA1Period)) + ema(ema(e, MA1Period), MA1Period)
MA2 = if MA2Type == "SMA"
sma(MA2Source, MA2Period)
else
if MA2Type == "EMA"
ema(MA2Source, MA2Period)
else
if MA2Type == "WMA"
wma(MA2Source, MA2Period)
else
if MA2Type == "RMA"
rma(MA2Source, MA2Period)
else
if MA2Type == "HMA"
wma(2*wma(MA2Source, MA2Period/2)-wma(MA2Source, MA2Period), round(sqrt(MA2Period)))
else
if MA2Type == "DEMA"
e = ema(MA2Source, MA2Period)
2 * e - ema(e, MA2Period)
else
if MA2Type == "TEMA"
e = ema(MA2Source, MA2Period)
3 * (e - ema(e, MA2Period)) + ema(ema(e, MA2Period), MA2Period)
MA3 = if MA3Type == "SMA"
sma(MA3Source, MA3Period)
else
if MA3Type == "EMA"
ema(MA3Source, MA3Period)
else
if MA3Type == "WMA"
wma(MA3Source, MA3Period)
else
if MA3Type == "RMA"
rma(MA3Source, MA3Period)
else
if MA3Type == "HMA"
wma(2*wma(MA3Source, MA3Period/2)-wma(MA3Source, MA3Period), round(sqrt(MA3Period)))
else
if MA3Type == "DEMA"
e = ema(MA3Source, MA3Period)
2 * e - ema(e, MA3Period)
else
if MA3Type == "TEMA"
e = ema(MA3Source, MA3Period)
3 * (e - ema(e, MA3Period)) + ema(ema(e, MA3Period), MA3Period)
p1 = plot(MA1Visible ? MA1 : na, color=color.green, linewidth=1)
p2 = plot(MA2Visible ? MA2 : na, color=color.yellow, linewidth=1)
p3 = plot(MA3Visible ? MA3 : na, color=color.red, linewidth=2)
fill(p1, p2, color.silver, transp=80, title="Fill")
start = timestamp(2019, 1, 1, 1, 0)
end = timestamp(2025, 1, 1, 1, 0)
if time >= start and time <= end
longCondition = crossover(MA1, MA2) and close > MA3
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(MA1, MA2) and close < MA3
if (shortCondition)
strategy.entry("Short", strategy.short)