चलती औसत क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-18 17:35:37
टैगः

अवलोकन

चलती औसत क्रॉसओवर रणनीति चलती औसत क्रॉसओवर के आधार पर एक प्रवृत्ति के बाद की रणनीति है। यह व्यापार संकेतों के रूप में चलती औसत क्रॉसओवर का उपयोग करता है। यह लाभ प्राप्त करने के लिए खरीद और बिक्री संकेतों के रूप में चलती औसत और दो चलती औसत के बीच क्रॉसओवर के साथ मूल्य क्रॉसओवर का उपयोग करता है।

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

इस रणनीति के मुख्य सिद्धांत हैंः

  1. दो चलती औसत की गणना करें, एक तेज और एक धीमी, एसएमए या ईएमए चुन सकते हैं।

  2. जब तेज रेखा धीमी रेखा के ऊपर से गुजरती है, तब लंबी स्थिति में जाएं, जब तेज रेखा धीमी रेखा के नीचे से गुजरती है, तब निकट स्थिति में जाएं।

  3. ट्रेडिंग सिग्नल के रूप में मूल्य ब्रेकआउट या चलती औसत क्रॉसओवर चुन सकते हैं।

  4. रणनीति निष्पादन के लिए समय सीमा निर्धारित कर सकता है।

  5. केवल बैल बाजार में लंबा जा सकता है और केवल भालू बाजार में छोटा जा सकता है।

  6. विभिन्न अवधियों के लिए बैकटेस्टिंग के माध्यम से चलती औसत मापदंडों का अनुकूलन करें।

यह रणनीति चलती औसत की प्रवृत्ति के बाद की क्षमता का उपयोग करती है। जब अल्पकालिक एमए लंबी अवधि के एमए से ऊपर जाता है, तो यह एक ऊपर की प्रवृत्ति को इंगित करता है, लंबे समय तक जाना चाहिए। इसके विपरीत, नीचे की प्रवृत्ति, स्थिति को कम करना चाहिए।

लाभ विश्लेषण

इस रणनीति के मुख्य फायदे:

  1. सरल सिद्धांत, लागू करने में आसान, स्पष्ट व्यापार संकेत।

  2. प्रवृत्तियों को प्रभावी ढंग से ट्रैक कर सकता है और समय पर व्यापारिक अवसरों को पकड़ सकता है।

  3. विभिन्न बाजार परिवेशों के लिए विभिन्न एमए मापदंडों को जोड़ सकता है।

  4. अनिश्चित रिवर्स ऑपरेशन से बचने के लिए केवल लंबी या केवल छोटी चुन सकते हैं।

  5. कुछ अवधि से बचने के लिए रणनीति चलाने का समय निर्धारित कर सकता है।

  6. पैरामीटर अनुकूलन के माध्यम से रणनीति में निरंतर सुधार कर सकता है।

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

इस रणनीति के मुख्य जोखिम:

  1. गलत संकेतों के लिए प्रवण, बहुत बार व्यापार करने से बचें।

  2. प्रदर्शन एमए मापदंडों पर निर्भर करता है, गलत चयन से नुकसान हो सकता है।

  3. कुछ देरी है, समय से पहले प्रवेश और देरी से बाहर निकलने से बचें।

  4. रेंज-बाउंड बाजार वातावरण के लिए उपयुक्त नहीं है।

  5. एमए क्रॉस में कुछ यादृच्छिकता होती है, नुकसान से पूरी तरह बच नहीं सकते।

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

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

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

  1. ढलान फ़िल्टर जोड़ें जैसे % ((लाइन - शॉर्टमा) /शॉर्टमा) / ((लाइन - लॉन्गमा) /लॉन्गमा) ।

  2. चलती औसत अवधि का अनुकूलन करें, विभिन्न संयोजनों का परीक्षण करें।

  3. कई पुष्टि के लिए MACD या RSI जैसे संकेतक जोड़ें।

  4. एकल व्यापार हानि को सीमित करने के लिए स्टॉप लॉस सेट करें.

  5. सशर्त उपयोग के लिए रुझान और रेंजिंग बाजारों के बीच अंतर करें।

  6. इष्टतम योजना खोजने के लिए विभिन्न रखरखाव अवधि का परीक्षण करें।

सारांश

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


/*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)

अधिक