मूविंग एवरेज क्रॉसओवर ब्रेकआउट रणनीति


निर्माण तिथि: 2024-02-06 15:02:33 अंत में संशोधित करें: 2024-02-06 15:02:33
कॉपी: 1 क्लिक्स: 363
1
ध्यान केंद्रित करना
1166
समर्थक

मूविंग एवरेज क्रॉसओवर ब्रेकआउट रणनीति

अवलोकन

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

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

  1. तीन चलती औसत की गणना करेंः दीर्घकालिक, मध्यमकालिक और अल्पकालिक। उपयोगकर्ता स्वयं अवधि सेट कर सकता है। डिफ़ॉल्ट रूप से 20 दिन, 10 दिन और 5 दिन।

  2. तीन चलती औसत की दिशा की तुलना करना। जब एक छोटी चलती औसत पर मध्यम अवधि में, मध्यम अवधि में लंबी अवधि में, तो यह एक बहुमुखी बाजार के रूप में माना जाता है। जब एक छोटी चलती औसत के नीचे मध्यम अवधि में, मध्यम अवधि में लंबी अवधि में, तो यह एक खाली बाजार के रूप में माना जाता है।

  3. मल्टीहेड मार्केट में, यदि कीमत ने हाल ही में N रूट K लाइन के भीतर उच्चतम मूल्य को तोड़ दिया है, तो अधिक करें; खाली बाजार में, यदि कीमत ने हाल ही में N रूट K लाइन के भीतर निम्नतम मूल्य को तोड़ दिया है, तो खाली करें। N भी उपयोगकर्ता के लिए एक कस्टम पैरामीटर है।

  4. स्थिति में प्रवेश करने के बाद, एक स्टॉप-लॉस सेट करें। मल्टीहेड मार्केट स्टॉप हाल ही में N रूट K लाइन के भीतर सबसे कम कीमत है, और एक खाली हेड मार्केट स्टॉप हाल ही में N रूट K लाइन के भीतर सबसे अधिक कीमत है।

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

इस रणनीति को चलती औसत सूचक और K लाइन ग्राफ के साथ जोड़ा गया है, जिससे बाजार की गति का बेहतर आकलन किया जा सकता है। साथ ही, स्टॉप लॉस स्टॉप सेट उचित है, जो बड़े नुकसान से बचने के लिए फायदेमंद है।

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

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

इस रणनीति के प्रमुख जोखिम हैंः

  1. तीन चलती औसत की दिशा में निर्णय लेने में त्रुटि की संभावना। यदि मध्यम और अल्पकालिक चलती औसत एक गलत संकेत देता है, तो अनावश्यक नुकसान हो सकता है।

  2. प्रवेश के समय का चयन गलत है, और इसे आसानी से फंसाया जा सकता है। प्रवेश के समय का चयन उचित रूप से अनुकूलित किया जाना चाहिए।

  3. स्टॉपर दूरी बहुत छोटी है, और स्टॉपर दूरी को बड़ा करने से कीमतों में वृद्धि होती है।

अनुकूलन दिशा

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

  1. चलती औसत संकेतों की विश्वसनीयता सुनिश्चित करने के लिए अन्य संकेतकों को फ़िल्टर करें। जैसे कि लेनदेन की मात्रा में वृद्धि।

  2. विभिन्न किस्मों के लिए बेहतर अनुकूलन के लिए चलती औसत के आवर्ती पैरामीटर का अनुकूलन करना

  3. मशीन लर्निंग एल्गोरिदम को जोड़ना और पैरामीटर का स्वचालित अनुकूलन करना।

  4. उच्च आवृत्ति डेटा पर रणनीति की प्रभावशीलता का परीक्षण करना।

संक्षेप

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

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © hobbiecode

//@version=5
strategy("Cross Breakout - Hobbiecode", shorttitle="Cross - HOBBIE", overlay=true)

// User-defined input for moving averages
long_period = input(20, title="Long Period")
medium_period =  input(10, title = "Medium Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])
candles_back = input(10, title = "Candles Back")
bars_valid = input(3, title = "Bars to Exit")

// Calculating moving averages
long_ma = 0.0
medium_ma = 0.0
short_ma = 0.0

if type_ma == "SMA"
    long_ma := ta.sma(close, long_period)
    medium_ma := ta.sma(close, medium_period)
    short_ma := ta.sma(close, short_period)
else
    long_ma := ta.ema(close, long_period)
    medium_ma := ta.ema(close, medium_period)
    short_ma := ta.ema(close, short_period)

// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(medium_ma, title = "Medium Moving Average", color = color.yellow)
plot(short_ma, title="Short Moving Average", color=color.green)

// Check last min/max
last_min = ta.lowest(candles_back)
last_max = ta.highest(candles_back)

// Strategy logic for crossing of moving averages
longCondition = short_ma > medium_ma and medium_ma > long_ma and high == last_max
shortCondition = short_ma < medium_ma and medium_ma < long_ma and low == last_min

longCondition_entry = longCondition and strategy.position_size == 0
shortCondition_entry = shortCondition and strategy.position_size == 0

// Check last min/max for operation
last_min_op = ta.lowest(candles_back)[1]
last_max_op = ta.highest(candles_back)[1]

// Plot lines
var line r1Line = na

// Entry orders
// if (longCondition)
//     from_line = chart.point.now(high)
//     to_line = chart.point.from_index(bar_index + candles_back, high)
//     r1Line := line.new(from_line, to_line, color = color.green, width = 2)

if longCondition_entry and ta.crossover(close,last_max_op)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry="Long", stop=low)

// if (shortCondition)
//     from_line = chart.point.now(low)
//     to_line = chart.point.from_index(bar_index + candles_back, low)
//     r1Line := line.new(from_line, to_line, color = color.red, width = 2)

if shortCondition_entry and ta.crossunder(close,last_min_op)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry="Short", stop=high)

if ta.barssince(longCondition_entry) >= bars_valid
    strategy.close("Long")

if ta.barssince(shortCondition_entry) >= bars_valid
    strategy.close("Short")