चलती औसत ब्रेकआउट रणनीति

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

अवलोकन

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

रणनीति तर्क

मूल तर्क कीमतों के रुझान को मापने के लिए दो चलती औसत, एक तेज रेखा और एक धीमी रेखा पर निर्भर करता है। तेज रेखा की अवधि कम होती है और अधिक संवेदनशील होती है। धीमी रेखा की अवधि अधिक होती है और अधिक स्थिर होती है।

यह कोड उपयोगकर्ताओं को इनपुट मापदंडों के माध्यम से फास्ट लाइन अवधि shortPeriod और स्लो लाइन अवधि longPeriod सेट करने की अनुमति देता है। दो चलती औसत के मान shortSMA और longSMA के रूप में गणना की जाती हैं।

जब तेजी से चलती औसत धीमी गति से चलती औसत से ऊपर जाती है, तो यह ऊपर की ओर ब्रेकआउट और लंबी प्रविष्टि का संकेत देती है। जब तेजी से एमए धीमी एमए से नीचे जाती है, तो यह नीचे की ओर ब्रेकआउट और छोटी प्रविष्टि का संकेत देती है।

लंबी प्रविष्टि की स्थितिः

Fast MA crosses above slow MA
Fast MA > Slow MA

छोटी प्रविष्टि की शर्तः

Fast MA crosses below slow MA
Fast MA < Slow MA 

इस रणनीति में जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस, टेक प्रॉफिट और पोजीशन साइजिंग सेटिंग्स भी शामिल हैं।

लाभ

  • प्रयोग करने में सरल, शुरुआती लोगों के लिए समझने में आसान
  • चलती औसत कुछ शोर को फ़िल्टर करती है
  • विभिन्न समय सीमाओं के लिए एमए अवधि में लचीलापन
  • पूर्वनिर्धारित स्टॉप लॉस और ले लाभ

जोखिम

  • झूठे ब्रेकआउट और वाइप्सॉव के लिए संवेदनशील
  • रेंज-बाउंड चक्रीय बाजारों के लिए आदर्श नहीं
  • देरी का संकेत, प्रविष्टियों में देरी हो सकती है
  • रुझान उलटने को प्रभावी ढंग से छानने में असमर्थ

जोखिम प्रबंधन:

  • झूठे संकेतों से बचने के लिए फ़िल्टर जोड़ें
  • जब प्रवृत्ति स्पष्ट हो तब रणनीति लागू करें
  • बेहतर प्रविष्टियों के लिए एमए पैरामीटर अनुकूलित करें
  • समय से पहले रुकने से बचने के लिए व्यापक रुकावटों की अनुमति दें

बढ़ोतरी के अवसर

  • सर्वोत्तम संयोजन खोजने के लिए एमए मापदंडों का अनुकूलन करें
  • अतिरिक्त संकेतक जैसे BOLL चैनल या KD जोड़ें
  • लाभ को अधिकतम करने के लिए बाहर निकलने के नियमों में सुधार
  • विभिन्न उपकरणों पर परीक्षण की मजबूती
  • बिग डेटा का उपयोग करके मशीन लर्निंग को शामिल करें

निष्कर्ष

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


/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © YohanNaftali

//@version=5

///////////////////////////////////////////////////////////////////////////////
// Heikin Ashi Candle Startegy
// ver 2021.12.29
// © YohanNaftali
// This script composed by Yohan Naftali for educational purpose only 
// Reader who will use this signal must do own research
///////////////////////////////////////////////////////////////////////////////
strategy(
     title = 'Heikin Ashi Candle Startegy Long',  
     shorttitle = 'HA Strategy Long',  
     format = format.price,
     precision = 0,
     overlay = true)

// Input
validationPeriod = input.int( 
     defval = 3, 
     title = 'Validation Period', 
     group = 'Candle')

qtyOrder = input.float(
     defval = 1.0,
     title = 'Qty', 
     group = 'Order')

maxActive = input.float(
     defval = 1.0,
     title = 'Maximum Active Open Position', 
     group = 'Order')

// Long Strategy
tpLong = input.float(
     defval = 1,
     title = "Take Profit (%)",
     minval = 0.0, 
     step = 0.1, 
     group = "Long") * 0.01

slLong = input.float(
     defval = 25,
     title = "Stop Loss (%)", 
     minval=0.0, 
     step=0.1,
     group="Long") * 0.01

trailingStopLong = input.float(
     defval = 0.2,
     title = "Trailing Stop (%)",
     minval = 0.0, 
     step = 0.1,
     group = 'Long') * 0.01

// Calculation
haTicker = ticker.heikinashi(syminfo.tickerid)
haClose = request.security(haTicker, timeframe.period, close)
haOpen = request.security(haTicker, timeframe.period, open)

// Long
limitLong = tpLong > 0.0 ? strategy.position_avg_price * (1 + tpLong) : na
stopLong = slLong > 0.0 ? strategy.position_avg_price * (1 - slLong) : na
float trailLong = 0.0
trailLong := if strategy.position_size > 0
    trailClose = close * (1 - trailLong)
    math.max(trailClose, trailLong[1])
else
    0

isGreen = true
for i = 0 to validationPeriod-1
    isGreen := isGreen and haClose[i] > haOpen[i]        
isLong = isGreen and haClose[validationPeriod] < haOpen[validationPeriod]



plot(
     limitLong,
     title = 'Limit', 
     color = color.rgb(0, 0, 255, 0), 
     style = plot.style_stepline,
     linewidth = 1)

plot(
     trailLong,
     title = 'Trailing', 
     color = color.rgb(255, 255, 0, 0), 
     style = plot.style_stepline,
     linewidth = 1)

plot(
     stopLong,
     title = 'Stop', 
     style = plot.style_stepline,
     color = color.rgb(255, 0, 0, 0), 
     linewidth = 1)

// plotshape(
//      isLong, 
//      title = 'Entry', 
//      style = shape.arrowup, 
//      location = location.belowbar, 
//      offset = 1, 
//      color = color.new(color.green, 0), 
//      text = 'Long Entry',
//      size = size.small)

// Strategy
strategy.risk.max_position_size(maxActive)
strategy.risk.allow_entry_in(strategy.direction.long)

strategy.entry(
     id = "Long", 
     direction = strategy.long, 
     qty = qtyOrder,  
     when = isLong,       
     alert_message = "LN")
if (strategy.position_size > 0)
    strategy.exit(
         id = "Long Exit",
         from_entry = "Long",
         limit = limitLong,
         stop = stopLong,
         trail_price = trailLong,
         alert_message = "LX")      

अधिक