पतवार चलती औसत क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांकः 2024-03-22 14:57:10
टैगः

img

अवलोकन

यह रणनीति हॉल मूविंग एवरेज (एचएमए) के क्रॉसओवर सिग्नल पर आधारित है। हॉल मूविंग एवरेज एक तकनीकी संकेतक है जिसे एलन हॉल द्वारा विकसित किया गया है, जिसका उद्देश्य पारंपरिक मूविंग एवरेज के लेग को कम करना है। रणनीति में अलग-अलग अवधि वाले दो एचएमए का उपयोग किया जाता है। एक खरीद संकेत तब उत्पन्न होता है जब कम अवधि का एचएमए लंबी अवधि के एचएमए के ऊपर पार करता है, और एक बिक्री संकेत तब उत्पन्न होता है जब विपरीत होता है।

सिद्धांत

  1. पतवार चलती औसत (एचएमए) की गणना करना

एचएमए की गणना इस प्रकार की जाती हैः

  • सबसे पहले, इनपुट पैरामीटर length के आधे से अधिक अवधि के साथ मूल्य का भारित चलती औसत (WMA) की गणना करें।
  • फिर, पिछले WMA की WMA की गणना length की अवधि के साथ करें
  • सूत्र का प्रयोग करें: HMA = 2 * WMA ((लंबाई/2) - WMA ((लंबाई)
  • अंतिम एचएमए प्राप्त करने के लिए length के वर्गमूल के एक बिंदु के साथ उपरोक्त परिणाम के डब्ल्यूएमए की गणना करें
  1. ट्रेडिंग सिग्नल उत्पन्न करना
  • जब समापन मूल्य एचएमए से ऊपर जाता है, तो एक खरीद संकेत उत्पन्न होता है
  • जब समापन मूल्य एचएमए से नीचे जाता है, तो एक बिक्री संकेत उत्पन्न होता है
  1. संकेतों के आधार पर व्यापार निष्पादित करना
  • खरीद संकेतः लंबी स्थिति खोलें
  • बेचने का संकेतः एक छोटी स्थिति खोलें

लाभ

  1. सरल चलती औसत और भारित चलती औसत की तुलना में, हुल चलती औसत में कम विलंब होता है, इसलिए यह मूल्य परिवर्तनों पर तेजी से प्रतिक्रिया कर सकता है, जिससे रणनीति की प्रतिक्रिया क्षमता में सुधार होता है।

  2. संकेत उत्पन्न करने के लिए अलग-अलग अवधि वाले दो एचएमए के क्रॉसओवर का उपयोग करके, बहुत सारे शोर और झूठे संकेतों को प्रभावी ढंग से फ़िल्टर किया जा सकता है, जिससे संकेतों की विश्वसनीयता बढ़ जाती है।

  3. पैरामीटर समायोज्य हैं. एचएमए के अवधि पैरामीटर को समायोजित करके, रणनीति को विभिन्न बाजारों और व्यापार उपकरणों के लिए अनुकूलित किया जा सकता है।

जोखिम

  1. Hull Moving Average एक लेगिंग इंडिकेटर है, जो ट्रेंड रिवर्स के शुरुआती चरणों में झूठे संकेत उत्पन्न कर सकता है।

  2. अनुचित पैरामीटर चयन से खराब रणनीति प्रदर्शन हो सकता है। यदि अवधि बहुत लंबी है, तो रणनीति प्रतिक्रिया में धीमी होगी; यदि अवधि बहुत कम है, तो यह अत्यधिक झूठे संकेतों का कारण बन सकती है।

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

अनुकूलन दिशाएँ

  1. एचएमए क्रॉसओवर संकेतों की वैधता को और अधिक पुष्टि करने के लिए फ़िल्टर के रूप में अन्य तकनीकी संकेतकों या मौलिक कारकों, जैसे कि ट्रेडिंग वॉल्यूम, रुझान संकेतकों आदि को शामिल करने पर विचार करें।

  2. पैरामीटर अनुकूलन के लिए, आनुवंशिक एल्गोरिदम और ग्रिड खोज जैसे तरीकों का उपयोग ऐतिहासिक डेटा पर इष्टतम पैरामीटर संयोजन खोजने के लिए किया जा सकता है जो वर्तमान बाजार के लिए सबसे उपयुक्त है।

  3. प्रत्येक व्यापार के जोखिम और लाभ को नियंत्रित करने के लिए रणनीति में स्टॉप-लॉस और ले-प्रॉफिट तंत्र शामिल करें।

  4. बाजार के रुझानों पर विचार करें। बाजार के रुझानों का आकलन करने के लिए संकेतक पेश करके, एक प्रवृत्ति बाजारों में व्यापार कर सकता है और पक्षीय बाजारों से बच सकता है।

सारांश

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


/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Basic Hull Ma Pack tinkered by InSilico 
strategy("RKTD BETA - Hull Suite by InSilico", overlay=true)

//INPUT
src = input(close, title="Source")
modeSwitch = input("Ehma", title="Hull Variation", options=["Hma", "Thma", "Ehma"])
length = input(200, title="Length(180-200 for floating S/R , 55 for swing entry)")
lengthMult = input(1.0, title="Length multiplier (Used to view higher timeframes with straight band)")

useHtf = input(false, title="Show Hull MA from X timeframe? (good for scalping)")
htf = input("240", title="Higher timeframe", type=input.resolution)

switchColor = input(true, "Color Hull according to trend?")
candleCol = input(false,title="Color candles based on Hull's Trend?")
visualSwitch  = input(true, title="Show as a Band?")
thicknesSwitch = input(1, title="Line Thickness")
transpSwitch = input(40, title="Band Transparency",step=5)

// Alert Messages
longAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "long", "orderType": "market", "close":true}'
shortAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "short", "orderType": "market", "close":true}'

//FUNCTIONS
//HMA
HMA(_src, _length) =>  wma(2 * wma(_src, _length / 2) - wma(_src, _length), round(sqrt(_length)))
//EHMA    
EHMA(_src, _length) =>  ema(2 * ema(_src, _length / 2) - ema(_src, _length), round(sqrt(_length)))
//THMA    
THMA(_src, _length) =>  wma(wma(_src,_length / 3) * 3 - wma(_src, _length / 2) - wma(_src, _length), _length)
    
//SWITCH
Mode(modeSwitch, src, len) =>
      modeSwitch == "Hma"  ? HMA(src, len) :
      modeSwitch == "Ehma" ? EHMA(src, len) : 
      modeSwitch == "Thma" ? THMA(src, len/2) : na

//OUT
_hull = Mode(modeSwitch, src, int(length * lengthMult))
HULL = useHtf ? security(syminfo.ticker, htf, _hull) : _hull
MHULL = HULL[0]
SHULL = HULL[2]

//COLOR
hullColor = switchColor ? (HULL > HULL[2] ? #00ff00 : #ff0000) : #ff9800

//PLOT
///< Frame
Fi1 = plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(visualSwitch ? SHULL : na, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
alertcondition(crossover(MHULL, SHULL), title="Hull trending up.", message="Hull trending up.")
alertcondition(crossover(SHULL, MHULL), title="Hull trending down.", message="Hull trending down.")
///< Ending Filler
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)

// Define Buy and Sell Conditions based on crossovers
buyCondition = crossover(MHULL, SHULL)
sellCondition = crossunder(MHULL, SHULL)

// Plotting the Hull Moving Average (HMA)
plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch)
plot(SHULL, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=transpSwitch)
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)

// Execute Strategy based on Buy and Sell Conditions
strategy.entry("Buy", strategy.long, when=buyCondition, alert_message=longAlertMessage)
strategy.entry("Sell", strategy.short, when=sellCondition, alert_message=shortAlertMessage)

// Additional elements like bar coloring remain unchanged
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)


अधिक