चलती औसत ब्रेकआउट रणनीति एक अल्पकालिक व्यापारिक रणनीति है जो प्रविष्टियों और निकासों को निर्धारित करने के लिए चलती औसत का उपयोग करती है। यह अपनी सादगी और उपयोग में आसानी से विशेषता है।
मूल तर्क कीमतों के रुझान को मापने के लिए दो चलती औसत, एक तेज रेखा और एक धीमी रेखा पर निर्भर करता है। तेज रेखा की अवधि कम होती है और अधिक संवेदनशील होती है। धीमी रेखा की अवधि अधिक होती है और अधिक स्थिर होती है।
यह कोड उपयोगकर्ताओं को इनपुट मापदंडों के माध्यम से फास्ट लाइन अवधि shortPeriod और स्लो लाइन अवधि longPeriod सेट करने की अनुमति देता है। दो चलती औसत के मान shortSMA और longSMA के रूप में गणना की जाती हैं।
जब तेजी से चलती औसत धीमी गति से चलती औसत से ऊपर जाती है, तो यह ऊपर की ओर ब्रेकआउट और लंबी प्रविष्टि का संकेत देती है। जब तेजी से एमए धीमी एमए से नीचे जाती है, तो यह नीचे की ओर ब्रेकआउट और छोटी प्रविष्टि का संकेत देती है।
लंबी प्रविष्टि की स्थितिः
Fast MA crosses above slow MA
Fast MA > Slow MA
छोटी प्रविष्टि की शर्तः
Fast MA crosses below slow MA
Fast MA < Slow MA
इस रणनीति में जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस, टेक प्रॉफिट और पोजीशन साइजिंग सेटिंग्स भी शामिल हैं।
जोखिम प्रबंधन:
चलती औसत ब्रेकआउट रणनीति को समझना आसान है, तेजी से और धीमे एमए के साथ संकेत उत्पन्न करता है। लेकिन इसमें झूठे ब्रेक और लेगिंग मुद्दों जैसी कुछ खामियां भी हैं। पैरामीटर ट्यूनिंग, अतिरिक्त फ़िल्टर और अन्य संवर्द्धन के साथ, रणनीति में सुधार किया जा सकता है। कुल मिलाकर यह एल्गोरिथम ट्रेडिंग में शुरुआती के अनुकूल पहले कदम के रूप में कार्य करता है, और मूल अवधारणाओं को समझने के बाद अधिक उन्नत रणनीतियों के लिए मार्ग प्रशस्त करता है।
/*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")