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


निर्माण तिथि: 2023-09-26 16:18:37 अंत में संशोधित करें: 2023-09-26 16:18:37
कॉपी: 0 क्लिक्स: 884
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

औसत रेखा को तोड़ने की रणनीति एक छोटी लाइन ट्रेडिंग रणनीति है जो चलती औसत का उपयोग करके निर्णय लेती है। यह रणनीति औसत रेखा की लंबाई सेट करके और औसत रेखा को तोड़ने पर खरीद-बिक्री की जाती है। इसका संचालन सरल और आसान है।

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

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

कोड में इनपुट पैरामीटर को सेट करके एक त्वरित अवधि shortPeriod और एक धीमी अवधि longPeriod को परिभाषित किया गया है। इसके बाद दो औसत मानों shortSMA और longSMA की गणना की जाती है।

जब लघु आवधिक औसत रेखा नीचे से ऊपर तक लंबी आवधिक औसत रेखा को तोड़ती है, तो यह दर्शाता है कि कीमतों की गति नीचे से नीचे तक बढ़ जाती है, और अधिक होती है; जब लघु आवधिक औसत रेखा ऊपर से नीचे तक लंबी आवधिक औसत रेखा को तोड़ती है, तो यह दर्शाता है कि कीमतों की गति नीचे से नीचे तक बढ़ जाती है, और अधिक होती है।

यह एक बहु-स्थिति स्थितियों में प्रवेश के लिए हैः

快线由下向上突破慢线
快线>慢线

यह स्थिति में प्रवेश करने के लिएः

快线由上向下跌破慢线  
快线<慢线

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

रणनीतिक लाभ

  • सरल संचालन, आसानी से समझने योग्य, नौसिखियों के लिए उपयुक्त
  • औसत लाइन में कुछ प्रवृत्ति फ़िल्टरिंग क्षमता है, जो कुछ शोर को फ़िल्टर कर सकती है
  • विभिन्न चक्र संचालन के लिए लचीला समायोज्य औसत चक्र
  • पूर्व-निर्धारित स्टॉप-लॉस स्टॉप पॉइंट, जोखिम नियंत्रण

रणनीतिक जोखिम

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

जोखिम की रोकथाम:

  • गलत संकेतों से बचने के लिए अन्य संकेतकों के संयोजन में फ़िल्टर करें
  • प्रवृत्ति स्पष्ट होने पर उपयोग करें, बाजार में उतार-चढ़ाव के दौरान नहीं
  • समय के अनुकूलन के लिए औसत पैरामीटर को ठीक से समायोजित करें
  • उचित रूप से ढीला करने के लिए रोकथाम सीमा, रोकथाम से बचें

रणनीति अनुकूलन दिशा

  • इष्टतम चक्र संयोजन खोजने के लिए सम-रेखा प्रणाली पैरामीटर का अनुकूलन करें
  • 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")