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

लेखक:चाओझांग, दिनांकः 2024-02-06 15:02:33
टैगः

img

अवलोकन

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

रणनीति तर्क

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

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

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

  4. स्थिति में प्रवेश करने के बाद, स्टॉप लॉस सेट करें और लाभ लें। एक बैल बाजार में स्टॉप लॉस सबसे हालिया एन मोमबत्तियों की सबसे कम कीमत के रूप में सेट है, और एक भालू बाजार में उच्चतम मूल्य के रूप में सेट है।

लाभ विश्लेषण

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

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

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

इस रणनीति के मुख्य संभावित जोखिम निम्नलिखित हैंः

  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")

अधिक