एक चलती औसत रेखा का क्रॉसिंग एक प्रवृत्ति-अनुवर्ती रणनीति है जो एक ट्रेडिंग सिग्नल के रूप में एक चलती औसत रेखा के क्रॉसिंग पर आधारित है। यह रणनीति एक खरीद और बिक्री सिग्नल के रूप में कीमत के साथ एक चलती औसत रेखा के क्रॉसिंग और दो चलती औसत रेखाओं के क्रॉसिंग पर आधारित है।
इस रणनीति के मुख्य सिद्धांत इस प्रकार हैं:
दो चलती औसत की गणना करें, तेजी से या धीमी गति से, एसएमए या ईएमए चुनें।
जब तेज रेखा पर धीमी रेखा पार करें, तो अधिक करें; जब तेज रेखा के नीचे धीमी रेखा पार करें, तो बराबरी करें।
ट्रेडिंग सिग्नल के रूप में औसत रेखा या औसत रेखा के बीच क्रॉसिंग का चयन करें।
रणनीति के लिए समय सीमा निर्धारित करें।
केवल अधिक और खाली बाजारों के लिए अधिक कर सकते हैं।
विभिन्न आवृत्तियों के लिए अनुकूलित, चलती औसत रेखा पैरामीटर द्वारा अनुकूलित।
इस रणनीति में चलती औसत रेखा की प्रवृत्ति ट्रैकिंग सुविधा का उपयोग किया गया है, जो यह दर्शाता है कि जब दीर्घकालिक औसत रेखा पर अल्पकालिक औसत रेखा पार की जाती है, तो यह वर्तमान में ऊपर की ओर है और अधिक किया जाना चाहिए; इसके विपरीत, यदि दीर्घकालिक औसत रेखा के नीचे अल्पकालिक औसत रेखा पार की जाती है, तो यह वर्तमान में नीचे की ओर है और स्थिति को कम किया जाना चाहिए।
इस रणनीति के प्रमुख लाभों में शामिल हैंः
सिद्धांत सरल है, इसे लागू करना आसान है, और ट्रेडिंग सिग्नल स्पष्ट हैं
इस तरह से, आप ट्रेंड्स को ट्रैक कर सकते हैं और बिक्री के अवसरों को समय पर पकड़ सकते हैं।
विभिन्न समानांतर पैरामीटर के साथ संयोजन, विभिन्न बाजार स्थितियों के लिए उपयुक्त
केवल अधिक या केवल खाली करने के लिए चुनें, अनिश्चितता को दूर करने के लिए।
एक विशिष्ट समय अवधि से बचने के लिए एक रणनीति समय सेट करें।
पैरामीटर के अनुकूलन के माध्यम से, रणनीति के प्रदर्शन में लगातार सुधार किया जा सकता है।
इस रणनीति के मुख्य जोखिम हैंः
इस प्रकार, यह गलत संकेतों के लिए अतिसंवेदनशील है, इसलिए बहुत अधिक लेनदेन से बचना चाहिए।
प्रदर्शन औसत रेखा पैरामीटर चयन पर निर्भर करता है, गलत चयन से नुकसान हो सकता है।
कुछ देरी के साथ, समय से पहले प्रवेश और समय से पहले बाहर निकलने से बचा जाना चाहिए।
बाजार में उतार-चढ़ाव की स्थिति के लिए उपयुक्त नहीं है।
औसत रेखा के पार होने से नुकसान से पूरी तरह से बचा नहीं जा सकता है।
ट्रेड वॉल्यूम की पुष्टि करके, पैरामीटर को अनुकूलित करके या अन्य संकेतकों के साथ संयोजन करके जोखिम को कम किया जा सकता है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
/%{Line - ShortMa) /ShortMa) /{Line - LongMa) /LongMa) / को औसत रेखा झुकाव फ़िल्टर शर्त के रूप में जोड़ें।
विभिन्न संयोजनों का परीक्षण करने के लिए गतिशील औसत चक्र मापदंडों का अनुकूलन करें।
MACD या RSI जैसे सूचकांकों में शामिल होने के लिए कई पुष्टि करें।
स्टॉप लॉस की शर्तें निर्धारित करें और एकल नुकसान को सीमित करें।
प्रवृत्ति बाजार और संश्लेषण बाजार को अलग करें, सशर्त उपयोग करें।
विभिन्न पदों की अवधि का परीक्षण करें और सबसे अच्छा विकल्प खोजें।
एक गतिशील समानांतर क्रॉसिंग रणनीति एक सरल और व्यावहारिक प्रवृत्ति ट्रैकिंग रणनीति है। इसका लाभ यह है कि इसे लागू करना आसान है और प्रवृत्ति को प्रभावी ढंग से ट्रैक किया जा सकता है। इसका नुकसान यह है कि यह पिछड़ा हुआ है और अधिक झूठे संकेत पैदा कर सकता है। इस रणनीति को पैरामीटर अनुकूलन, सूचक छानने आदि के माध्यम से सुधार किया जा सकता है ताकि यह स्पष्ट रूप से प्रवृत्ति वाले बाजारों में बेहतर प्रदर्शन कर सके।
/*backtest
start: 2023-09-10 00:00:00
end: 2023-09-17 00:00:00
period: 10m
basePeriod: 1m
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/
// © gliese581d
//@version=4
strategy(title="Moving Averages Testing", overlay=true, precision=2, calc_on_every_tick=false, max_bars_back=5000, pyramiding=2,
default_qty_type=strategy.percent_of_equity, default_qty_value=50, commission_type=strategy.commission.percent, initial_capital=10000)
//SETTINGS
longs_on = input(title="Long Trades enabled", defval=true)
shorts_on = input(title="Short Trades enabled", defval=true)
long_cond = input(title="Buy/Long Crossover Condition", defval="price x MA1", options=["price x MA1", "price x MA2", "MA1 x MA2"])
short_cond = input(title="Sell/Short Crossunder Condition", defval="price x MA2", options=["price x MA1", "price x MA2", "MA1 x MA2"])
ma1_type = input(title="Moving Average 1 Type", defval="SMA", options=["SMA", "EMA"])
ma1_len = input(defval=20, title="Moving Average 1 Len", type=input.integer, minval=1, maxval=1000, step=1)
ma2_type = input(title="Moving Average 2 Type", defval="SMA", options=["SMA", "EMA"])
ma2_len = input(defval=30, title="Moving Average 2 Len", type=input.integer, minval=1, maxval=1000, step=1)
//MOVING AVERAGES
ma_1 = ma1_type == "EMA" ? ema(close, ma1_len) : sma(close, ma1_len)
ma_2 = ma2_type == "EMA" ? ema(close, ma2_len) : sma(close, ma2_len)
//STRATEGY
//trade entries
long_entry = long_cond == "price x MA1" ? crossover(close, ma_1) : long_cond == "price x MA2" ? crossover(close, ma_2) : long_cond == "MA1 x MA2" ? crossover(ma_1, ma_2) : false
short_entry = short_cond == "price x MA1" ? crossunder(close, ma_1) : short_cond == "price x MA2" ? crossunder(close, ma_2) : short_cond == "MA1 x MA2" ? crossunder(ma_1, ma_2) : false
start_month = input(defval=4, title="Strategy Start Month", type=input.integer, minval=1, maxval=12, step=1)
start_year = input(defval=2018, title="Strategy Start Year", type=input.integer, minval=2000, maxval=2025, step=1)
end_month = input(defval=12, title="Strategy End Month", type=input.integer, minval=1, maxval=12, step=1)
end_year = input(defval=2020, title="Strategy End Year", type=input.integer, minval=2000, maxval=2025, step=1)
in_time = true
strategy.entry("Long", strategy.long, when=longs_on and in_time and long_entry)
strategy.close("Long", when=longs_on and not shorts_on and short_entry)
strategy.entry("Short", strategy.short, when=shorts_on and in_time and short_entry)
strategy.close("Short", when=shorts_on and not longs_on and long_entry)
//PLOTTING
//color background
last_entry_was_long = nz(barssince(long_entry)[1], 5000) < nz(barssince(short_entry)[1], 5000)
bgcol = (longs_on and last_entry_was_long) ? color.green : (shorts_on and not last_entry_was_long) ? color.red : na
bgcolor(color=bgcol, transp=90)
plot((long_cond == "price x MA1" or long_cond == "MA1 x MA2") or (short_cond == "price x MA1" or short_cond == "MA1 x MA2") ? ma_1 : na, color=color.blue)
plot((long_cond == "price x MA2" or long_cond == "MA1 x MA2") or (short_cond == "price x MA2" or short_cond == "MA1 x MA2") ? ma_2 : na, color=color.black)
plotshape(long_entry, style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(short_entry, style=shape.triangledown, location=location.abovebar, color=color.red)