चलती औसत और सुपर ट्रेंड पर आधारित रणनीति का अनुसरण करने वाली प्रवृत्ति

लेखक:चाओझांग, दिनांकः 2023-11-14 16:23:42
टैगः

img

अवलोकन

यह रणनीति प्रवृत्ति का अनुसरण करने के लिए चलती औसत और सुपर प्रवृत्ति संकेतकों को जोड़ती है। जब प्रवृत्ति ऊपर होती है तो यह लंबी जाती है और जब प्रवृत्ति नीचे होती है तो यह छोटी जाती है।

रणनीति तर्क

  1. भारित चलती औसत एमए की गणना करें। अवधि के दौरान भारित औसत मूल्य की गणना करने के लिए वॉल्यूम को भार के रूप में उपयोग करें।

  2. एमए के आधार पर हुल मूविंग एवरेज की गणना करें। हुल मूविंग एवरेज मूल्य परिवर्तन के प्रति अधिक संवेदनशील है।

  3. सुपर प्रवृत्ति सूचक की गणना करें. सुपर प्रवृत्ति प्रवृत्ति परिवर्तनों की पहचान करने के लिए एटीआर को जोड़ती है. यह ऊपरी और निचले बैंड की गणना करता है.

  4. जब ऊपरी बैंड के ऊपर करीब टूटता है, तो लंबा हो जाता है।

  5. मूल्य आंदोलनों का दृश्य अवलोकन करने के लिए खुले, बंद, उच्च और निम्न जैसे सहायक संकेतकों को ग्राफ करें।

  6. संकेतक क्रॉसओवर के आधार पर व्यापारिक निर्णय लें।

लाभ विश्लेषण

  1. यह रणनीति मूविंग एवरेज और सुपर ट्रेंड दोनों को जोड़ती है, जिससे अधिक सटीक ट्रेंड का पता चलता है।

  2. हॉल मूविंग एवरेज मूल्य परिवर्तन के प्रति अधिक संवेदनशील होता है, जिससे समय पर स्पॉट ट्रेंड रिवर्स करने में मदद मिलती है।

  3. सुपर ट्रेंड बाजार की अस्थिरता के अनुकूल ऊपरी और निचले बैंड को गतिशील रूप से समायोजित करता है।

  4. सहायक संकेतक संकेतकों के साथ निर्णय लेने में सहायता के लिए मूल्य आंदोलनों को दृश्य रूप से प्रदर्शित करते हैं।

  5. यह रणनीति चलती औसत अवधि, सुपर ट्रेंड गुणक आदि पर पैरामीटर अनुकूलन की अनुमति देती है।

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

  1. Whipsaws सीमा-बंद बाजारों के दौरान झूठे संकेत उत्पन्न कर सकते हैं, जिससे अनावश्यक ट्रेड हो सकते हैं।

  2. कई संकेतकों की निगरानी से रणनीति को लागू करना अपेक्षाकृत जटिल हो सकता है।

  3. विभिन्न उत्पादों की विशेषताओं के अनुरूप मापदंडों को उचित रूप से समायोजित करने की आवश्यकता है।

  4. एकल पदों पर घाटे को सीमित करने के लिए सख्त स्टॉप लॉस की आवश्यकता होती है।

  5. उच्च व्यापार आवृत्ति के लिए कमीशनों से प्रभाव नियंत्रण की आवश्यकता होती है।

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

  1. बाजार के प्रति अधिक संवेदनशील एक को खोजने के लिए विभिन्न चलती औसत का परीक्षण करें।

  2. समय में रुझान परिवर्तनों को पकड़ने के लिए विभिन्न सुपर ट्रेंड गुणकों का परीक्षण करें।

  3. अस्थिरता बढ़ने पर स्थिति के आकार को कम करने के लिए अस्थिरता सूचकांक को शामिल करें।

  4. रेंज-बाउंड अवधि के दौरान झूठे संकेतों से बचने के लिए ब्रेकआउट स्थितियां जोड़ें।

  5. स्टॉप लॉस रणनीति को बाजार की स्थितियों के अनुकूल बनाने के लिए अनुकूलित करें।

सारांश

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


/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
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/
// © rajukpatel

//@version=5
strategy('My RK Strategy with Alert', shorttitle='My RK Strategy with Alert', overlay=true )
src5 = input(close)

tf = input(1440)
len5 = timeframe.isintraday and timeframe.multiplier >= 1 ? tf / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7

ma = ta.ema(src5 * volume, len5) / ta.ema(volume, len5)


//script taken from https://www.tradingview.com/script/kChCRRZI-Hull-Moving-Average/

src1 = ma

p(src1, len5) =>
    n = 0.0
    s = 0.0
    for i = 0 to len5 - 1 by 1
        w = (len5 - i) * len5
        n += w
        s += src5[i] * w
        s
    s / n

hm = 2.0 * p(src1, math.floor(len5 / 3)) - p(src1, len5)
vhma = p(hm, math.floor(math.sqrt(len5)))
lineColor = vhma > vhma[1] ? color.lime : color.red
plot(vhma, title='VHMA', color=lineColor, linewidth=3)
hColor = true
vis = true
hu = hColor ? vhma > vhma[2] ? #00ff00 : #ff0000 : #ff9800

vl = vhma[0]
ll = vhma[1]
m1 = plot(vl, color=hu, linewidth=1, transp=60)
m2 = plot(vis ? ll : na, color=hu, linewidth=2, transp=80)

fill(m1, m2, color=hu, transp=70)
//

b = timeframe.isintraday and timeframe.multiplier >= 1 ? 60 / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7



//
res5 = input.timeframe('D')

o = request.security(syminfo.tickerid, res5, open, barmerge.gaps_off, barmerge.lookahead_on)
c = request.security(syminfo.tickerid, res5, close, barmerge.gaps_off, barmerge.lookahead_on)
hz = request.security(syminfo.tickerid, res5, high, barmerge.gaps_off, barmerge.lookahead_on)
l = request.security(syminfo.tickerid, res5, low, barmerge.gaps_off, barmerge.lookahead_on)



col = c >= o ? color.lime : color.red

ppo = plot(b ? o >= c ? hz : l : o, color=col, title='Open', style=plot.style_stepline, transp=100)
ppc = plot(b ? o <= c ? hz : l : c, color=col, title='Close', style=plot.style_stepline, transp=100)

plot(b and hz > c ? hz : na, color=col, title='High', style=plot.style_circles, linewidth=2, transp=60)
plot(b and l < c ? l : na, color=col, title='Low', style=plot.style_circles, linewidth=2, transp=60)

fill(ppo, ppc, col, transp=90)

//
// INPUTS //
st_mult = input.float(1, title='SuperTrend Multiplier', minval=0, maxval=100, step=0.01)
st_period = input.int(50, title='SuperTrend Period', minval=1)

// CALCULATIONS //
up_lev = l - st_mult * ta.atr(st_period)
dn_lev = hz + st_mult * ta.atr(st_period)

up_trend = 0.0
up_trend := c[1] > up_trend[1] ? math.max(up_lev, up_trend[1]) : up_lev

down_trend = 0.0
down_trend := c[1] < down_trend[1] ? math.min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := c > down_trend[1] ? 1 : c < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend == 1 ? up_trend : down_trend

// Plotting
//plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy = ta.crossover(c, st_line)
sell = ta.crossunder(c, st_line)
signal = input(false)

/////////////// Plotting /////////////// 
plotshape(signal and buy, style=shape.triangleup, size=size.normal, location=location.belowbar, color=color.new(color.lime, 0))
plotshape(signal and sell, style=shape.triangledown, size=size.normal, location=location.abovebar, color=color.new(color.red, 0))


if buy
    strategy.entry('My Long Entry Id', strategy.long)

if sell
    strategy.entry('My Short Entry Id', strategy.short)



अधिक