Buscar en ideas para "macd"
Algoritmo 2.0//@version=5
strategy("Estrategia Completa", overlay=true)
// Definir medias móviles
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")
fastMA = sma(close, fastLength)
slowMA = sma(close, slowLength)
// Definir RSI
rsiLength = input(14, title="RSI Length")
rsiLevel = input(70, title="RSI Overbought Level")
rsiCondition = rsi(close, rsiLength) > rsiLevel
// Definir MACD
= macd(close, 12, 26, 9)
macdCondition = crossover(macdLine, signalLine)
// Definir volumen
volCondition = volume > sma(volume, 20)
// Condiciones de entrada y salida
longCondition = crossover(fastMA, slowMA) and rsiCondition and macdCondition and volCondition
shortCondition = crossunder(fastMA, slowMA) and rsiCondition and macdCondition and volCondition
// Ejecutar estrategia
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)
// Plotear medias móviles
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
// Plotear RSI
hline(rsiLevel, "RSI Overbought", color=color.red)
// Plotear MACD
plot(macdLine - signalLine, color=color.green, title="MACD Histogram")
// Plotear volumen
plot(volume, color=color.purple, title="Volume")
Redes neuronales //@version=5
indicator('Red Neuronal', shorttitle = 'RedNeuronalIndicador', overlay=true)
price = plot(close, title='Close Line', color=color.new(color.blue, 0), display=display.none)
////////////////////////////////////////////////////////////////////////////////
//TREND INDICATORS▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
//Trend EMA
tttradetrend = 'Only place BUY or SELL orders with the direction of the Trend EMA.'
tradetrendoption = input.bool(false, title='Only Tade with Trend', tooltip=tttradetrend)
len111 = input.int(defval=200, minval=0, maxval=2000, title='Trend EMA Length')
src111 = close
out111 = ta.ema(src111, len111)
ma111 = plot(out111, title='EMA 200', linewidth=2, color=color.new(color.blue, 0), offset=0)
mabuy = out111 > out111
masell = out111 < out111
//5 EMAs////////////////////////////////////////////////////////////////////////
len1 = 9
src1 = close
out1 = ta.ema(src1, len1)
ema1color = out1 > out1 ? #00bcd4 : #e91e63
ema1 = plot(out1, title='EMA 9', linewidth=3, color=color.new(ema1color, 50), offset=0, display=display.none)
fill(price, ema1, title='EMA 9 Fill', color=color.new(ema1color, 90), editable=true)
len2 = 21
src2 = close
out2 = ta.ema(src2, len2)
ema2color = out2 > out2 ? #00bcd4 : #e91e63
ema2 = plot(out2, title='EMA 21', linewidth=3, color=color.new(ema2color, 50), offset=0, display=display.none)
fill(price, ema2, title='EMA 21 Fill', color=color.new(ema2color, 90), editable=true)
len3 = 55
src3 = close
out3 = ta.ema(src3, len3)
ema3color = out3 > out3 ? #00bcd4 : #e91e63
ema3 = plot(out3, title='EMA 55', linewidth=3, color=color.new(ema3color, 50), offset=0, display=display.none)
fill(price, ema3, title='EMA 55 Fill', color=color.new(ema3color, 90), editable=true)
len4 = 100
src4 = close
out4 = ta.ema(src4, len4)
ema4color = out4 > out4 ? #00bcd4 : #e91e63
ema4 = plot(out4, title='EMA 100', linewidth=3, color=color.new(ema4color, 50), offset=0, display=display.none)
fill(price, ema4, title='EMA 100 Fill', color=color.new(ema4color, 90), editable=true)
len5 = 200
src5 = close
out5 = ta.ema(src5, len5)
ema5color = out5 > out5 ? #00bcd4 : #e91e63
ema5 = plot(out5, title='EMA 200', linewidth=3, color=color.new(ema5color, 50), offset=0, display=display.none)
fill(price, ema5, title='EMA 200 Fill', color=color.new(ema5color, 90), editable=true)
//Supertrend////////////////////////////////////////////////////////////////////
atrPeriod = 10
factor = 3
= ta.supertrend(factor, atrPeriod)
bodyMiddle = plot((open + close) / 2, display=display.none, title='Body Middle Line')
uptrend = direction < 0 and direction > 0 ? supertrend : na
downtrend = direction > 0 and direction < 0 ? supertrend : na
//fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
//fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)
//bullishsupertrend = supertrend < close and supertrend > close
//plotshape(uptrend, style=shape.labelup, color=color.green, location=location.belowbar, size=size.large)
//HMA///////////////////////////////////////////////////////////////////////////
len6 = 100
src6 = close
hma = ta.wma(2 * ta.wma(src6, len6 / 2) - ta.wma(src6, len6), math.floor(math.sqrt(len6)))
hmacolor = close > hma ? #00bcd4 : #e91e63
plot(hma, title='HMA Line', color=color.new(hmacolor, 25), linewidth=5)
//Parabolic SAR/////////////////////////////////////////////////////////////////
start = 0.02
increment = 0.01
maximum = 0.2
psar = ta.sar(start, increment, maximum)
//plot(psar, "ParabolicSAR", style=plot.style_circles, color=#ffffff)
//END▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
////////////////////////////////////////////////////////////////////////////////
//MOMENTUM INCIDATORS▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
//RSI Divergence////////////////////////////////////////////////////////////////
len11 = 14
src11 = close
lbR11 = 2
lbL11 = 6
rangeUpper11 = 60
rangeLower11 = 5
plotBull11 = true
plotHiddenBull11 = false
plotBear11 = true
plotHiddenBear11 = false
bearColor11 = color.red
bullColor11 = color.green
hiddenBullColor11 = color.new(color.green, 80)
hiddenBearColor11 = color.new(color.red, 80)
textColor11 = color.white
noneColor11 = color.new(color.white, 100)
osc11 = ta.rsi(src11, len11)
//plot(osc11, title="RSI", linewidth=2, color=#2962FF)
//hline(50, title="Middle Line", color=#787B86, linestyle=hline.style_dotted)
//obLevel11 = hline(70, title="Overbought", color=#787B86, linestyle=hline.style_dotted)
//osLevel11 = hline(30, title="Oversold", color=#787B86, linestyle=hline.style_dotted)
//fill(obLevel11, osLevel11, title="Background", color=color.rgb(33, 150, 243, 90))
plFound11 = na(ta.pivotlow(osc11, lbL11, lbR11)) ? false : true
phFound11 = na(ta.pivothigh(osc11, lbL11, lbR11)) ? false : true
_inRange11(cond) =>
bars11 = ta.barssince(cond == true)
rangeLower11 <= bars11 and bars11 <= rangeUpper11
//Regular Bullish Divergence
//Osc: Higher Low
oscHL11 = osc11 > ta.valuewhen(plFound11, osc11 , 1) and _inRange11(plFound11 )
//Price: Lower Low
priceLL11 = low < ta.valuewhen(plFound11, low , 1)
bullCond11 = plotBull11 and priceLL11 and oscHL11 and plFound11
//plot(plFound11 ? osc11 : na, offset=-lbR11, title="Regular Bullish", linewidth=2, color=(bullCond11 ? bullColor11 : noneColor11))
//plotshape(bullCond11 ? osc11 : na, offset=-lbR11, title="Regular Bullish Label", text=" Bull ", style=shape.labelup, location=location.absolute, color=bullColor11, textcolor=textColor11)
//Hidden Bullish Divergence
//Osc: Lower Low
oscLL11 = osc11 < ta.valuewhen(plFound11, osc11 , 1) and _inRange11(plFound11 )
//Price: Higher Low
priceHL11 = low > ta.valuewhen(plFound11, low , 1)
hiddenBullCond11 = plotHiddenBull11 and priceHL11 and oscLL11 and plFound11
//plot(plFound11 ? osc11 : na, offset=-lbR11, title="Hidden Bullish", linewidth=2, color=(hiddenBullCond11 ? hiddenBullColor11 : noneColor11))
//plotshape(hiddenBullCond11 ? osc11 : na, offset=-lbR11, title="Hidden Bullish Label", text=" H Bull ", style=shape.labelup, location=location.absolute, color=bullColor11, textcolor=textColor11)
//Regular Bearish Divergence
//Osc: Lower High
oscLH11 = osc11 < ta.valuewhen(phFound11, osc11 , 1) and _inRange11(phFound11 )
//Price: Higher High
priceHH11 = high > ta.valuewhen(phFound11, high , 1)
bearCond11 = plotBear11 and priceHH11 and oscLH11 and phFound11
//plot(phFound11 ? osc11 : na, offset=-lbR11, title="Regular Bearish", linewidth=2, color=(bearCond11 ? bearColor11 : noneColor11))
//plotshape(bearCond11 ? osc11 : na, offset=-lbR11, title="Regular Bearish Label", text=" Bear ", style=shape.labeldown, location=location.absolute, color=bearColor11, textcolor=textColor11)
//Hidden Bearish Divergence
//Osc: Higher High
oscHH11 = osc11 > ta.valuewhen(phFound11, osc11 , 1) and _inRange11(phFound11 )
// Price: Lower High
priceLH11 = high < ta.valuewhen(phFound11, high , 1)
hiddenBearCond11 = plotHiddenBear11 and priceLH11 and oscHH11 and phFound11
//plot(phFound11 ? osc11 : na, offset=-lbR11, title="Hidden Bearish", linewidth=2, color=(hiddenBearCond11 ? hiddenBearColor11 : noneColor11))
//plotshape(hiddenBearCond11 ? osc11 : na, offset=-lbR11, title="Hidden Bearish Label", text=" H Bear ", style=shape.labeldown, location=location.absolute, color=bearColor11, textcolor=textColor11)
//MACD Divergence///////////////////////////////////////////////////////////////
fast_length12 = 12
slow_length12 = 26
src12 = close
signal_length12 = 9
sma_source12 = 'EMA'
sma_signal12 = 'EMA'
//Plot colors
col_macd12 = #2962FF
col_signal12 = #FF6D00
col_grow_above12 = #26A69A
col_fall_above12 = #B2DFDB
col_grow_below12 = #FFCDD2
col_fall_below12 = #FF5252
//Calculating
fast_ma12 = sma_source12 == 'SMA' ? ta.sma(src12, fast_length12) : ta.ema(src12, fast_length12)
slow_ma12 = sma_source12 == 'SMA' ? ta.sma(src12, slow_length12) : ta.ema(src12, slow_length12)
macd = fast_ma12 - slow_ma12
signal = sma_signal12 == 'SMA' ? ta.sma(macd, signal_length12) : ta.ema(macd, signal_length12)
hist = macd - signal
//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist < hist ? col_grow_above12 : col_fall_above12) : (hist < hist ? col_grow_below12 : col_fall_below12)))
//plot(macd, title="MACD", color=col_macd12)
//plot(signal, title="Signal", color=col_signal12)
donttouchzero12 = true
lbR12 = 2
lbL12 = 6
rangeUpper12 = 60
rangeLower12 = 5
plotBull12 = true
plotHiddenBull12 = false
plotBear12 = true
plotHiddenBear12 = false
bearColor12 = color.red
bullColor12 = color.green
hiddenBullColor12 = color.new(color.green, 80)
hiddenBearColor12 = color.new(color.red, 80)
textColor12 = color.white
noneColor12 = color.new(color.white, 100)
osc12 = macd
plFound12 = na(ta.pivotlow(osc12, lbL12, lbR12)) ? false : true
phFound12 = na(ta.pivothigh(osc12, lbL12, lbR12)) ? false : true
_inRange12(cond) =>
bars12 = ta.barssince(cond == true)
rangeLower12 <= bars12 and bars12 <= rangeUpper12
//Regular Bullish Divergence
//Osc: Higher Low
oscHL12 = osc12 > ta.valuewhen(plFound12, osc12 , 1) and _inRange12(plFound12 ) and osc12 < 0
// Price: Lower Low
priceLL12 = low < ta.valuewhen(plFound12, low , 1)
priceHHZero12 = ta.highest(osc12, lbL12 + lbR12 + 5)
//plot(priceHHZero,title="priceHHZero",color=color.green)
blowzero12 = donttouchzero12 ? priceHHZero12 < 0 : true
bullCond12 = plotBull12 and priceLL12 and oscHL12 and plFound12 and blowzero12
//plot(plFound12 ? osc12 : na, offset=-lbR12, title="Regular Bullish", linewidth=2, color=(bullCond12 ? bullColor12 : noneColor12))
//plotshape(bullCond12 ? osc12 : na, offset=-lbR12, title="Regular Bullish Label", text=" Bull ", style=shape.labelup, location=location.absolute, color=bullColor12, textcolor=textColor12)
//Hidden Bullish Divergence
//Osc: Lower Low
oscLL12 = osc12 < ta.valuewhen(plFound12, osc12 , 1) and _inRange12(plFound12 )
//Price: Higher Low
priceHL12 = low > ta.valuewhen(plFound12, low , 1)
hiddenBullCond12 = plotHiddenBull12 and priceHL12 and oscLL12 and plFound12
//plot(plFound12 ? osc12 : na, offset=-lbR12, title="Hidden Bullish", linewidth=2, color=(hiddenBullCond12 ? hiddenBullColor12 : noneColor12))
//plotshape(hiddenBullCond12 ? osc12 : na, offset=-lbR12, title="Hidden Bullish Label", text=" H Bull ", style=shape.labelup, location=location.absolute, color=bullColor12, textcolor=textColor12)
//Regular Bearish Divergence
//Osc: Lower High
oscLH12 = osc12 < ta.valuewhen(phFound12, osc12 , 1) and _inRange12(phFound12 ) and osc12 > 0
priceLLZero12 = ta.lowest(osc12, lbL12 + lbR12 + 5)
//plot(priceLLZero,title="priceLLZero", color=color.red)
bearzero12 = donttouchzero12 ? priceLLZero12 > 0 : true
//Price: Higher High
priceHH12 = high > ta.valuewhen(phFound12, high , 1)
bearCond12 = plotBear12 and priceHH12 and oscLH12 and phFound12 and bearzero12
//plot(phFound12 ? osc12 : na, offset=-lbR12, title="Regular Bearish", linewidth=2, color=(bearCond12 ? bearColor12 : noneColor12))
//plotshape(bearCond12 ? osc12 : na, offset=-lbR12, title="Regular Bearish Label", text=" Bear ", style=shape.labeldown, location=location.absolute, color=bearColor12, textcolor=textColor12)
//Hidden Bearish Divergence
//Osc: Higher High
oscHH12 = osc12 > ta.valuewhen(phFound12, osc12 , 1) and _inRange12(phFound12 )
//Price: Lower High
priceLH12 = high < ta.valuewhen(phFound12, high , 1)
hiddenBearCond12 = plotHiddenBear12 and priceLH12 and oscHH12 and phFound12
//plot(phFound12 ? osc12 : na, offset=-lbR12, title="Hidden Bearish", linewidth=2, color=(hiddenBearCond12 ? hiddenBearColor12 : noneColor12))
//plotshape(hiddenBearCond12 ? osc12 : na, offset=-lbR12, title="Hidden Bearish Label", text=" H Bear ", style=shape.labeldown, location=location.absolute, color=bearColor12, textcolor=textColor12)
//Wave Trend Divergence/////////////////////////////////////////////////////////
n1 = 9
n2 = 12
ap = hlc3
esa = ta.ema(ap, n1)
d1 = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d1)
tci = ta.ema(ci, n2)
hline = 0
wt1 = tci
wt2 = ta.sma(wt1, 4)
//plot(hline, color=color.gray)
//plot(wt1, color=color.white)
//plot(wt2, color=color.blue)
//Divergence
lbR13 = 2
lbL13 = 6
rangeUpper13 = 60
rangeLower13 = 5
plotBull13 = true
plotHiddenBull13 = false
plotBear13 = true
plotHiddenBear13 = false
bearColor13 = color.red
bullColor13 = color.green
hiddenBullColor13 = color.green
hiddenBearColor13 = color.red
textColor13 = color.white
noneColor13 = color.new(color.white, 100)
k13 = wt1
d13 = wt2
osc13 = k13
plFound13 = na(ta.pivotlow(osc13, lbL13, lbR13)) ? false : true
phFound13 = na(ta.pivothigh(osc13, lbL13, lbR13)) ? false : true
_inRange13(cond) =>
bars13 = ta.barssince(cond == true)
rangeLower13 <= bars13 and bars13 <= rangeUpper13
//Regular Bullish
//Osc: Higher Low
oscHL13 = osc13 > ta.valuewhen(plFound13, osc13 , 1) and _inRange13(plFound13 )
//Price: Lower Low
priceLL13 = low < ta.valuewhen(plFound13, low , 1)
bullCond13 = plotBull13 and priceLL13 and oscHL13 and plFound13
//plot(plFound13 ? osc13 : na, offset=-lbR13, title="Regular Bullish", linewidth=2, color=(bullCond13 ? bullColor13 : noneColor13))
//plotshape(bullCond13 ? osc13 : na, offset=-lbR13, title="Regular Bullish Label", text=" Bull ", style=shape.labelup, location=location.absolute, color=bullColor13, textcolor=textColor13)
//Hidden Bullish
//Osc: Lower Low
oscLL13 = osc13 < ta.valuewhen(plFound13, osc13 , 1) and _inRange13(plFound13 )
//Price: Higher Low
priceHL13 = low > ta.valuewhen(plFound13, low , 1)
hiddenBullCond13 = plotHiddenBull13 and priceHL13 and oscLL13 and plFound13
//plot(plFound13 ? osc13 : na, offset=-lbR13, title="Hidden Bullish", linewidth=2, color=(hiddenBullCond13 ? hiddenBullColor13 : noneColor13))
//plotshape(hiddenBullCond13 ? osc13 : na, offset=-lbR13, title="Hidden Bullish Label", text=" H Bull ", style=shape.labelup, location=location.absolute, color=bullColor13, textcolor=textColor13)
//Regular Bearish
//Osc: Lower High
oscLH13 = osc13 < ta.valuewhen(phFound13, osc13 , 1) and _inRange13(phFound13 )
//Price: Higher High
priceHH13 = high > ta.valuewhen(phFound13, high , 1)
bearCond13 = plotBear13 and priceHH13 and oscLH13 and phFound13
//plot(phFound13 ? osc13 : na, offset=-lbR13, title="Regular Bearish", linewidth=2, color=(bearCond13 ? bearColor13 : noneColor13))
//plotshape(bearCond13 ? osc13 : na, offset=-lbR13, title="Regular Bearish Label", text=" Bear ", style=shape.labeldown, location=location.absolute, color=bearColor13, textcolor=textColor13)
//Hidden Bearish
//Osc: Higher High
oscHH13 = osc13 > ta.valuewhen(phFound13, osc13 , 1) and _inRange13(phFound13 )
//Price: Lower High
priceLH13 = high < ta.valuewhen(phFound13, high , 1)
hiddenBearCond13 = plotHiddenBear13 and priceLH13 and oscHH13 and phFound13
//plot(phFound13 ? osc13 : na, offset=-lbR13, title="Hidden Bearish", linewidth=2, color=(hiddenBearCond13 ? hiddenBearColor13 : noneColor13))
//plotshape(hiddenBearCond13 ? osc13 : na, offset=-lbR13, title="Hidden Bearish Label", text=" H Bear ", style=shape.labeldown, location=location.absolute, color=bearColor13, textcolor=textColor13)
//Stochastic Divergence/////////////////////////////////////////////////////////
periodK14 = 14
smoothK14 = 3
periodD14 = 3
k14 = ta.sma(ta.stoch(close, high, low, periodK14), smoothK14)
d14 = ta.sma(k14, periodD14)
//plot(k14, title="%K", color=#2962FF)
//plot(d14, title="%D", color=#FF6D00)
//h0 = hline(80, "Upper Band", color=#787B86)
//h1 = hline(20, "Lower Band", color=#787B86)
//fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
//Divergence
lbR14 = 2
lbL14 = 6
rangeUpper14 = 60
rangeLower14 = 5
plotBull14 = true
plotHiddenBull14 = false
plotBear14 = true
plotHiddenBear14 = false
bearColor14 = color.red
bullColor14 = color.green
hiddenBullColor14 = color.green
hiddenBearColor14 = color.red
textColor14 = color.white
noneColor14 = color.new(color.white, 100)
osc14 = k14
plFound14 = na(ta.pivotlow(osc14, lbL14, lbR14)) ? false : true
phFound14 = na(ta.pivothigh(osc14, lbL14, lbR14)) ? false : true
_inRange14(cond) =>
bars14 = ta.barssince(cond == true)
rangeLower14 <= bars14 and bars14 <= rangeUpper14
//Regular Bullish
//Osc: Higher Low
oscHL14 = osc14 > ta.valuewhen(plFound14, osc14 , 1) and _inRange14(plFound14 )
//Price: Lower Low
priceLL14 = low < ta.valuewhen(plFound14, low , 1)
bullCond14 = plotBull14 and priceLL14 and oscHL14 and plFound14
//plot(plFound14 ? osc14 : na, offset=-lbR14, title="Regular Bullish", linewidth=2, color=(bullCond14 ? bullColor14 : noneColor14))
//plotshape(bullCond14 ? osc14 : na, offset=-lbR14, title="Regular Bullish Label", text=" Bull ", style=shape.labelup, location=location.absolute, color=bullColor14, textcolor=textColor14)
//Hidden Bullish
//Osc: Lower Low
oscLL14 = osc14 < ta.valuewhen(plFound14, osc14 , 1) and _inRange14(plFound14 )
//Price: Higher Low
priceHL14 = low > ta.valuewhen(plFound14, low , 1)
hiddenBullCond14 = plotHiddenBull14 and priceHL14 and oscLL14 and plFound14
//plot(plFound14 ? osc14 : na, offset=-lbR14, title="Hidden Bullish", linewidth=2, color=(hiddenBullCond14 ? hiddenBullColor14 : noneColor14))
//plotshape(hiddenBullCond14 ? osc14 : na, offset=-lbR14, title="Hidden Bullish Label", text=" H Bull ", style=shape.labelup, location=location.absolute, color=bullColor14, textcolor=textColor14)
//Regular Bearish
//Osc: Lower High
oscLH14 = osc14 < ta.valuewhen(phFound14, osc14 , 1) and _inRange14(phFound14 )
//Price: Higher High
priceHH14 = high > ta.valuewhen(phFound14, high , 1)
bearCond14 = plotBear14 and priceHH14 and oscLH14 and phFound14
//plot(phFound14 ? osc14 : na, offset=-lbR14, title="Regular Bearish", linewidth=2, color=(bearCond14 ? bearColor14 : noneColor14))
//plotshape(bearCond14 ? osc14 : na, offset=-lbR14, title="Regular Bearish Label", text=" Bear ", style=shape.labeldown, location=location.absolute, color=bearColor14, textcolor=textColor14)
//Hidden Bearish
//Osc: Higher High
oscHH14 = osc14 > ta.valuewhen(phFound14, osc14 , 1) and _inRange14(phFound14 )
//Price: Lower High
priceLH14 = high < ta.valuewhen(phFound14, high , 1)
hiddenBearCond14 = plotHiddenBear14 and priceLH14 and oscHH14 and phFound14
//plot(phFound14 ? osc14 : na, offset=-lbR14, title="Hidden Bearish", linewidth=2, color=(hiddenBearCond14 ? hiddenBearColor14 : noneColor14))
//plotshape(hiddenBearCond14 ? osc14 : na, offset=-lbR14, title="Hidden Bearish Label", text=" H Bear ", style=shape.labeldown, location=location.absolute, color=bearColor14, textcolor=textColor14)
//END▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
////////////////////////////////////////////////////////////////////////////////
//VOLATILITY INDICATORS▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
//Bollinger Bands///////////////////////////////////////////////////////////////
length1 = 20
src7 = close
mult1 = 2.0
basis = ta.sma(src7, length1)
dev = mult1 * ta.stdev(src7, length1)
upper = basis + dev
lower = basis - dev
offset = 0
//plot(basis, "Basis", color=#FF6D00, offset = offset)
//p1 = plot(upper, "Upper", color=#2962FF, offset = 0)
//p2 = plot(lower, "Lower", color=#2962FF, offset = 0)
//fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
//Average True Range /////////////////////////////////////////////////
length2 = 1
mult2 = 1.85
showLabels = true
useClose = false
highlightState = false
atr = mult2 * ta.atr(length2)
longStop = (useClose ? ta.highest(close, length2) : ta.highest(length2)) - atr
longStopPrev = nz(longStop , longStop)
longStop := close > longStopPrev ? math.max(longStop, longStopPrev) : longStop
shortStop = (useClose ? ta.lowest(close, length2) : ta.lowest(length2)) + atr
shortStopPrev = nz(shortStop , shortStop)
shortStop := close < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop
var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir
var color longColor = color.green
var color shortColor = color.red
buySignal = dir == 1 and dir == -1
//plotshape(buySignal and showLabels ? longStop : na, title="Gold Buy", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=longColor, textcolor=color.new(color.white, 0))
sellSignal = dir == -1 and dir == 1
//plotshape(sellSignal and showLabels ? shortStop : na, title="Gold Sell", text="Sell", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=shortColor, textcolor=color.new(color.white, 0))
//Relative Volatility Index Divergence//////////////////////////////////////////
length15 = 12
src15 = close
len15 = 14
stddev15 = ta.stdev(src15, length15)
upper15 = ta.ema(ta.change(src15) <= 0 ? 0 : stddev15, len15)
lower15 = ta.ema(ta.change(src15) > 0 ? 0 : stddev15, len15)
rvi = upper15 / (upper15 + lower15) * 100
//h0 = hline(80, "Upper Band", color=#787B86)
//h1 = hline(20, "Lower Band", color=#787B86)
//fill(h0, h1, color=color.rgb(126, 87, 194, 90), title="Background")
//plot(rvi15, title="RVI", color=#7E57C2, offset = offset)
//Divergence
lbR15 = 2
lbL15 = 6
rangeUpper15 = 60
rangeLower15 = 5
plotBull15 = true
plotHiddenBull15 = false
plotBear15 = true
plotHiddenBear15 = false
bearColor15 = color.red
bullColor15 = color.green
hiddenBullColor15 = color.green
hiddenBearColor15 = color.red
textColor15 = color.white
noneColor15 = color.new(color.white, 100)
d15 = rvi
osc15 = d15
plFound15 = na(ta.pivotlow(osc15, lbL15, lbR15)) ? false : true
phFound15 = na(ta.pivothigh(osc15, lbL15, lbR15)) ? false : true
_inRange15(cond) =>
bars15 = ta.barssince(cond == true)
rangeLower15 <= bars15 and bars15 <= rangeUpper15
//Regular Bullish
//Osc: Higher Low
oscHL15 = osc15 > ta.valuewhen(plFound15, osc15 , 1) and _inRange15(plFound15 )
//Price: Lower Low
priceLL15 = low < ta.valuewhen(plFound15, low , 1)
bullCond15 = plotBull15 and priceLL15 and oscHL15 and plFound15
//plot(plFound15 ? osc15 : na, offset=-lbR15, title="Regular Bullish", linewidth=2, color=(bullCond15 ? bullColor15 : noneColor15))
//plotshape(bullCond15 ? osc15 : na, offset=-lbR15, title="Regular Bullish Label", text=" Bull ", style=shape.labelup, location=location.absolute, color=bullColor15, textcolor=textColor15)
//Hidden Bullish
//Osc: Lower Low
oscLL15 = osc15 < ta.valuewhen(plFound15, osc15 , 1) and _inRange15(plFound15 )
//Price: Higher Low
priceHL15 = low > ta.valuewhen(plFound15, low , 1)
hiddenBullCond15 = plotHiddenBull15 and priceHL15 and oscLL15 and plFound15
//plot(plFound15 ? osc15 : na, offset=-lbR15, title="Hidden Bullish", linewidth=2, color=(hiddenBullCond15 ? hiddenBullColor15 : noneColor15))
//plotshape(hiddenBullCond15 ? osc15 : na, offset=-lbR15, title="Hidden Bullish Label", text=" H Bull ", style=shape.labelup, location=location.absolute, color=bullColor15, textcolor=textColor15)
//Regular Bearish
//Osc: Lower High
oscLH15 = osc15 < ta.valuewhen(phFound15, osc15 , 1) and _inRange15(phFound15 )
//Price: Higher High
priceHH15 = high > ta.valuewhen(phFound15, high , 1)
bearCond15 = plotBear15 and priceHH15 and oscLH15 and phFound15
//plot(phFound15 ? osc15 : na, offset=-lbR15, title="Regular Bearish", linewidth=2, color=(bearCond15 ? bearColor15 : noneColor15))
//plotshape(bearCond15 ? osc15 : na, offset=-lbR15, title="Regular Bearish Label", text=" Bear ", style=shape.labeldown, location=location.absolute, color=bearColor15, textcolor=textColor15)
//Hidden Bearish
//Osc: Higher High
oscHH15 = osc15 > ta.valuewhen(phFound15, osc15 , 1) and _inRange15(phFound15 )
//Price: Lower High
priceLH15 = high < ta.valuewhen(phFound15, high , 1)
hiddenBearCond15 = plotHiddenBear15 and priceLH15 and oscHH15 and phFound15
//plot(phFound15 ? osc15 : na, offset=-lbR15, title="Hidden Bearish", linewidth=2, color=(hiddenBearCond15 ? hiddenBearColor15 : noneColor15))
//plotshape(hiddenBearCond15 ? osc15 : na, offset=-lbR15, title="Hidden Bearish Label", text=" H Bear ", style=shape.labeldown, location=location.absolute, color=bearColor15, textcolor=textColor15)
//Support and Resistance////////////////////////////////////////////////////////
left16 = 200
right16 = 20
quick_right16 = 5
src16 = 'Close'
pivothigh_1 = ta.pivothigh(close, left16, right16)
pivothigh_2 = ta.pivothigh(high, left16, right16)
pivot_high16 = src16 == 'Close' ? pivothigh_1 : pivothigh_2
pivotlow_1 = ta.pivotlow(close, left16, right16)
pivotlow_2 = ta.pivotlow(low, left16, right16)
pivot_lows16 = src16 == 'Close' ? pivotlow_1 : pivotlow_2
pivothigh_3 = ta.pivothigh(close, left16, quick_right16)
pivothigh_4 = ta.pivothigh(high, left16, quick_right16)
quick_pivot_high16 = src16 == 'Close' ? pivothigh_3 : pivothigh_4
pivotlow_3 = ta.pivotlow(close, left16, quick_right16)
pivotlow_4 = ta.pivotlow(low, left16, quick_right16)
quick_pivot_lows16 = src16 == 'Close' ? pivotlow_3 : pivotlow_4
valuewhen_1 = ta.valuewhen(quick_pivot_high16, close , 0)
valuewhen_2 = ta.valuewhen(quick_pivot_high16, high , 0)
level1 = src16 == 'Close' ? valuewhen_1 : valuewhen_2
valuewhen_3 = ta.valuewhen(quick_pivot_lows16, close , 0)
valuewhen_4 = ta.valuewhen(quick_pivot_lows16, low , 0)
level2 = src16 == 'Close' ? valuewhen_3 : valuewhen_4
valuewhen_5 = ta.valuewhen(pivot_high16, close , 0)
valuewhen_6 = ta.valuewhen(pivot_high16, high , 0)
level3 = src16 == 'Close' ? valuewhen_5 : valuewhen_6
valuewhen_7 = ta.valuewhen(pivot_lows16, close , 0)
valuewhen_8 = ta.valuewhen(pivot_lows16, low , 0)
level4 = src16 == 'Close' ? valuewhen_7 : valuewhen_8
valuewhen_9 = ta.valuewhen(pivot_high16, close , 1)
valuewhen_10 = ta.valuewhen(pivot_high16, high , 1)
level5 = src16 == 'Close' ? valuewhen_9 : valuewhen_10
valuewhen_11 = ta.valuewhen(pivot_lows16, close , 1)
valuewhen_12 = ta.valuewhen(pivot_lows16, low , 1)
level6 = src16 == 'Close' ? valuewhen_11 : valuewhen_12
valuewhen_13 = ta.valuewhen(pivot_high16, close , 2)
valuewhen_14 = ta.valuewhen(pivot_high16, high , 2)
level7 = src16 == 'Close' ? valuewhen_13 : valuewhen_14
valuewhen_15 = ta.valuewhen(pivot_lows16, close , 2)
valuewhen_16 = ta.valuewhen(pivot_lows16, low , 2)
level8 = src16 == 'Close' ? valuewhen_15 : valuewhen_16
level1_col = close >= level1 ? color.green : color.red
level2_col = close >= level2 ? color.green : color.red
level3_col = close >= level3 ? color.green : color.red
level4_col = close >= level4 ? color.green : color.red
level5_col = close >= level5 ? color.green : color.red
level6_col = close >= level6 ? color.green : color.red
level7_col = close >= level7 ? color.green : color.red
level8_col = close >= level8 ? color.green : color.red
length17 = 9
src17 = close
hma17 = ta.wma(2 * ta.wma(src17, length17 / 2) - ta.wma(src17, length17), math.floor(math.sqrt(length17)))
buy1 = hma17 > level1 and hma17 < level1 and close > close
buy2 = hma17 > level2 and hma17 < level2 and close > close
buy3 = hma17 > level3 and hma17 < level3 and close > close
buy4 = hma17 > level4 and hma17 < level4 and close > close
buy5 = hma17 > level5 and hma17 < level5 and close > close
buy6 = hma17 > level6 and hma17 < level6 and close > close
buy7 = hma17 > level7 and hma17 < level7 and close > close
buy8 = hma17 > level8 and hma17 < level8 and close > close
sell1 = hma17 < level1 and hma17 > level1 and close < close
sell2 = hma17 < level2 and hma17 > level2 and close < close
sell3 = hma17 < level3 and hma17 > level3 and close < close
sell4 = hma17 < level4 and hma17 > level4 and close < close
sell5 = hma17 < level5 and hma17 > level5 and close < close
sell6 = hma17 < level6 and hma17 > level6 and close < close
sell7 = hma17 < level7 and hma17 > level7 and close < close
sell8 = hma17 < level8 and hma17 > level8 and close < close
//END▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
////////////////////////////////////////////////////////////////////////////////
//VOLUME INDICATORS▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
//OBV Divergence////////////////////////////////////////////////////////////////
len18 = 20
src18 = close
lbR18 = 2
lbL18 = 6
rangeUpper18 = 60
rangeLower18 = 5
plotBull18 = true
plotHiddenBull18 = false
plotBear18 = true
plotHiddenBear18 = false
bearColor18 = color.red
bullColor18 = color.green
hiddenBullColor18 = color.green
hiddenBearColor18 = color.new(color.red, 80)
textColor18 = color.white
noneColor18 = color.new(color.white, 100)
csrc = ta.change(src18)
obv1(src18) =>
ta.cum(ta.change(src18) > 0 ? volume : csrc < 0 ? -volume : 0 * volume)
os = obv1(src18)
obv_osc = os - ta.ema(os, len18)
obc_color = obv_osc > 0 ? color.green : color.red
//plot(obv_osc, color=obc_color, style=plot.style_line,title="OBV-Points", linewidth=2)
//plot(obv_osc, color=color.silver, transp=70, title="OBV", style=plot.style_area)
//hline(0)
plFound18 = na(ta.pivotlow(obv_osc, lbL18, lbR18)) ? false : true
phFound18 = na(ta.pivothigh(obv_osc, lbL18, lbR18)) ? false : true
_inRange(cond) =>
bars = ta.barssince(cond == true)
rangeLower18 <= bars and bars <= rangeUpper18
// Regular Bullish
// Osc: Higher Low
oscHL18 = obv_osc > ta.valuewhen(plFound18, obv_osc , 1) and _inRange(plFound18 )
// Price: Lower Low
priceLL18 = low < ta.valuewhen(plFound18, low , 1)
bullCond18 = plotBull18 and priceLL18 and oscHL18 and plFound18
//plot(plFound18 ? obv_osc : na,offset=-lbR18,title="Regular Bullish",linewidth=2,color=(bullCond18 ? bullColor18 : noneColor18))
//plotshape(bullCond18 ? obv_osc : na,offset=-lbR18,title="Regular Bullish Label",text=" Bull ",style=shape.labelup,location=location.absolute,color=bullColor18,textcolor=textColor18)
// Hidden Bullish
// Osc: Lower Low
oscLL18 = obv_osc < ta.valuewhen(plFound18, obv_osc , 1) and _inRange(plFound18 )
// Price: Higher Low
priceHL18 = low > ta.valuewhen(plFound18, low , 1)
hiddenBullCond18 = plotHiddenBull18 and priceHL18 and oscLL18 and plFound18
//plot(plFound18 ? obv_osc : na,offset=-lbR18,title="Hidden Bullish",linewidth=2,color=(hiddenBullCond18 ? hiddenBullColor18 : noneColor18))
//plotshape(hiddenBullCond18 ? obv_osc : na,offset=-lbR18,title="Hidden Bullish Label",text=" H Bull ",style=shape.labelup,location=location.absolute,color=bullColor18,textcolor=textColor18)
// Regular Bearish
// Osc: Lower High
oscLH18 = obv_osc < ta.valuewhen(phFound18, obv_osc , 1) and _inRange(phFound18 )
// Price: Higher High
priceHH18 = high > ta.valuewhen(phFound18, high , 1)
bearCond18 = plotBear18 and priceHH18 and oscLH18 and phFound18
//plot(phFound18 ? obv_osc : na,offset=-lbR18,title="Regular Bearish",linewidth=2,color=(bearCond18 ? bearColor18 : noneColor18))
//plotshape(bearCond18 ? obv_osc : na,offset=-lbR18,title="Regular Bearish Label",text=" Bear ",style=shape.labeldown,location=location.absolute,color=bearColor18,textcolor=textColor18)
// Hidden Bearish
// Osc: Higher High
oscHH18 = obv_osc > ta.valuewhen(phFound18, obv_osc , 1) and _inRange(phFound18 )
// Price: Lower High
priceLH18 = high < ta.valuewhen(phFound18, high , 1)
hiddenBearCond18 = plotHiddenBear18 and priceLH18 and oscHH18 and phFound18
//plot(phFound18 ? obv_osc : na,offset=-lbR18,title="Hidden Bearish",linewidth=2,color=(hiddenBearCond18 ? hiddenBearColor18 : noneColor18))
//plotshape(hiddenBearCond18 ? obv_osc : na,offset=-lbR18,title="Hidden Bearish Label",text=" H Bear ",style=shape.labeldown,location=location.absolute,color=bearColor18,textcolor=textColor18)
//Chaikin Money Flow////////////////////////////////////////////////////////////
length19 = 50
ad19 = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
cmf = math.sum(ad19, length19) / math.sum(volume, length19)
//plot(cmf, color=#43A047, title="MF")
//hline(0, color=#787B86, title="Zero", linestyle=hline.style_dashed)
//VWAP//////////////////////////////////////////////////////////////////////////
computeVWAP(src20, isNewPeriod, stDevMultiplier) =>
var float sumSrcVol = na
var float sumVol = na
var float sumSrcSrcVol = na
sumSrcVol := isNewPeriod ? src20 * volume : src20 * volume + sumSrcVol
sumVol := isNewPeriod ? volume : volume + sumVol
// sumSrcSrcVol calculates the dividend of the equation that is later used to calculate the standard deviation
sumSrcSrcVol := isNewPeriod ? volume * math.pow(src20, 2) : volume * math.pow(src20, 2) + sumSrcSrcVol
_vwap = sumSrcVol / sumVol
variance = sumSrcSrcVol / sumVol - math.pow(_vwap, 2)
variance := variance < 0 ? 0 : variance
stDev = math.sqrt(variance)
lowerBand20 = _vwap - stDev * stDevMultiplier
upperBand20 = _vwap + stDev * stDevMultiplier
hideonDWM = false
var anchor = 'Session'
src20 = hlc3
offset20 = 0
showBands = true
stdevMult = 1.0
timeChange(period) =>
ta.change(time(period))
new_earnings = request.earnings(syminfo.tickerid, earnings.actual, barmerge.gaps_on, barmerge.lookahead_on)
new_dividends = request.dividends(syminfo.tickerid, dividends.gross, barmerge.gaps_on, barmerge.lookahead_on)
new_split = request.splits(syminfo.tickerid, splits.denominator, barmerge.gaps_on, barmerge.lookahead_on)
tcD = timeChange('D')
tcW = timeChange('W')
tcM = timeChange('M')
tc3M = timeChange('3M')
tc12M = timeChange('12M')
isNewPeriod = anchor == 'Earnings' ? new_earnings : anchor == 'Dividends' ? new_dividends : anchor == 'Splits' ? new_split : na(src20 ) ? true : anchor == 'Session' ? tcD : anchor == 'Week' ? tcW : anchor == 'Month' ? tcM : anchor == 'Quarter' ? tc3M : anchor == 'Year' ? tc12M : anchor == 'Decade' ? tc12M and year % 10 == 0 : anchor == 'Century' ? tc12M and year % 100 == 0 : false
float vwapValue = na
float std = na
float upperBandValue = na
float lowerBandValue = na
if not(hideonDWM and timeframe.isdwm)
= computeVWAP(src20, isNewPeriod, stdevMult)
vwapValue := _vwap
upperBandValue := showBands ? top : na
lowerBandValue := showBands ? bottom : na
lowerBandValue
//plot(vwapValue, title="VWAP", color=#2962FF, offset=offset)
//upperBand20 = plot(upperBandValue, title="Upper Band", color=color.green, offset=offset)
//lowerBand20 = plot(lowerBandValue, title="Lower Band", color=color.green, offset=offset)
//fill(upperBand20, lowerBand20, title="Bands Fill", color= showBands ? color.new(color.green, 95) : na)
//Candle Patterns///////////////////////////////////////////////////////////////
//Bullish Engulfing
C_DownTrend = true
C_UpTrend = true
var trendRule1 = 'SMA50'
var trendRule2 = 'SMA50, SMA200'
var trendRule = trendRule1
if trendRule == trendRule1
priceAvg = ta.sma(close, 50)
C_DownTrend := close < priceAvg
C_UpTrend := close > priceAvg
C_UpTrend
if trendRule == trendRule2
sma200 = ta.sma(close, 200)
sma50 = ta.sma(close, 50)
C_DownTrend := close < sma50 and sma50 < sma200
C_UpTrend := close > sma50 and sma50 > sma200
C_UpTrend
C_Len = 14 // ema depth for bodyAvg
C_ShadowPercent = 5.0 // size of shadows
C_ShadowEqualsPercent = 100.0
C_DojiBodyPercent = 5.0
C_Factor = 2.0 // shows the number of times the shadow dominates the candlestick body
C_BodyHi = math.max(close, open)
C_BodyLo = math.min(close, open)
C_Body = C_BodyHi - C_BodyLo
C_BodyAvg = ta.ema(C_Body, C_Len)
C_SmallBody = C_Body < C_BodyAvg
C_LongBody = C_Body > C_BodyAvg
C_UpShadow = high - C_BodyHi
C_DnShadow = C_BodyLo - low
C_HasUpShadow = C_UpShadow > C_ShadowPercent / 100 * C_Body
C_HasDnShadow = C_DnShadow > C_ShadowPercent / 100 * C_Body
C_WhiteBody = open < close
C_BlackBody = open > close
C_Range = high - low
C_IsInsideBar = C_BodyHi > C_BodyHi and C_BodyLo < C_BodyLo
C_BodyMiddle = C_Body / 2 + C_BodyLo
C_ShadowEquals = C_UpShadow == C_DnShadow or math.abs(C_UpShadow - C_DnShadow) / C_DnShadow * 100 < C_ShadowEqualsPercent and math.abs(C_DnShadow - C_UpShadow) / C_UpShadow * 100 < C_ShadowEqualsPercent
C_IsDojiBody = C_Range > 0 and C_Body <= C_Range * C_DojiBodyPercent / 100
C_Doji = C_IsDojiBody and C_ShadowEquals
patternLabelPosLow = low - ta.atr(30) * 0.6
patternLabelPosHigh = high + ta.atr(30) * 0.6
label_color_bullish = color.blue
C_EngulfingBullishNumberOfCandles = 2
C_EngulfingBullish = C_DownTrend and C_WhiteBody and C_LongBody and C_BlackBody and C_SmallBody and close >= open and open <= close and (close > open or open < close )
if C_EngulfingBullish
var ttBullishEngulfing = 'Engulfing\nAt the end of a given downward trend, there will most likely be a reversal pattern. To distinguish the first day, this candlestick pattern uses a small body, followed by a day where the candle body fully overtakes the body from the day before, and closes in the trend’s opposite direction. Although similar to the outside reversal chart pattern, it is not essential for this pattern to completely overtake the range (high to low), rather only the open and the close.'
ttBullishEngulfing
//label.new(bar_index, patternLabelPosLow, text="BE", style=label.style_label_up, color = label_color_bullish, textcolor=color.white, tooltip = ttBullishEngulfing)
//bgcolor(highest(C_EngulfingBullish?1:0, C_EngulfingBullishNumberOfCandles)!=0 ? color.blue : na, offset=-(C_EngulfingBullishNumberOfCandles-1))
//Bearish Engulfing
label_color_bearish = color.red
C_EngulfingBearishNumberOfCandles = 2
C_EngulfingBearish = C_UpTrend and C_BlackBody and C_LongBody and C_WhiteBody and C_SmallBody and close <= open and open >= close and (close < open or open > close )
if C_EngulfingBearish
var ttBearishEngulfing = 'Engulfing\nAt the end of a given uptrend, a reversal pattern will most likely appear. During the first day, this candlestick pattern uses a small body. It is then followed by a day where the candle body fully overtakes the body from the day before it and closes in the trend’s opposite direction. Although similar to the outside reversal chart pattern, it is not essential for this pattern to fully overtake the range (high to low), rather only the open and the close.'
ttBearishEngulfing
//label.new(bar_index, patternLabelPosHigh, text="BE", style=label.style_label_down, color = label_color_bearish, textcolor=color.white, tooltip = ttBearishEngulfing)
//bgcolor(highest(C_EngulfingBearish?1:0, C_EngulfingBearishNumberOfCandles)!=0 ? color.red : na, offset=-(C_EngulfingBearishNumberOfCandles-1))
//END▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
////////////////////////////////////////////////////////////////////////////////
//SIGNAL SCORES▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
//Alternate Signals Option
alternatesignals = input(title='Alternate Signals', defval=true)
//Position Options
longpositions = input(title='Long Positions', defval=true)
shortpositions = input(title='Short Positions', defval=true)
//Stop Loss Warning Option
stoplosspercent = input.float(title='Stop Loss Warning (%)', defval=-2.5, minval=-50, maxval=0, step=.1) / 100
//Score Requirements
stronglongscore = input.int(defval=10, minval=0, maxval=1000, title='Required Strong LONG Score')
strongshortscore = input.int(defval=10, minval=0, maxval=1000, title='Required Strong SHORT Score')
weaklongscore = input.int(defval=8, minval=0, maxval=1000, title='Required Weak LONG Score')
weakshortscore = input.int(defval=8, minval=0, maxval=1000, title='Required Weak SHORT Score')
//Trend Indicator Signals///////////////////////////////////////////////////////
//EMA Signals
emadirectionimportance = input.int(defval=2, minval=0, maxval=100, title='EMA Trend Direction Importance')
emadirectionup = out5 < close ? emadirectionimportance : 0
emadirectionupstatus = emadirectionup ? 'EMA Trend Direction Up' : na
emadirectiondown = out5 > close ? emadirectionimportance : 0
emadirectiondownstatus = emadirectiondown ? 'EMA Trend Direction Down' : na
emapushpullimportance = input.int(defval=2, minval=0, maxval=100, title='EMA Pressure Importance')
emapushup = out2 > out2 and out3 < out3 ? emapushpullimportance : 0
emapushupstatus = emapushup ? 'EMA Pushing Up' : na
emapulldown = out2 < out2 and out3 > out3 ? emapushpullimportance : 0
emapulldownstatus = emapulldown ? 'EMA Pulling Down' : na
//Super Trend Signals
supertrenddirimportance = input.int(defval=0, minval=0, maxval=100, title='SuperTrend Direction Importance')
supertrendup = direction < 0 ? supertrenddirimportance : 0
supertrendupstatus = supertrendup ? 'SuperTrend Direction Up' : na
supertrenddown = direction > 0 ? supertrenddirimportance : 0
supertrenddownstatus = supertrenddown ? 'SuperTrend Direction Down' : na
supertrendrevimportance = input.int(defval=4, minval=0, maxval=100, title='SuperTrend Reversal Importance')
supertrendrevup = direction < 0 and direction > 0 ? supertrendrevimportance : 0
supertrendrevupstatus = supertrendrevup ? 'SuperTrend Reversed Up' : na
supertrendrevdown = direction > 0 and direction < 0 ? supertrendrevimportance : 0
supertrendrevdownstatus = supertrendrevdown ? 'SuperTrend Reversed Down' : na
//Parabolic SAR Signals
psardirimportance = input.int(defval=0, minval=0, maxval=100, title='Parabolic SAR Direction Importance')
psardirup = psar < close ? psardirimportance : 0
psardirupstatus = psardirup ? 'PSAR Direction Up' : na
psardirdown = psar > close ? psardirimportance : 0
psardirdownstatus = psardirdown ? 'PSAR Direction Down' : na
psarrevimportance = input.int(defval=3, minval=0, maxval=100, title='Parabolic SAR Reversal Importance')
psarrevup = psar < close and psar > close ? psarrevimportance : 0
psarrevupstatus = psarrevup ? 'PSAR Reversed Up' : na
psarrevdown = psar > close and psar < close ? psarrevimportance : 0
psarrevdownstatus = psarrevdown ? 'PSAR Reversed Down' : na
//HMA Signals
hmacloseposimportance = input.int(defval=1, minval=0, maxval=100, title='HMA Trend Direction Importance')
hmacloseposup = hma < close and hma ? hmacloseposimportance : 0
hmacloseposupstatus = hmacloseposup ? 'Price Crossed Over HMA' : na
hmacloseposdown = hma > close ? hmacloseposimportance : 0
hmacloseposdownstatus = hmacloseposdown ? 'Price Crossed Under HMA' : na
hmapivotimportance = input.int(defval=3, minval=0, maxval=100, title='HMA Pivot Importance')
hmapivotup = hma > hma and hma < hma ? hmapivotimportance : 0
hmapivotupstatus = hmapivotup ? 'HMA Pivot Up' : na
hmapivotdown = hma < hma and hma > hma ? hmapivotimportance : 0
hmapivotdownstatus = hmapivotdown ? 'HMA Pivot Down' : na
//Momentum Indicator Signals////////////////////////////////////////////////////
//RSI Signals
rsidivimportance = input.int(defval=4, minval=0, maxval=100, title='RSI Divergence Importance')
rsidivup = bullCond11 or bullCond11 or bullCond11 ? rsidivimportance : 0
rsidivupstatus = rsidivup ? 'Bullish RSI Divergence' : na
rsidivdown = bearCond11 or bearCond11 or bearCond11 ? rsidivimportance : 0
rsidivdownstatus = rsidivdown ? 'Bearish RSI Divergence' : na
rsilevelimportance = input.int(defval=0, minval=0, maxval=100, title='RSI Level Importance')
rsioversold = osc11 < 30 ? rsilevelimportance : 0
rsioversoldstatus = rsioversold ? 'RSI Oversold' : na
rsioverbought = osc11 > 70 ? rsilevelimportance : 0
rsioverboughtstatus = rsioverbought ? 'RSI Overbought' : na
rsidirectionimportance = input.int(defval=1, minval=0, maxval=100, title='RSI Cross 50-Line Importance')
rsicrossup = osc11 > 50 and osc11 < 50 or osc11 > 50 and osc11 < 50 ? rsidirectionimportance : 0
rsicrossupstatus = rsicrossup ? 'RSI Crossed 50-Line Up' : na
rsicrossdown = osc11 < 50 and osc11 > 50 or osc11 < 50 and osc11 > 50 ? rsidirectionimportance : 0
rsicrossdownstatus = rsicrossdown ? 'RSI Crossed 50-Line Down' : na
//MACD Signals
macddivimportance = input.int(defval=0, minval=0, maxval=100, title='MACD Divergence Importance')
macddivup = bullCond12 or bullCond12 or bullCond12 ? macddivimportance : 0
macddivupstatus = macddivup ? 'Bullish MACD Divergence' : na
macddivdown = bearCond12 or bearCond12 or bearCond12 ? macddivimportance : 0
macddivdownstatus = macddivdown ? 'Bearish MACD Divergence' : na
histpivotimportance = input.int(defval=1, minval=0, maxval=100, title='MACD Histogram Pivot Importance')
histpivotup = hist > hist and hist < hist and hist < 0 ? histpivotimportance : 0
histpivotupstatus = histpivotup ? 'MACD Histogram Pivot Up' : na
histpivotdown = hist < hist and hist > hist and hist > 0 ? histpivotimportance : 0
histpivotdownstatus = histpivotdown ? 'MACD Histogram Pivot Down' : na
macdcrosssignalimportance = input.int(defval=1, minval=0, maxval=100, title='MACD Cross Signal Importance')
macdcrosssignalup = macd > signal and macd < signal and signal < 0 ? macdcrosssignalimportance : 0
macdcrosssignalupstatus = macdcrosssignalup ? 'MACD Crossed Signal Up' : na
macdcrosssignaldown = macd < signal and macd > signal and signal > 0 ? macdcrosssignalimportance : 0
macdcrosssignaldownstatus = macdcrosssignaldown ? 'MACD Crossed Signal Down' : na
//WaveTrend Signals
wtdivimportance = input.int(defval=0, minval=0, maxval=100, title='WaveTrend Divergence Importance')
wtdivup = bullCond13 or bullCond13 or bullCond13 ? wtdivimportance : 0
wtdivupstatus = wtdivup ? 'Bullish WaveTrend Divergence' : na
wtdivdown = bearCond13 or bearCond13 or bearCond13 ? wtdivimportance : 0
wtdivdownstatus = wtdivdown ? 'Bearish WaveTrend Divergence' : na
wtcrosssignalimportance = input.int(defval=4, minval=0, maxval=100, title='WaveTrend Cross Signal Importance')
wtcrosssignalup = wt1 > wt2 and wt1 < wt2 and wt2 < -10 ? wtcrosssignalimportance : 0
wtcrosssignalupstatus = wtcrosssignalup ? 'WaveTrend Crossed Signal Up' : na
wtcrosssignaldown = wt1 < wt2 and wt1 > wt2 and wt2 > 10 ? wtcrosssignalimportance : 0
wtcrosssignaldownstatus = wtcrosssignaldown ? 'WaveTrend Crossed Signal Down' : na
//Stochastic Signals
sdivimportance = input.int(defval=1, minval=0, maxval=100, title='Stochastic Divergence Importance')
sdivup = bullCond14 or bullCond14 or bullCond14 ? sdivimportance : 0
sdivupstatus = sdivup ? 'Bullish Stoch Divergence' : na
sdivdown = bearCond14 or bearCond14 or bearCond14 ? sdivimportance : 0
sdivdownstatus = sdivdown ? 'Bearish Stoch Divergence' : na
scrosssignalimportance = input.int(defval=1, minval=0, maxval=100, title='Stoch Cross Signal Importance')
scrosssignalup = k14 > d14 and k14 < d14 ? scrosssignalimportance : 0
scrosssignalupstatus = scrosssignalup ? 'Stoch Crossed Signal Up' : na
scrosssignaldown = k14 < d14 and k14 > d14 ? scrosssignalimportance : 0
scrosssignaldownstatus = scrosssignaldown ? 'Stoch Crossed Signal Down' : na
//Volatility Indicators/////////////////////////////////////////////////////////
//Bollinger Bands Signals
bbcontimportance = input.int(defval=0, minval=0, maxval=100, title='BollingerBands Contact Importance')
bbcontup = close < lower ? bbcontimportance : 0
bbcontupstatus = bbcontup ? 'Price Contacted Lower BB' : na
bbcontdown = open > upper ? bbcontimportance : 0
bbcontdownstatus = bbcontdown ? 'Price Contacted Upper BB' : na
//Average True Range Signals
atrrevimportance = input.int(defval=1, minval=0, maxval=100, title='ATR Reversal Importance')
atrrevup = buySignal ? atrrevimportance : 0
atrrevupstatus = atrrevup ? 'ATR Reversed Up' : na
atrrevdown = sellSignal ? atrrevimportance : 0
atrrevdownstatus = atrrevdown ? 'ATR Reversed Down' : na
//Relative Volatility Index Signals
rviposimportance = input.int(defval=3, minval=0, maxval=100, title='RVI Position Importance')
rviposup = rvi > 25 and rvi < 40 ? rviposimportance : 0
rviposupstatus = rviposup ? 'RVI Volatility Increasing' : na
rviposdown = rvi < 75 and rvi > 60 ? rviposimportance : 0
rviposdownstatus = rviposdown ? 'RVI Volatility Decreasing' : na
rvidivimportance = input.int(defval=4, minval=0, maxval=100, title='RVI Divergence Importance')
rvidivup = bullCond15 or bullCond15 or bullCond15 ? rvidivimportance : 0
rvidivupstatus = rvidivup ? 'Bullish RVI Divergence' : na
rvidivdown = bearCond15 or bearCond15 or bearCond15 ? rvidivimportance : 0
rvidivdownstatus = rvidivdown ? 'Bearish RVI Divergence' : na
//Support and Resistance Signals
srcrossimportance = input.int(defval=0, minval=0, maxval=100, title='Support/Resistance Cross Importance')
srcrossup = buy1 or buy2 or buy3 or buy4 or buy5 or buy6 or buy7 or buy8 ? srcrossimportance : 0
srcrossupstatus = srcrossup ? 'Crossed Key Level Up' : na
srcrossdown = sell1 or sell2 or sell3 or sell4 or sell5 or sell6 or sell7 or sell8 ? srcrossimportance : 0
srcrossdownstatus = srcrossdown ? 'Crossed Key Level Down' : na
//Volume Indicator Signals//////////////////////////////////////////////////////
//On Balance Volume Divergence Signals
obvdivimportance = input.int(defval=0, minval=0, maxval=100, title='OBV Divergence Importance')
obvdivup = bullCond18 or bullCond18 or bullCond18 ? obvdivimportance : 0
obvdivupstatus = obvdivup ? 'Bullish OBV Divergence' : na
obvdivdown = bearCond18 or bearCond18 or bearCond18 ? obvdivimportance : 0
obvdivdownstatus = obvdivdown ? 'Bearish OBV Divergence' : na
//Chaikin Money Flow Signals
cmfcrossimportance = input.int(defval=0, minval=0, maxval=100, title='CMF Cross 50-Line Importance')
cmfcrossup = cmf > 0 and cmf < 0 ? cmfcrossimportance : 0
cmfcrossupstatus = cmfcrossup ? 'CMF Crossed 50-Line Up' : na
cmfcrossdown = cmf < 0 and cmf > 0 ? cmfcrossimportance : 0
cmfcrossdownstatus = cmfcrossdown ? 'CMF Crossed 50-Line Down' : na
cmflevimportance = input.int(defval=0, minval=0, maxval=100, title='CMF Level Importance')
cmflevup = cmf > 0 ? cmflevimportance : 0
cmflevupstatus = cmflevup ? 'CMF Level Up' : na
cmflevdown = cmf < 0 ? cmflevimportance : 0
cmflevdownstatus = cmflevdown ? 'CMF Level Down' : na
//VWAP Signals
vwapcrossimportance = input.int(defval=0, minval=0, maxval=100, title='VWAP Cross HMA Importance')
vwapcrossup = hma < vwapValue and hma > vwapValue ? vwapcrossimportance : 0
vwapcrossupstatus = vwapcrossup ? 'VWAP Crossed Above HMA' : na
vwapcrossdown = hma > vwapValue and hma < vwapValue ? vwapcrossimportance : 0
vwapcrossdownstatus = vwapcrossdown ? 'VWAP Crossed Below HMA' : na
vwaptrendimportance = input.int(defval=0, minval=0, maxval=100, title='VWAP Trend Importance')
vwaptrendup = out2 > vwapValue ? vwaptrendimportance : 0
vwaptrendupstatus = vwaptrendup ? 'VWAP Up Trend' : na
vwaptrenddown = out2 < vwapValue ? vwaptrendimportance : 0
vwaptrenddownstatus = vwaptrenddown ? 'VWAP Down Trend' : na
//Candle Patterns Signals
engulfingcandleimportance = input.int(defval=0, minval=0, maxval=100, title='Engulfing Candle Importance')
bulleng = C_EngulfingBullish ? engulfingcandleimportance : 0
bullengstatus = bulleng ? 'Bullish Engulfing Candle' : na
beareng = C_EngulfingBearish ? engulfingcandleimportance : 0
bearengstatus = beareng ? 'Bearish Engulfing Candle' : na
//END▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
////////////////////////////////////////////////////////////////////////////////
//COLLECT SIGNALS▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
//Classify Entries
stronglongentrysignal = emadirectionup + emapushup + supertrendup + supertrendrevup + psardirup + psarrevup + hmacloseposup + hmapivotup + rsidivup + rsioversold + rsicrossup + macddivup + histpivotup + macdcrosssignalup + wtdivup + wtcrosssignalup + sdivup + scrosssignalup + bbcontup + atrrevup + rviposup + rvidivup + srcrossup + obvdivup + cmfcrossup + cmflevup + vwapcrossup + vwaptrendup + bulleng >= stronglongscore
strongshortentrysignal = emadirectiondown + emapulldown + supertrenddown + supertrendrevdown + psardirdown + psarrevdown + hmacloseposdown + hmapivotdown + rsidivdown + rsioverbought + rsicrossdown + macddivdown + histpivotdown + macdcrosssignaldown + wtdivdown + wtcrosssignaldown + sdivdown + scrosssignaldown + bbcontdown + atrrevdown + rviposdown + rvidivdown + srcrossdown + obvdivdown + cmfcrossdown + cmflevdown + vwapcrossdown + vwaptrenddown + beareng >= strongshortscore
weaklongentrysignal = emadirectionup + emapushup + supertrendup + supertrendrevup + psardirup + psarrevup + hmacloseposup + hmapivotup + rsidivup + rsioversold + rsicrossup + macddivup + histpivotup + macdcrosssignalup + wtdivup + wtcrosssignalup + sdivup + scrosssignalup + bbcontup + atrrevup + rviposup + rvidivup + srcrossup + obvdivup + cmfcrossup + cmflevup + vwapcrossup + vwaptrendup + bulleng >= weaklongscore
weakshortentrysignal = emadirectiondown + emapulldown + supertrenddown + supertrendrevdown + psardirdown + psarrevdown + hmacloseposdown + hmapivotdown + rsidivdown + rsioverbought + rsicrossdown + macddivdown + histpivotdown + macdcrosssignaldown + wtdivdown + wtcrosssignaldown + sdivdown + scrosssignaldown + bbcontdown + atrrevdown + rviposdown + rvidivdown + srcrossdown + obvdivdown + cmfcrossdown + cmflevdown + vwapcrossdown + vwaptrenddown + beareng >= weakshortscore
//Alternate Entry Signals
var pos = 0
if stronglongentrysignal and pos <= 0
pos := 1
pos
if strongshortentrysignal and pos >= 0
pos := -1
pos
longentry = pos == 1 and (pos != 1)
shortentry = pos == -1 and (pos != -1)
alternatelong = alternatesignals ? longentry : stronglongentrysignal
alternateshort = alternatesignals ? shortentry : strongshortentrysignal
//END▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
////////////////////////////////////////////////////////////////////////////////
//PLOT SIGNALS▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
plotshape(tradetrendoption ? alternatelong and mabuy : alternatelong, title='Strong Long Label', style=shape.labelup, location=location.belowbar, color=color.new(#00bcd4, 0), text='𝐋𝐎𝐍𝐆', textcolor=color.new(color.white, 0), size=size.small)
plotshape(tradetrendoption ? alternateshort and masell : alternateshort, title='Strong Short Label', style=shape.labeldown, location=location.abovebar, color=color.new(#e91e63, 0), text='𝐒𝐇𝐎𝐑𝐓', textcolor=color.new(color.white, 0), size=size.small)
plotshape(weaklongentrysignal, title='Weak Long Triangle', style=shape.triangleup, location=location.belowbar, color=color.new(#00bcd4, 50), size=size.tiny)
plotshape(weakshortentrysignal, title='Weak Short Triangle', style=shape.triangledown, location=location.abovebar, color=color.new(#e91e63, 50), size=size.tiny)
//END▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
////////////////////////////////////////////////////////////////////////////////
//PLOT STATUS▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
var table statuswindow = table.new(position.top_right, 100, 100, border_width=2)
//Trend Status//////////////////////////////////////////////////////////////////
txt1 = '🡇 TREND 🡇'
table.cell(statuswindow, 3, 0, text=txt1, bgcolor=color.new(#000000, 50), text_color=color.white, text_size=size.small)
//EMA Status
if emadirectionup
table.cell(statuswindow, 3, 1, text=str.tostring(emadirectionupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if emadirectiondown
table.cell(statuswindow, 3, 1, text=str.tostring(emadirectiondownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if emapushup ? 1 : na
table.cell(statuswindow, 3, 2, text=str.tostring(emapushupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if emapushup ? na : 1
table.clear(statuswindow, 3, 2)
if emapulldown ? 1 : na
table.cell(statuswindow, 3, 3, text=str.tostring(emapulldownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if emapulldown ? na : 1
table.clear(statuswindow, 3, 3)
//SuperTrend Status
if supertrendup
table.cell(statuswindow, 3, 4, text=str.tostring(supertrendupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if supertrenddown
table.cell(statuswindow, 3, 4, text=str.tostring(supertrenddownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if supertrendrevup ? 1 : na
table.cell(statuswindow, 3, 5, text=str.tostring(supertrendrevupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if supertrendrevup ? na : 1
table.clear(statuswindow, 3, 5)
if supertrendrevdown ? 1 : na
table.cell(statuswindow, 3, 6, text=str.tostring(supertrendrevdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if supertrendrevdown ? na : 1
table.clear(statuswindow, 3, 6)
//Parabolic SAR Status
if psardirup
table.cell(statuswindow, 3, 7, text=str.tostring(psardirupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if psardirdown
table.cell(statuswindow, 3, 7, text=str.tostring(psardirdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if psarrevup ? 1 : na
table.cell(statuswindow, 3, 8, text=str.tostring(psarrevupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if psarrevup ? na : 1
table.clear(statuswindow, 3, 8)
if psarrevdown ? 1 : na
table.cell(statuswindow, 3, 9, text=str.tostring(psarrevdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if psarrevdown ? na : 1
table.clear(statuswindow, 3, 9)
//HMA Status
if hmacloseposup
table.cell(statuswindow, 3, 10, text=str.tostring(hmacloseposupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if hmacloseposdown
table.cell(statuswindow, 3, 10, text=str.tostring(hmacloseposdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if hmapivotup ? 1 : na
table.cell(statuswindow, 3, 11, text=str.tostring(hmapivotupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if hmapivotup ? na : 1
table.clear(statuswindow, 3, 11)
if hmapivotdown ? 1 : na
table.cell(statuswindow, 3, 12, text=str.tostring(hmapivotdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if hmapivotdown ? na : 1
table.clear(statuswindow, 3, 12)
//Momentum Status///////////////////////////////////////////////////////////////
txt2 = '🡇 MOMENTUM 🡇'
table.cell(statuswindow, 2, 0, text=txt2, bgcolor=color.new(#000000, 50), text_color=color.white, text_size=size.small)
//RSI Status
if rsidivup ? 1 : na
table.cell(statuswindow, 2, 1, text=str.tostring(rsidivupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if rsidivup ? na : 1
table.clear(statuswindow, 2, 1)
if rsidivdown ? 1 : na
table.cell(statuswindow, 2, 2, text=str.tostring(rsidivdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if rsidivdown ? na : 1
table.clear(statuswindow, 2, 2)
if rsioversold ? 1 : na
table.cell(statuswindow, 2, 3, text=str.tostring(rsioversoldstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if rsioversold ? na : 1
table.clear(statuswindow, 2, 3)
if rsioverbought ? 1 : na
table.cell(statuswindow, 2, 4, text=str.tostring(rsioverboughtstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if rsioverbought ? na : 1
table.clear(statuswindow, 2, 4)
if rsicrossup ? 1 : na
table.cell(statuswindow, 2, 5, text=str.tostring(rsicrossupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if rsicrossup ? na : 1
table.clear(statuswindow, 2, 5)
if rsicrossdown ? 1 : na
table.cell(statuswindow, 2, 6, text=str.tostring(rsicrossdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if rsicrossdown ? na : 1
table.clear(statuswindow, 2, 6)
//MACD Status
if macddivup ? 1 : na
table.cell(statuswindow, 2, 7, text=str.tostring(macddivupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if macddivup ? na : 1
table.clear(statuswindow, 2, 7)
if macddivdown ? 1 : na
table.cell(statuswindow, 2, 8, text=str.tostring(macddivdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if macddivdown ? na : 1
table.clear(statuswindow, 2, 8)
if histpivotup ? 1 : na
table.cell(statuswindow, 2, 9, text=str.tostring(histpivotupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if histpivotup ? na : 1
table.clear(statuswindow, 2, 9)
if histpivotdown ? 1 : na
table.cell(statuswindow, 2, 10, text=str.tostring(histpivotdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if histpivotdown ? na : 1
table.clear(statuswindow, 2, 10)
if macdcrosssignalup ? 1 : na
table.cell(statuswindow, 2, 11, text=str.tostring(macdcrosssignalupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if macdcrosssignalup ? na : 1
table.clear(statuswindow, 2, 11)
if macdcrosssignaldown ? 1 : na
table.cell(statuswindow, 2, 12, text=str.tostring(macdcrosssignaldownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if macdcrosssignaldown ? na : 1
table.clear(statuswindow, 2, 12)
//Wave Trend Status
if wtdivup ? 1 : na
table.cell(statuswindow, 2, 13, text=str.tostring(wtdivupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if wtdivup ? na : 1
table.clear(statuswindow, 2, 13)
if wtdivdown ? 1 : na
table.cell(statuswindow, 2, 14, text=str.tostring(wtdivdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if wtdivdown ? na : 1
table.clear(statuswindow, 2, 14)
if wtcrosssignalup ? 1 : na
table.cell(statuswindow, 2, 15, text=str.tostring(wtcrosssignalupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if wtcrosssignalup ? na : 1
table.clear(statuswindow, 2, 15)
if wtcrosssignaldown ? 1 : na
table.cell(statuswindow, 2, 16, text=str.tostring(wtcrosssignaldownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if wtcrosssignaldown ? na : 1
table.clear(statuswindow, 2, 16)
//Stochastic Status
if sdivup ? 1 : na
table.cell(statuswindow, 2, 17, text=str.tostring(sdivupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if sdivup ? na : 1
table.clear(statuswindow, 2, 17)
if sdivdown ? 1 : na
table.cell(statuswindow, 2, 18, text=str.tostring(sdivdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if sdivdown ? na : 1
table.clear(statuswindow, 2, 18)
if scrosssignalup ? 1 : na
table.cell(statuswindow, 2, 19, text=str.tostring(scrosssignalupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if scrosssignalup ? na : 1
table.clear(statuswindow, 2, 19)
if scrosssignaldown ? 1 : na
table.cell(statuswindow, 2, 20, text=str.tostring(scrosssignaldownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if scrosssignaldown ? na : 1
table.clear(statuswindow, 2, 20)
//Volatility Status/////////////////////////////////////////////////////////////////
txt3 = '🡇 VOLATILITY 🡇'
table.cell(statuswindow, 1, 0, text=txt3, bgcolor=color.new(#000000, 50), text_color=color.white, text_size=size.small)
//Bollinger Bands Status
if bbcontup ? 1 : na
table.cell(statuswindow, 1, 1, text=str.tostring(bbcontupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if bbcontup ? na : 1
table.clear(statuswindow, 1, 1)
if bbcontup ? 1 : na
table.cell(statuswindow, 1, 2, text=str.tostring(bbcontdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if bbcontdown ? na : 1
table.clear(statuswindow, 1, 2)
//ATR Status
if atrrevup ? 1 : na
table.cell(statuswindow, 1, 3, text=str.tostring(atrrevupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if atrrevup ? na : 1
table.clear(statuswindow, 1, 3)
if atrrevdown ? 1 : na
table.cell(statuswindow, 1, 4, text=str.tostring(atrrevdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if atrrevdown ? na : 1
table.clear(statuswindow, 1, 4)
//RVI Status
if rviposup ? 1 : na
table.cell(statuswindow, 1, 5, text=str.tostring(rviposupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if rviposup ? na : 1
table.clear(statuswindow, 1, 5)
if rviposdown ? 1 : na
table.cell(statuswindow, 1, 6, text=str.tostring(rviposdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if rviposdown ? na : 1
table.clear(statuswindow, 1, 6)
if rvidivup ? 1 : na
table.cell(statuswindow, 1, 7, text=str.tostring(rvidivupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if rvidivup ? na : 1
table.clear(statuswindow, 1, 7)
if rvidivdown ? 1 : na
table.cell(statuswindow, 1, 8, text=str.tostring(rvidivdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if rvidivdown ? na : 1
table.clear(statuswindow, 1, 8)
//Support and Resistance Status
if srcrossup ? 1 : na
table.cell(statuswindow, 1, 9, text=str.tostring(srcrossupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if srcrossup ? na : 1
table.clear(statuswindow, 1, 9)
if srcrossdown ? 1 : na
table.cell(statuswindow, 1, 10, text=str.tostring(srcrossdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if srcrossdown ? na : 1
table.clear(statuswindow, 1, 10)
//Volume Status/////////////////////////////////////////////////////////////////
txt4 = '🡇 VOLUME 🡇'
table.cell(statuswindow, 0, 0, text=txt4, bgcolor=color.new(#000000, 50), text_color=color.white, text_size=size.small)
//On Balance Volume Status
if obvdivup ? 1 : na
table.cell(statuswindow, 0, 1, text=str.tostring(obvdivupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if obvdivup ? na : 1
table.clear(statuswindow, 0, 1)
if obvdivdown ? 1 : na
table.cell(statuswindow, 0, 2, text=str.tostring(obvdivdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if obvdivdown ? na : 1
table.clear(statuswindow, 0, 2)
//Chaikin Money Flow Status
if cmfcrossup ? 1 : na
table.cell(statuswindow, 0, 3, text=str.tostring(cmfcrossupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if cmfcrossup ? na : 1
table.clear(statuswindow, 0, 3)
if cmfcrossdown ? 1 : na
table.cell(statuswindow, 0, 4, text=str.tostring(cmfcrossdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if cmfcrossdown ? na : 1
table.clear(statuswindow, 0, 4)
if cmflevup ? 1 : na
table.cell(statuswindow, 0, 5, text=str.tostring(cmflevupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if cmflevdown ? 1 : na
table.cell(statuswindow, 0, 5, text=str.tostring(cmflevdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
//VWAP Status
if vwapcrossup ? 1 : na
table.cell(statuswindow, 0, 6, text=str.tostring(vwapcrossupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if vwapcrossup ? na : 1
table.clear(statuswindow, 0, 6)
if vwapcrossdown ? 1 : na
table.cell(statuswindow, 0, 7, text=str.tostring(vwapcrossdownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
if vwapcrossdown ? na : 1
table.clear(statuswindow, 0, 7)
if vwaptrendup ? 1 : na
table.cell(statuswindow, 0, 8, text=str.tostring(vwaptrendupstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if vwaptrenddown ? 1 : na
table.cell(statuswindow, 0, 8, text=str.tostring(vwaptrenddownstatus), bgcolor=color.new(#e91e63, 50), text_color=color.white, text_size=size.small)
//Candle Pattern Status
if bulleng ? 1 : na
table.cell(statuswindow, 0, 9, text=str.tostring(bullengstatus), bgcolor=color.new(#00bcd4, 50), text_color=color.white, text_size=size.small)
if bulleng ? na : 1
table.clear(statuswindow, 0
Prueba 1 ia botPrueba:
//@version=5
strategy("Trading Strategy with Bollinger Bands, MACD, KST, and EMA Rotation", overlay=true)
// Bollinger Bands
length = input(20, minval=1, title="BB Length")
mult = input(2.0, minval=0.1, title="BB Mult")
source = close
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
// MACD
= macd(close, 12, 26, 9)
// KST
kst = kst(close)
// EMA Rotation
ema3 = ema(close, 3)
ema9 = ema(close, 9)
ema20 = ema(close, 20)
ema50 = ema(close, 50)
ema200 = ema(close, 200)
// Positive and Negative Rotation
positiveRotation = ema3 > ema9 and ema9 > ema20 and ema20 > ema50 and ema50 > ema200
negativeRotation = ema3 < ema9 and ema9 < ema20 and ema20 < ema50 and ema50 < ema200
// Entry Conditions
enterLong = crossover(macdLine, signalLine) and close > upper and kst > 0 and positiveRotation
enterShort = crossunder(macdLine, signalLine) and close < lower and kst < 0 and negativeRotation
// Exit Conditions
exitLong = crossunder(macdLine, signalLine) or close < lower
exitShort = crossover(macdLine, signalLine) or close > upper
// Strategy Execution
strategy.entry("Long", strategy.long, when=enterLong)
strategy.entry("Short", strategy.short, when=enterShort)
strategy.close("Long", when=exitLong)
strategy.close("Short", when=exitShort)
// Plotting
plot(upper, color=color.blue)
plot(lower, color=color.blue)
plot(macdLine, color=color.orange)
plot(signalLine, color=color.red)
plot(kst, color=color.green)
Bitcoin hoy: ¿qué esperar en ambos escenarios?Veamos ambos escenarios para determinar puntos clave de BTC.
Escenario Alcista
Soportes Clave:
$70000: Este nivel actúa como soporte psicológico. Si el precio se mantiene sobre este valor, podría atraer compradores y consolidar el movimiento alcista.
$68000: Coincide con la media móvil de 99 periodos (MA99), lo que refuerza la zona como un soporte importante en caso de una corrección más profunda.
Resistencias Clave:
$73,620 USDT: Este es el máximo reciente registrado en el gráfico, y romper este nivel podría abrir las puertas a una nueva subida.
$75,000: Nivel psicológico importante, que también podría actuar como resistencia si el precio logra romper el máximo anterior.
Indicadores Técnicos:
Media Móvil de 25 Periodos (MA25): La MA25 se encuentra por encima de la MA99, lo cual es una señal positiva y sugiere una tendencia alcista en curso.
MACD: Aunque el MACD muestra una ligera corrección, todavía se encuentra en zona positiva. Un cruce al alza de las líneas de señal podría confirmar el siguiente movimiento alcista.
Stoch RSI: Actualmente está en niveles de sobreventa, lo cual podría sugerir que el precio podría estar próximo a un rebote si la presión compradora aumenta.
Escenario Alcista: Si BTC logra mantenerse sobre los $70,000 y el volumen de compra aumenta, es probable que veamos un nuevo intento de romper los $73,620. Un rompimiento exitoso podría llevar a BTC hacia los $75,000 o incluso más alto, especialmente si las medias móviles siguen apoyando la tendencia alcista.
Escenario Bajista
Soportes Clave:
$68,000: En caso de que BTC rompa el soporte de $70,000, este nivel podría actuar como el siguiente punto de soporte fuerte, debido a la presencia de la MA99.
$65000: Nivel importante donde anteriormente el precio ha encontrado soporte. Podría ser el próximo objetivo bajista si el precio continúa descendiendo.
Indicadores Técnicos:
MACD: La línea MACD está en tendencia descendente y ha cruzado su línea de señal, lo que sugiere una posible continuación de la corrección a corto plazo.
Stoch RSI: Aunque se encuentra en sobreventa, si no hay una recuperación, el precio podría seguir bajando en el corto plazo antes de encontrar soporte.
Escenario Bajista: Si BTC pierde el soporte de $70,000 con volumen bajista, podríamos ver un descenso hacia los $68,000 o incluso los $65,000. La ruptura de estos niveles sugeriría un cambio de tendencia en el corto plazo, con una posible continuación de la corrección.
Conclusión
Para confirmar cualquiera de estos escenarios, es importante observar cómo interactúa el precio con los niveles de soporte y resistencia y cómo reaccionan los indicadores, especialmente el volumen y el comportamiento del MACD. Mantente atento a los niveles de $70,000 y $73,620 como claves para los movimientos futuros.
Agotamiento de la Fuerza del DAX (truco para adelantarte)Hola Traders,
Hoy vamos a analizar el DAX, uno de los índices bursátiles más importantes de Europa.
Estamos observando señales de agotamiento en su fuerza ascendente, especialmente con la aparición de divergencias bajistas en el MACD. Este análisis es crucial para todos los traders que buscan anticiparse a los movimientos del mercado y aprovechar las oportunidades.
Análisis Técnico del DAX
Los gráficos adjuntos muestran varias señales técnicas que indican un posible agotamiento de la tendencia alcista del DAX:
1. Divergencias en el MACD: Como se puede ver en el gráfico, el MACD está mostrando divergencias bajistas. Mientras que el precio ha alcanzado nuevos máximos, el MACD no lo ha acompañado, lo que suele ser una señal de que la fuerza de la tendencia actual está disminuyendo. Esto puede sugerir una corrección o un cambio de tendencia a corto plazo.
2. La línea del MACD:
De color Azul tiene que cortar al alza la línea del signal de color naranja, además tendría que romper con fuerza la resistencia que ha creado la divergencia como para considerarla cumplida.
De momento el escenario es justo al revés. Línea de MACD rompiendo fuerte a la baja y divergencia completamente vigente y en desarrollo, lo cual unido a las huellas de volumen nos da muchos datos de agotamiento alcista y posibilidad de un impulso bajista prominente.
3. Análisis de las Huellas de Volumen:
Los gráficos de huella de volumen nos permiten ver la distribución del volumen de compra y venta en cada nivel de precio. Este tipo de análisis es fundamental para entender la presión de compra y venta en el mercado. En el segundo gráfico, podemos observar que ha habido un volumen significativo de ventas en los últimos días, lo que respalda la hipótesis de un posible agotamiento de la tendencia alcista.
Interpretación de las Huellas de Volumen
Las huellas de volumen son una herramienta poderosa que pocos traders sabe usar para sacarle partido a la información del mercadofueron creadas específicamente para los traders que buscan entender la dinámica interna del mercado. Aquí te explico cómo interpretarlas en detalle:
Estructura de una Vela de Huella de Volumen
Cada vela en un gráfico de huella de volumen tiene varias partes que nos proporcionan información valiosa sobre la actividad del mercado:
1. Cuerpo de la Vela: Similar a las velas japonesas tradicionales, el cuerpo de la vela de huella de volumen muestra el rango de precios entre la apertura y el cierre para ese periodo. Un cuerpo verde indica que el precio de cierre fue más alto que el de apertura (indica una sesión alcista), mientras que un cuerpo rojo indica lo contrario (indica una sesión bajista).
2. Wicks o Sombras: Las líneas finas que salen del cuerpo de la vela muestran los precios más altos y más bajos alcanzados durante el periodo. Estas sombras también pueden proporcionar información sobre la volatilidad y las posibles resistencias o soportes.
3. Bloques de Volumen: Dentro del cuerpo de la vela, verás bloques que representan el volumen negociado a diferentes niveles de precios. Estos bloques están coloreados para mostrar si el volumen fue mayoritariamente de compra (verde) o de venta (rojo).
4. Delta de Volumen: En algunos gráficos de huella de volumen, verás una cifra llamada "delta", que es la diferencia entre el volumen de compras y ventas. Un delta positivo indica más compras que ventas y un delta negativo indica lo contrario.
Cómo Leer una Vela de Huella de Volumen
• Volumen Alto en la Parte Superior: Si ves un gran volumen de ventas (bloques rojos) en la parte superior de una vela, puede indicar que los vendedores están tomando control cerca de un nivel de resistencia.
• Volumen Alto en la Parte Inferior: Un gran volumen de compras (bloques verdes) en la parte inferior de una vela puede indicar que los compradores están defendiendo un nivel de soporte.
• Delta de Volumen: Un delta de volumen positivo junto con una vela verde fuerte puede reforzar la señal de una tendencia alcista, mientras que un delta negativo con una vela roja fuerte puede indicar una presión bajista.
Ejemplo con el Gráfico Adjunto
En el gráfico de huellas de volumen más reciente, observamos lo siguiente:
• 16 de junio: La vela muestra un delta negativo significativo (-863.672K) con un volumen total de 27,679M, indicando una fuerte presión de ventas. Esto sugiere que los vendedores dominaron ese día, empujando los precios a la baja.
• 17 de junio: A pesar de un delta negativo más bajo (-155.412K), el volumen total es considerablemente alto (33.808M), lo que indica una continuación de la presión bajista.
• 18 de junio: La vela muestra un delta negativo leve (-128.994K) con un volumen total de 5,191M, lo que podría sugerir un posible agotamiento de la presión de venta.
Oportunidades de Trading
Con base en estos análisis, los traders pueden considerar distintos escenarios:
• Posiciones Cortas: Si el DAX rompe soportes clave con un aumento en el volumen de ventas, podría ser una señal para considerar posiciones cortas.
• Hedging: Utilizar instrumentos derivados para proteger las posiciones largas existentes ante una posible corrección.
Conclusión
Es un momento clave para estar atentos a las señales técnicas del DAX . Las divergencias en el MACD y las huellas de volumen sugieren que podríamos estar ante un cambio en la tendencia.
Asegúrate de ajustar tus estrategias de trading en consecuencia y monitorear de cerca estos indicadores.
Como ves que marco dos posibles escenarios en el gráfico principal para ayudarte a dientificar cual de los patrones podría cumplirse de modo más sencillo así que guarda este post y consultado durante las proximas jornadas para ver si alguno de los escenarios se cumple de modo que puedas adelantarte a sus movientos, o al menos ¡¡estar preparado!!
No olvides compartir tus pensamientos y estrategias en los comentarios. ¡Me encantaría saber tu opinión, tu punto de vista! Si te ha gustado este análisis, no dudes en darle apoyo y guardarlo para hacer seguimiento al comportamiento del precio.
Javier Etcheverry
Head of Institutional Clients
*****************************************
La información facilitada no constituye un análisis de inversiones. El material no se ha elaborado de conformidad con los requisitos legales destinados a promover la independencia de los informes de inversiones y, como tal, debe considerarse una comunicación comercial.
Toda la información ha sido preparada por ActivTrades ("AT"). La información no contiene un registro de los precios de AT, o una oferta o solicitud de una transacción en cualquier instrumento financiero. Ninguna representación o garantía se da en cuanto a la exactitud o integridad de esta información.
Cualquier material proporcionado no tiene en cuenta el objetivo específico de inversión y la situación financiera de cualquier persona que pueda recibirlo. La rentabilidad pasada no es un indicador fiable de la rentabilidad futura. AT presta un servicio exclusivamente de ejecución. En consecuencia, toda persona que actúe sobre la base de la información facilitada lo hace por su cuenta y riesgo.
Desconfianza en México: impacto en el peso¡Hola Traders!
Hoy no era posible elegir tema, obligatoriamente toca hablar del dólar estadounidense contra el peso mexicano tras las recientes elecciones en México y su impacto en la economía. He querido esperar para corroborar el movimiento del peso frente al dólar y la respuesta no puede ser más clara. Además, ahondaremos en el concepto Deuda Vs Confianza
Impacto de las Elecciones en México
Las elecciones en México han generado una oleada de incertidumbre en los mercados. Los inversores reaccionan buscando refugio en monedas más seguras, como el dólar estadounidense. Veamos los puntos más destacados:
Desconfianza Económica:
La confianza en la economía mexicana se ha visto sacudida. La recuperación post-pandemia ha sido lenta, y factores como la corrupción y la inseguridad continúan siendo un lastre. Además, la deuda pública, aunque en términos nominales extremadamente baja comparada con otros países, es preocupante. Esta deuda depende en gran medida de la confianza en la capacidad del país para pagarla, y actualmente, este ratio está peligrosamente alto.
Deuda Vs Confianza:
Imagina que tienes un amigo, Pedro, que quiere pedir dinero prestado a un banco para comprar una casa. El banco decidirá cuánto dinero prestarle basándose en cuánto gana Pedro, cuánto gasta y cuánto le queda cada mes después de pagar sus gastos. Si el banco cree que Pedro puede devolver el dinero sin problemas, le prestará lo que necesita. Pero si el banco piensa que Pedro no podrá devolver el dinero, le prestará menos o nada.
Ahora, imagina esto a una escala más grande con un país en lugar de una persona. Los países también piden dinero prestado, pero lo hacen emitiendo bonos o deuda soberana. La cantidad de dinero que otros países o inversores están dispuestos a prestarles depende de cuán confiables crean que son para devolver el dinero.
Ejemplo Sencillo:
• Pedro : Pedro gana $10,000 al mes. Si quiere pedir prestados $3,000, el banco probablemente se lo prestará porque tiene suficiente dinero para pagar esa deuda cada mes.
• Antonio : Antonio gana $2,000 al mes, pero si quiere pedir prestados $1,500, el banco no se lo prestará porque no le quedará suficiente dinero para vivir después de pagar la deuda.
Aplicado a Países:
Cuando un país pide prestado, su capacidad para hacerlo de manera segura depende de su economía (como el salario de Pedro) y de la confianza que los prestamistas (bancos, otros países, inversores) tienen en que el país pueda devolver el dinero.
Deuda sobre el PIB:
• País A: Tiene una deuda del 50% de su PIB (Producto Interno Bruto, que es todo el dinero que el país gana en un año). Si los prestamistas no confían mucho en este país, esta deuda puede ser muy preocupante.
• País B: Tiene una deuda del 100% de su PIB. Sin embargo, si los prestamistas confían mucho en este país, esta deuda no es tan preocupante porque creen que el país puede manejarla y pagarla sin problemas.
La Clave: Confianza
La confianza es como la reputación de una persona. Si tienes una buena reputación, la gente confía en ti y está dispuesta a ayudarte más. Lo mismo pasa con los países: si tienen una buena reputación económica, pueden pedir prestado más dinero sin que sea un problema.
Entonces, incluso si un país tiene una deuda menor (como el 50% de su PIB), si los prestamistas no confían en que pueda pagarla, es más preocupante que un país con una deuda mayor (como el 100% de su PIB) que tiene una alta confianza de los prestamistas.
Resultados Electorales:
En las elecciones recientes, Claudia Sheinbaum, del partido Morena, ganó la presidencia con un margen impresionante. Morena y sus aliados, el Partido del Trabajo (PT) y el Partido Verde Ecologista de México (PVEM), obtuvieron una supermayoría en ambas cámaras del Congreso. Este resultado otorga un poder significativo para implementar reformas constitucionales sin necesidad de apoyo de la oposición (Mexico News Daily) mexiconewsdaily.com
Política Monetaria:
Las decisiones de la Reserva Federal de Estados Unidos de aumentar las tasas de interés para controlar la inflación han fortalecido al dólar. Si el Banco de México no responde con medidas similares, la diferencia de tasas de interés contribuye a la depreciación del peso.
Análisis Técnico del Gráfico
El gráfico muestra un claro repunte del dólar frente al peso mexicano, rompiendo la EMA de 200 días, un indicador de tendencia a largo plazo.
Patrones y Niveles Clave:
Ruptura de la Tendencia Descendente: Un cambio significativo en la dinámica del mercado.
Soporte y Resistencia: Los niveles de soporte anteriores ahora actúan como resistencia, confirmando la fuerza del movimiento alcista.
Divergencia Alcista del MACD: Indica un posible cambio de tendencia, respaldado por un cruce positivo en el MACD.
Indicadores Técnicos:
RSI (Índice de Fuerza Relativa): Lectura elevada, indicando posible sobrecompra.
MACD (Moving Average Convergence Divergence): Señal de compra reciente que refuerza la perspectiva alcista.
Conclusión
El reciente repunte del dólar frente al peso mexicano es un reflejo de la interacción compleja entre política, economía y psicología del mercado. La incertidumbre política y la frágil confianza económica han creado un escenario dinámico y emocionante. Mantente informado y ajusta tus estrategias de inversión para aprovechar al máximo los movimientos del mercado.
¿Qué te ha parecido este análisis? ¿Te ha sorprendido el comportamiento del peso? ¡Cuéntamelo y charlamos por aquí!
Javier Etcheverry
Head of Institutional Clients
***************************
La información facilitada no constituye un análisis de inversiones. El material no se ha elaborado de conformidad con los requisitos legales destinados a promover la independencia de los informes de inversiones y, como tal, debe considerarse una comunicación comercial. Toda la información ha sido preparada por ActivTrades ("AT"). La información no contiene un registro de los precios de AT, o una oferta o solicitud de una transacción en cualquier instrumento financiero. Ninguna representación o garantía se da en cuanto a la exactitud o integridad de esta información. Cualquier material proporcionado no tiene en cuenta el objetivo específico de inversión y la situación financiera de cualquier persona que pueda recibirlo. La rentabilidad pasada no es un indicador fiable de la rentabilidad futura. AT presta un servicio exclusivamente de ejecución. En consecuencia, toda persona que actúe sobre la base de la información facilitada lo hace por su cuenta y riesgo.
Probable retome de tendencia MORIBCBA:MORI
Buen día y bienvenidos a mi primera contribución (probablemente errada)
Estoy analizando MORI que fue uno de los primeros papeles por el cual aposté, si aposté porque tuvo cero análisis. Me hizo ganar unos mangos y no espantarme de la voracidad del mercado.
Después me fue mal con otros papeles y tuve que esperar para salir pero todo por mi falta de análisis.
En este caso, mejor preparado que hace un año cuando arranqué les comento que es lo que veo en el gráfico y ustedes compartirán o no mi perspectiva.
Acepto las correcciones que me propongan así fortalezco para próximos análisis.
Parto desde suponer que el papel se va a comportar de manera similar a lo que lo viene haciendo desde hace 2 años, mantiene una tendencia alcista, y corrigió lo suficiente para retomar la tendencia con la misma fuerza que lo hizo entre marzo y abril de 2020.
Luego del rebote que hizo en la primer corrección toco extensiones de Fibonacci haciendo máximo en el 2.618 en 5 semanas de alza. Luego de ello viene corrigiendo, perforó el 0.618 y desde que toco e 0.786 comenzó a subir 1 pesito con 80 hasta el cierre del viernes 28/05.
Creo que un buen punto de entrada puede ser en $15,966 coincidiendo con el 0.5 de Fibonacci. Si se comporta como se espera podemos tomar ganancias en lo $20 (máximo histórico) o esperar como se desarrolla y si se comporta como ya lo hizo anteriormente podemos proteger ganancias en $22, $25,1 y $33,3 retirando un 33% del capital en cada punto. Esto lo espero en las próximas 4 - 8 semanas.
Los indicadores que tengo en cuenta son los siguientes que dan señal de compra:
RSI: Por encima del 50% ya dio la señal y espera confirmación de la MACD.
Ichimoku: Vela dentro de la nube y cierre arriba del kijun.
EMA20: Está por superarla, ya cerró la semana por encima y viene apuntando para arriba (Mucho muy importante).
Indicadores que falta cumplir:
MACD: Esta casi casi a punto de cruzar la línea de señal y confirmar lo indicado por el RSI.
Fibonacci: Retrocedió el precio y reboto aún no llega al 0.5 pero casi que está sacando la cabeza.
NOTA: Estén atentos este arranque de semana y si se quieren subir a mi análisis espero que obtengan ganancias como espero hacerlo yo.
Bitcoin - análisis técnico: pronto nuevos máximos históricos Próximo objetivo a atacar son los 73 mil dólares pudiendo llevarnos a máximos históricos jamás registrados.
⭐️Análisis técnico:
Vela: Verde. Vela robusta. Alcista.
RSI: Sobreventa pero sigue alcista.
MACD: Alcista sobre cero.
EMA200: Alcista.
Ichimoku: Nube alcista. linea tendencia muy por sobre la nube. Velas por muy por sobre la línea tendencia.
Vela: Vela verde envolvente. alcista.
RSI: En rango sobre 0 y subiendo.
MACD: Bajista sobre 0 pero tiene tendencia a alza.
EMA200: Alcista.
Ichimoku: Nube alcista y gruesa. línea tendencia por sobre la nube. vela verde encima de la línea tendencia.
📈👨💻En grafico 4h:
Vela: Vela verde alcista. sigue subiendo pero con menos fuerzas. Se ve un head and shoulders invertido.
RSI: Alcista tocando el 70%. Casi en sobre venta.
MACD: Alcista traspasando la zona cero.
EMA200: Alcista
Ichimoku: Nube bajista con cabeza de nube verde. Línea tendencia cruzando la nube bajista. Velas roza por la parte superior de la nube bajista pero subiendo y por sobre la línea tendencia.
Análisis US100 - posible corrección cercanaAl igual que el IBEX-35 en España, el NASDAQ-100 es un índice bursátil que recoge a los 100 valores de las compañías más importantes y refleja su evolución a lo largo del tiempo.
Me he ido hasta el año 2017 para identificar soportes y resistencias relevantes que nos puedan ser útiles en el presente y se pueden apreciar en el gráfico de color azul (soportes) y naranja (resistencias). Tal y como se puede apreciar, los soportes y resistencias que en el pasado fueron puntos relevantes se han quedado muy por debajo de los niveles actuales del precio. Por lo tanto, bajo mi punto de vista, existen únicamente dos líneas representativas en el gráfico: las dos resistencias naranjas que se encuentran en la parte superior del gráfico.
¿Por qué lo creo? Este índice se encuentra en una situación muy superior a la que presenta años anteriores, puesto que desde el mes de Marzo la tendencia alcista ha sido continuada y poderosa, pero como siempre ocurre en la economía: las tendencias no duran para siempre y probablemente, el precio rebote con la resistencia identificada en 12433.6 al igual que lo hizo el pasado 2 de Septiembre.
Sinceramente, para mí sería una sorpresa que el precio ignorara dicha resistencia y continuara subiendo, pero aunque lo hiciera el precio antes o después terminará cayendo puesto que una tendencia alcista siempre llega a su fin, dando paso a abrir posiciones cortas.
FOR ENGLISH SPEAKERS
Just like IBEX-35 in Spain, NASDAQ-100 is a stock exchange index which collects the 100 most representative companies' worth, reflecting its evolution over time.
I've gone back to 2017 in order to identify relevant supports and resistances which can be useful today and they can be identified in the graph in blue (supports) and orange (resistances) colour. As we can appreciate in the graph, the old support and resistances which were representative are well below the actual price levels. Therefore, in my opinion, the only two representative lines are the two orange resistances placed at the top of the graph.
Why do I believe that? This index is right now above its past years levels, as since the month of March the upward trend has been continued and powerful, but as it always happens in economics: trends do not last forever and probably the price will bounce into the resistance placed on 12433.6 just like it did on the past September 2nd.
Honestly, I would be surprised whether the price finally ignored that resistance and continued increasing, but even if that happened sooner or later the price will fall down because an upward trend always reaches an end, allowing sellers to open short positions.
Análisis histórico GE - puntos clave entradas y salidas De vez en cuando me gusta realizar análisis históricos de compañías para identificar pasadas zonas de soporte y resistencia, puesto que pueden ser de gran utilidad en el presente.
La compañía GE presenta datos históricos desde el año 1969 y, desde entonces, he identificado con líneas horizontales azules los soportes (zonas en las que el precio no ha conseguido bajar más, ha rebotado y ha subido) y las resistencias (zonas en las que el precio no ha conseguido subir más, ha rebotado y ha bajado). Además, como cualquier otra compañía, he podido observar que dichas resistencias y soportes se han repetido en varias ocasiones a lo largo del gráfico, por lo que a mí me resultan muy útiles.
2020 no ha sido un año particularmente bueno para esta empresa, puesto que el precio cayó de 13 a 6 euros por acción, pero parece que la compañía se está recuperando poco a poco puesto que a día de hoy el precio se sitúa en 10 euros por acción. Este escenario es más beneficioso para compradores que para vendedores, puesto que los tres indicadores que siempre me gusta incluir en mis análisis son bastante optimistas acerca de esta nueva tendencia alcista.
Bajo mi punto de vista (sin tener en cuenta la influencia de factores externos extraordinarios), el precio conseguirá subir por lo menos hasta la resistencia identificada con una línea horizontal azul situada en 13.12. Una vez ahí, habría que volver a mirar los indicadores para ver si pudiera ser un buen momento para abrir operaciones cortas y recoger beneficios.
Por último, incluiré que
- si estamos interesados en comprar, deberemos estar atentos a cuando el precio (estando descendiendo) se aproxime a una línea naranja de soporte
- si estamos interesados en vender, deberemos estar atentos a cuando el precio (estando subiendo) se aproxime a una línea azul de resistencia
FOR ENGLISH SPEAKERS
From time to time I like to do historical analysis about companies in order to identify past support and resistance areas, as they can be very helpful in the present.
GE has historical data since 1969 and, since then, I have identified with horizontal blue lines the supports (areas in which the price has not been able to decrease more, and it has started increasing) and the resistances (areas in which the price has not been able to increase more, and it has started falling). Moreover, as in any other company, I have observed that these supports and resistances have repeated a couple of times along the graph, so I think that they are quite useful.
2020 has not been a particularly nice year for this company, as the price fell from 13 to 6 euros per share, but it seems like the company is slowly recovering from it because today the price is 10 euros per share. This scenario is more beneficial for buyers than for sellers, as the three indicators I always include in my analysis are optimistic about this upward trend.
Under my point of view (without taking into consideration any extraordinary external factor), the price will increase up to the blue resistance identified in 13.12. Once there, we would have to re-check the indicators to consider whether or not it could be a good moment to open short positions in order to reap the benefits.
Lastly, I will add that
- if we are interested in buying, we must pay attention to when the price (decreasing) gets close to a support (orange) line
- if we are interested in selling, we must pay attention to when the price (increasing) get close to a resistance (blue) line
AMZN - Posibilidad de rebote con soporte & cambio de tendencia El día 25 de Octubre publiqué una idea explicando el motivo por el cual preveía que las acciones de AMAZON iban a bajar de precio y, efectivamente, así ha sido. Podéis encontrar la explicación completa en el enlace a la idea en cuestión al final del análisis, pero básicamente exponía que AMAZON iba a experimentar unas semanas bastante tranquilas, ya que entre su conocido como prime day y el black friday , el ritmo de trabajo no es excesivamente intenso.
Podemos apreciar que el precio continua a la baja y que los indicadores no preveen ningún cambio de tendencia, por lo tanto, la cuestión ahora mismo es si el precio rebotará en el soporte situado en 2905.36 (formando así un doble suelo junto con el día 21 de Septiembre ) o si, por el contrario, la tendencia continuará a la baja hasta remontar, previsiblemente, pocos días antes del Black Friday.
Si el precio finalmente rebotara, de acuerdo con la reciente evolución del precio, sería un buen momento para entrar largo puesto que en su último rebote el precio de las acciones de esta empresa subió de 2905.36 a 3484.37, lo que supone un márgen de beneficio bastante atractivo. Sin embargo, un stop loss adecuado sería necesario puesto que la tendencia podría revertise sin previo aviso debido a la inestable situación actual.
FOR ENGLISH SPEAKERS
On October 25th I published an idea explaining why I believed that the price of AMAZON's shares was going to go down, and in fact, it did. You can find the whole explanation through the link of the idea in question at the end of the analysis, but basically I explained that AMAZON was going to go through some smooth weeks because the pace of work between its prime day and the black Friday is not very intense.
We can see that the price keeps on decreasing and that indicators do not give any trend alteration signal, so, the question now regards whether the price will bounce into the 2905.36 support (establishing a double floor with September 21st) or, on the other hand, whether the trend will keep on decreasing until reversing upwards, foreseeably, few days before the Black Friday.
Whether the price finally bounces and increases, according to the recent price evolution of Amazon's shares, it would be a good moment to enter long, because the last time the price bounced off that support it went from 2905.36 to 3484.37, which is a profit margin quite attractive. Nevertheless, an appropriate stop loss would be required because the trend could reverse at any point due to the actual unstable global situation.
Alerta USD/JPY! ¿Corrección Imminente en el Mercado?"
Tendencia General
El gráfico muestra una tendencia alcista pronunciada desde mediados de 2020, con varias correcciones intermedias. Actualmente, el par USD/JPY parece estar en la parte superior de un canal ascendente.
Soportes y Resistencias
Resistencia Principal: Aproximadamente en 161.747, marcada por las líneas punteadas blancas y el área roja en la parte superior del gráfico.
Soporte Clave: Alrededor de 146.140 y 137.260, indicados por las áreas verdes en el gráfico.
Líneas de Soporte Dinámico: Las medias móviles, especialmente la de 200 días (línea blanca), actúan como soporte dinámico, actualmente en torno a los 125.000.
Indicadores Técnicos
MACD: El indicador MACD en la parte inferior del gráfico muestra una posible divergencia bajista, donde el precio alcanza máximos más altos, pero el MACD no confirma con máximos equivalentes, lo que podría indicar una reversión a corto plazo.
Volumen: El volumen ha sido relativamente constante con algunos picos que corresponden a movimientos significativos del precio.
Ichimoku: La nube de Ichimoku muestra que el precio ha estado por encima de la nube, lo cual es una señal alcista, pero con signos de debilidad reciente.
Divergencias Existentes
Divergencia Bajista en MACD: Como se mencionó, el MACD está mostrando una divergencia bajista, lo cual podría ser una señal de una posible corrección o reversión de la tendencia a corto plazo.
Noticias Relevantes y Sentimiento del Mercado
Noticias Relevantes
Política Monetaria de Japón: El Banco de Japón ha mantenido su política monetaria ultra laxa, lo cual ha debilitado el yen frente al dólar estadounidense. Cualquier cambio en esta política podría impactar significativamente el USD/JPY.
Decisiones de la Reserva Federal: Las decisiones de tasas de interés por parte de la Reserva Federal de EE.UU. tienen un impacto directo en el USD/JPY. Aumentos en las tasas de interés generalmente fortalecen el dólar.
Datos Económicos de EE.UU. y Japón: Los datos económicos importantes, como el PIB, las cifras de empleo y la inflación, también influyen en el par de divisas.
Sentimiento del Mercado
El sentimiento del mercado actualmente es mixto. Aunque el USD/JPY ha estado en una tendencia alcista, las recientes divergencias técnicas y las incertidumbres económicas globales han generado cautela entre los inversores.
Estimaciones de Analistas
Los analistas están divididos en cuanto al futuro del USD/JPY. Algunos creen que la tendencia alcista podría continuar si el Banco de Japón mantiene su política monetaria laxa y la Reserva Federal sigue aumentando las tasas. Otros, sin embargo, advierten que las divergencias técnicas y los riesgos macroeconómicos podrían llevar a una corrección significativa.
Opiniones Alcistas: Los analistas alcistas creen que el par podría alcanzar nuevos máximos si las condiciones actuales persisten.
Opiniones Bajistas: Los analistas bajistas advierten sobre una posible corrección debido a las divergencias técnicas y la sobrecompra del par.
Conclusión
El USD/JPY muestra una fuerte tendencia alcista, pero con señales de advertencia a corto plazo debido a las divergencias bajistas en el MACD y la resistencia significativa cercana. Los inversores deben monitorear las políticas monetarias y los datos económicos de Japón y EE.UU. para tomar decisiones informadas. Es recomendable ser cauteloso y considerar posibles correcciones en el corto plazo antes de tomar decisiones de inversión significativas.
CAPITALCOM:USDJPY
EDN entrando en zona de reboteA partir de las siguientes consideraciones:
═ | 17.13↓ ADX (>25 y acelerando)
═ | Vela Heikin Ashi verde (fuerte)
═ | Volumen (2 verdes creciendo)
═ | INFERIOR Imbalance cercano (superior o inferior)
═ | 40.02↑ RSI (<40:╬ Valor y dirección)
═ | RSI signal (x encima de RSI:═, x debajo de RSI:╬)
═ | RSI cruce alcista (NO:═, SI:╬)
═ | -23.837↓ MACD (Valor y dirección)
═ | 18.031↓ MACD signal (x encima de MACD:═, x debajo de MACD:╬)
═ | MACD cruce alcista (NO:═, SI:╬)
╬ | -5.806↑ HISTOGRAMA MACD (Dimensión, dirección. Si negativoYdisminuye:╬, si positivoYdisminuye:═)
═ | EMAS (posición, dirección y precio promedio)
•50 azul ↓ $948.105
•26 verde ↓ $926.680
•12 naranja ↓ $902.843
•200 violeta ↑ $766.566
•500 negro ↑ $491.171
Precio promedio de emas opuestas más cercanas: •12↓↑200 | ($902.843 + $766.566)/2= $834.705
Previsión a 1A de TradingView: +280.72% COMPRAR
Supongo que hoy 26/04/2024, el activo debería mantenerse en un precio similar al del día de ayer o, inclusive, caer un poco.
Pero el rebote, todavía habrá que esperarlo.
Pero... como decía Tusam: 'Puede fallar'
[EURNZD] Onda de WOLFE Alcista / Long signal WOLFE WaveEn gráfico horario, se detectan un doble techo donde en el segundo se ha generado una figura de HCH terminada y que acaba de romper la Neck Line a la vez que supera a la baja la línea 1-3-5, una de las condiciones de las onda de WOLFE, dando señales de posiciones en largo.
Condicionantes: El día 21/05 a las 00:45 am hay fundamental sobre comercio minorista en NZD, un dato que parece ser que podrá ser positivo y que podría seguir la tendencia bajista para terminar de cerrar la figura HCH en dos niveles, 1,69540 y 1,66700$. En estos podria rebotar para cumplir con la línea 6 de la Onda de Wolfe hasta 1,75$.
Confirmación: Usamos los indicadores ADX y MACD. En el primero esperaremos al cruce de las líneas D+ y D- que confirmen cambio de tendencia de bajista a alcista una vez que se cierre la figura HCH; la segunda señal se está formando en MACD en la existe una divergencia dando señales a cambio alcista y esperaríamos al cruce las líneas de señal y de MACD.
---------------------------------------
In hourly chart, a double roof is detected where in the second one a finished Head & Shoulders Pattern has been generated and that has just broken the neckline while exceeding the 1-3-5 line, one of the conditions of WOLFE waves, giving signals of long positions.
Conditions: On 05/21 at 00:45 a.m. there is fundamental about the retail trade in NZD, a fact that can be positive and that the downtrend can continue to close the figure H&S Pattern in two levels, $1.69540 and 1.66700. In these they could bounce to comply with line 6 of the Wolfe Wave up to $ 1.75.
Confirmation: We use the ADX and MACD indicators. In the first we will wait for the crossing of the lines D+ and D- that confirm the change of trend of the bearish bullish once the figure HCH is closed; the second signaling is forming in MACD where there is a divergence indicating signals of a bullish change and we would wait for the crossing of the signaling lines of the MACD.
ADA/BTCRuptura de una resistencia importante 1W,
Por segunda vez el precio supera este nivel al alza (1ro vez 11-DEC-2017)
MACD:
la Señal y el MACD:
Me encanta esta parte del mercado donde salen de la zona negativa consolidándose sobre punto 0 y positivo, haciendo un pull back sobre zona 0 para comenzar a desarrollarse en positivo un tiempo.
cuanto tiempo estará en el lado positivo???
Histograma:
Creciendo en positivo con fuerza en el volumen (solo en negativo se ha visto un volumen con fuerza 14-MAY/29-OCT 2018 )
RSI: Divergencia contra el precio (09-NOV-2020/21-DEC-2020)
PRECIO: De cerrar esta semana con cuerpo por encima de esta resistencia confirmaría tendencia alcista y en busca de su precio histórico más alto(resistencias).
Me gusta mucho este impulso técnicamente esta full acompañado por el RSI marcando la divergencia mientras el MACD pasa a positivo precio reaccionando