Ola Rango
Aqui um exemplo de como se deve utilizar la volatilidad y capital (capital= volumem x precio del ativo)
Abajo esta el codigo para PRT (prorealtime), de um indicador idealizado por um conterraneo myo llamado CEM (sin stops) y modificado por my donde inclui la pasta (variacion de capital)
O seal parte del indicador tiene ponderacion a volatilidad verdadera y otra a transacion de capital
A azul significa que el mercado esta positivo, sin color neutral, rojo esta bajista...en la pratica es un indicador tendencial
Solo tienes que copiar e colar
----------------------------------------------------------------------------------------------------------------
REM CHAMA AS VARIAVEIS
REM ACTUADOR QUANDO FICA POSITIVO E NEGATIVO
REM INDICADOR VOLUME IDEALIZADO POR "CEM" CALDEIRAO DA BOLSA OPTIMIZADO POR TARTARUGA
If( Open > Close[1] ) then
necovrnmhplusip = 10000 / 3 * ( Open - Close[1]) / (Open * 16 )
else
necovrnmhplusip = 0
endif
If( - Open /2 + High + Low - Close /2 > Open ) then
necovrmmhplusip = 3 / 4 * 10000 * ( - 3 / 2 * Open + High + Low - Close /2 ) / ( ( -Open /2 + High + Low - Close /2 )*4 )
else
necovrmmhplusip = 0
endif
If(Close > - Open / 2 + High + Low - Close / 2 ) then
necovrtmhplusip = 11 / 12 * 10000 * ( 3 / 2 * Close + Open / 2 - High - Low ) / ( Close * 4 )
else
necovrtmhplusip = 0
endif
necovrfpmhplusip = necovrnmhplusip + necovrmmhplusip + necovrtmhplusip
If( Open > Close[1]) then
necovrnmhminusip = 0
else
necovrnmhminusip = 10000 / 3 * (Close[1] - Open)/(Open*16)
endif
If(- Open / 2 + High + Low - Close / 2 > Open) then
necovrmmhminusip = 0
else
necovrmmhminusip = 3 / 4 * 10000 * ( 3 / 2 * Open - High - Low + Close / 2 ) / ( ( -Open / 2 + High + Low - Close / 2 ) * 4 )
endif
If(Close > - Open / 2 + High + Low - Close / 2 ) then
necovrtmhminusip = 0
else
necovrtmhminusip = 11 / 12 * 10000 * ( - 3 / 2 * Close - Open / 2 + High + Low ) / ( Close * 4 )
endif
necovrfpmhminusip = necovrnmhminusip + necovrmmhminusip + necovrtmhminusip
If( Close > High[1]) then
complvrextremeiplus = 10000 / 2 * ( High + Close - 2 * High[1] ) / ( Close * 24 )
else
If(High > High[1]) then
complvrextremeiplus = 10000 / 2 * ( High - High[1] ) / ( Close * 24 )
else
complvrextremeiplus = 0
endif
endif
If( Close < Low[1]) then
complvrextremeiminus = 10000 / 2 * ( 2*Low[1] - Low - Close ) / ( Close * 24 )
else
If(Low < Low[1]) then
complvrextremeiminus = 10000 / 2 * ( Low[1] - Low ) / ( Close * 24 )
else
complvrextremeiminus = 0
endif
endif
necovrfdmhplusip = necovrfpmhplusip + complvrextremeiplus
necovrfdmhminusip = necovrfpmhminusip + complvrextremeiminus
REM OCILADOR NECO
SINAL = necovrfdmhplusip - necovrfdmhminusip
sinalmedio=ExponentialAverage[21](sinal)
panicocima=highest[21](sinalmedio)
panicobaixo=lowest[21](sinalmedio)
Neutro=0
REM MEDIA DOS SINAIS DE PANICO
REM DESENHAR A LINHA DE PANICO
IF SINALMEDIO > 0 THEN
CIMA=panicocima
ENDIF
IF SINALMEDIO <0 THEN
BAIXO=panicobaixo
ENDIF
REM SINAL DE COMPRA E DE VENDA OSCILADOR
IF SINALMEDIO[0] > NEUTRO AND SINALMEDIO[0] > CIMA[1] THEN
ACTUADOR=20
ENDIF
IF SINALMEDIO[0] < NEUTRO AND SINALMEDIO[0] < BAIXO[1] THEN
ACTUADOR=-20
ENDIF
rem fluxo capital livre
If high[0]=low[0] AND close[1]< close[0] then
volumepos=close*volume
volumeneg=0
CAPITALPOSITIVO=VOLUMEPOS*((close+LOW)/2)
CAPITALNEGATIVO=VOLUMENEG*((HIGH+close)/2)
ENDIF
If high[0]=low[0] AND close[1]= close[0] then
volumepos=0
volumeneg=0
CAPITALPOSITIVO=VOLUMEPOS*((close+LOW)/2)
CAPITALNEGATIVO=VOLUMENEG*((HIGH+close)/2)
ENDIF
If high[0]=low[0] AND close[1]> close[0] then
volumepos=0
volumeneg=close*volume
CAPITALPOSITIVO=VOLUMEPOS*((close+LOW)/2)
CAPITALNEGATIVO=VOLUMENEG*((HIGH+close)/2)
ENDIF
IF OPEN = close THEN
volumepos=0*volume
volumeneg=0*volume
CAPITALPOSITIVO=VOLUMEPOS*((close+LOW)/2)
CAPITALNEGATIVO=VOLUMENEG*((HIGH+close)/2)
ENDIF
IF OPEN < close and high<>low THEN
volumepos=((close-OPEN)/(((high-CLOSE)*2)+((OPEN-low)*2)+(CLOSE-OPEN)))*volume
volumeneg=0*volume
CAPITALPOSITIVO=VOLUMEPOS*((close+LOW)/2)
CAPITALNEGATIVO=VOLUMENEG*((HIGH+close)/2)
ENDIF
IF OPEN > CLOSE and high<>low THEN
volumepos=0*volume
volumeneg=((OPEN-close)/(((HIGH-OPEN)*2)+(OPEN-CLOSE)+((CLOSE-LOW)*2)))*volume
CAPITALPOSITIVO=VOLUMEPOS*((close+LOW)/2)
CAPITALNEGATIVO=VOLUMENEG*((HIGH+close)/2)
ENDIF
CAPITALMED=CAPITALPOSITIVO-CAPITALNEGATIVO
capitalacumulado21=capitalmed[0]+capitalmed[1]+capitalmed[2]+capitalmed[3]+capitalmed[4]+capitalmed[5]+capitalmed[6]+capitalmed[7]+capitalmed[8]+capitalmed[9]+capitalmed[10]+capitalmed[11]+capitalmed[12]+capitalmed[13]+capitalmed[14]+capitalmed[15]+capitalmed[6]+capitalmed[17]+capitalmed[18]+capitalmed[19]+capitalmed[20]
MEDIA=capitalacumulado21
rem inicio oscilador
SINALa=0
if actuador =20 AND MEDIA >=0 then
sinala=20
ENDIF
iF ACTUADOR=20 AND MEDIA <0 THEN
SINALa = 0
ENDIF
IF ACTUADOR=-20 AND MEDIA >= 0 THEN
SINALa=0
ENDIF
if ACTUADOR =-20 AND MEDIA < 0 THEN
SINALa=-20
ENDIF
REM DETERMINAÇÃO DE FLUXO
IF SINALa=0 AND SINALa[1]=-20 THEN
SINALa=-20
ENDIF
IF SINALa=0 AND SINALa[1]=20 THEN
SINALa=20
ENDIF
REM INCLUSÃO DOMEU PANICO FLUXO
REM SENTIMENTO ABERTURA POR DANIEL
If( Open > Close[1] ) AND CLOSE[1]<LOW[0] then
SENTIMENTOABERTURAPOS= ((OPEN-CLOSE[1])/(HIGH[0]-CLOSE[1]))
SENTIMENTOABERTURANEG=0
ENDIF
If( Open > Close[1] ) AND CLOSE[1]>=LOW[0] then
SENTIMENTOABERTURAPOS= ((OPEN-CLOSE[1])/(HIGH[0]-LOW[0]))
SENTIMENTOABERTURANEG=0
ENDIF
If( Open = Close[1] ) THEN
SENTIMENTOABERTURAPOS=0
SENTIMENTOABERTURANEG=0
ENDIF
If( Open < Close[1] ) AND CLOSE[1]>HIGH[0] then
SENTIMENTOABERTURAPOS=0
SENTIMENTOABERTURANEG=((CLOSE[1]-OPEN[0])/(CLOSE[1]-LOW[0]))
ENDIF
If( Open < Close[1] ) AND CLOSE[1]<=HIGH[0] then
SENTIMENTOABERTURAPOS=0
SENTIMENTOABERTURANEG=((CLOSE[1]-OPEN[0])/(HIGH[0]-LOW[0]))
ENDIF
REM SENTIMENTO DIA quando abertura menor ou igual que fecho
If( OPEN <= Close) and ( Open > Close[1] ) AND CLOSE[1]<LOW[0] THEN
SENTIMENTODIAPOS=((CLOSE-LOW)/(HIGH-close[1]))
SENTIMENTODIANEG=((HIGH-CLOSE)/(HIGH-close[1]))
endIF
If( OPEN <= Close) and ( Open > Close[1] ) AND CLOSE[1]>=LOW[0]then
SENTIMENTODIAPOS=((CLOSE-LOW)/(HIGH-low))
SENTIMENTODIANEG=((HIGH-CLOSE)/(HIGH-low))
endif
If( OPEN <= Close)and ( Open = Close[1] ) then
SENTIMENTODIAPOS=((CLOSE-LOW)/(HIGH-low))
SENTIMENTODIANEG=((HIGH-CLOSE)/(HIGH-low))
endif
REM SENTIMENTO DIA quando abertura maior que fecho
If( OPEN > Close) and ( Open > Close[1] ) AND CLOSE[1]<LOW[0] THEN
SENTIMENTODIAPOS=((CLOSE-LOW)/(HIGH-close[1]))
SENTIMENTODIANEG=((HIGH-CLOSE)/(HIGH-close[1]))
endIF
If( OPEN > Close) and ( Open > Close[1] ) AND CLOSE[1]>=LOW[0]then
SENTIMENTODIAPOS=((CLOSE-LOW)/(HIGH-low))
SENTIMENTODIANEG=((HIGH-CLOSE)/(HIGH-low))
endif
If( OPEN > Close)and ( Open = Close[1] ) then
SENTIMENTODIAPOS=((CLOSE-LOW)/(HIGH-low))
SENTIMENTODIANEG=((HIGH-CLOSE)/(HIGH-low))
endif
REM DEFINIÇÃO OSCILADOR
SENTPOS=SENTIMENTOABERTURAPOS*(5/13.5)+SENTIMENTODIAPOS*(8.5/13.5)
SENTNEG=-1*((SENTIMENTOABERTURANEG*(5/13.5)+SENTIMENTODIANEG)*(8.5/13.5))
sinalD=SENTPOS+SENTNEG
sinalmedioD=ExponentialAverage[21](sinalD)
panicocimaD=highest[21](sinalmedioD)
panicobaixoD=lowest[21](sinalmedioD)
NeutroD=0
REM MEDIA DOS SINAIS DE PANICO
MEDIAPANICOCIMAD=ExponentialAverage[21](PANICOCIMAD)
MEDIAPANICOBAIXOD=ExponentialAverage[21](PANICOBAIXOD)
REM DESENHAR A LINHA DE PANICO
IF SINALMEDIOD > 0 THEN
CIMAD=MEDIAPANICOCIMAD
ENDIF
IF SINALMEDIOD <0 THEN
BAIXOD=MEDIAPANICOBAIXOD
ENDIF
REM SINAL DE COMPRA E DE VENDA OSCILADOR
IF SINALMEDIOD[0] > NEUTROD AND SINALMEDIOD[0] > CIMAD[1] THEN
ACTUADORD=20
ENDIF
IF SINALMEDIOD[0] < NEUTROD AND SINALMEDIOD[0] < BAIXOD[1] THEN
ACTUADORD=-20
ENDIF
REM SINAL PICO DE SINAL
IF ACTUADORD[0] CROSSES OVER 0 AND ACTUADORD[0]> ACTUADORD[1] THEN
ALERTAD=20
ELSE
ALERTAD=0
IF ACTUADORD[0] CROSSES UNDER 0 AND ACTUADORD[0]< ACTUADORD[1] THEN
ALERTAD=-20
ELSE
ALERTAD = 0
ENDIF
ENDIF
SINALFD=0
MEDIAD=capitalacumulado21
if ALERTAD =20 AND MEDIAD >=0 then
sinalFD=20
ENDIF
iF ALERTAD=20 AND MEDIAD <0 THEN
SINALFD = 0
ENDIF
IF ALERTAD=-20 AND MEDIAD >= 0 THEN
SINALFD=0
ENDIF
if ALERTAD =-20 AND MEDIAD < 0 THEN
SINALFD=-20
ENDIF
REM DETERMINAÇÃO DE FLUXO
IF SINALFD=0 AND SINALFD[1]=-20 THEN
SINALFD=-20
ENDIF
IF SINALFD=0 AND SINALFD[1]=20 THEN
SINALFD=20
ENDIF
IF SINALFD=SINALA THEN
SINALFINAL=SINALfd
ENDIF
IF SINALFD<>SINALA THEN
SINALFINAL=0
ENDIF
RETURN SINALFINAL AS "SINALFINAL"