Buenos días,
Os dejo aquí un indicador de mi cosecha mezclando el VIGIA de Blai5 y el concepto de ICHIMOKU.
Para mi un indicador debe estar basado en una buena curva. El VIGIA es una gran curva que además tiene propiedades de anticipación al precio. Por supuesto el VIGIA es mucho mas que una simple curva, aunque para este caso es lo único que he usado del gran indicador.
La mezcla quedaría algo así:
La curva VIGIA es la negra, La nube es la formada por la SpanA y la SpanB como en el indicador original, aunque una de ellas la he llevado a cero para simplificar el gráfico. Del resto de indicador original ICHIMOKU he dejado el Kjun para cortes con el VIGIA. En verde sombreo cuando el VIGIA supera la nube.
No suelo usar el indicador como gatillo sino mas bien como filtro. Por ejemplo, para entradas largas pido que el VIGIA esté por encima de la nube (mas conservador) o por encima del Kjun (mas agresivo).
El corte del VIGIA hacia abajo con el Kjun suele ser un buen aviso para poner un stop en posiciones largas.
El código:
// Indicador Calatravo Vigia Ichimoku
// Indicador basado en la curva Vigia aplicando la nube Ichimoku
// Indicador Vigia v09 de Blai5
xmf = MoneyFlowIndex[20]
OB1 = (BollingerUp[20](TotalPrice) + BollingerDown[20](TotalPrice)) / 2
OB2 = BollingerUp[20](TotalPrice) - BollingerDown[20](TotalPrice)
BollOsc = ((close - OB1) / OB2 ) * 100
xrsi = rsi [20](TotalPrice)
STOC = Stochastic[20,3](TotalPrice)
vg = ((xrsi + xmf + BollOsc + (STOC / 3))/2) - 60
// Nube Ichimoku del indicador by Calatravo
//Tenkan Sen (Mayor máximo + Menor mínimo)/2 para el periodo n
if barindex < n then
tenkan=vg
else
tenkan=(highest[n](vg)+lowest[n](vg))/2
endif
//Kijun Sen (Mayor máximo + Menor mínimo)/2 para el periodo n1
if barindex < n1 then
kijun=vg
else
kijun=(highest[n1](vg)+lowest[n1](vg))/2
endif
// Senkou Span A. (Tenkan+Kijun)/2 desplazado n1 periodos
MediaTK= (Tenkan+Kijun)/2
SpanA=MediaTK[n1]
// Senkou Span B. (Mayor max + Meno min)/2 en los n2 periodos desplazado n1 periodos
if barindex < n2 then
MediaB=vg
SpanB=MediaB[n1]
else
MediaB=(highest[n2](vg)+lowest[n2](vg))/2
SpanB=MediaB[n1]
endif
if SpanB>SpanA then
line=SpanB
else
line=SpanA
endif
Return vg-SpanB as "Vigia", tenkan-SpanB as "Tenkan", Kijun-SpanB as "Kijun", SpanA-SpanB as "Span A", SpanB-SpanB as "Span B", line-SpanB as "Contorno nube sup"
Variables:
n=7
n1=22
n2=44
Saludos.