Contar velas en funcion de la posicion del estocastico
Forums › ProRealTime foro Español › Soporte ProBuilder › Contar velas en funcion de la posicion del estocastico
- This topic has 2 replies, 1 voice, and was last updated 4 years ago by cjr30.
-
-
04/21/2020 at 10:59 AM #127212
Buenos días,
Llevo varios días, con varios intentos fallidos de realizar un indicador para incorporar en el propio gráfico del precio.
He acudido a la biblioteca y a varios temas relacionados con lo que busco (creación de loops, función count, función summation, bucles, etc), siendo lo más parecido a lo que busco el indicador Swing Teller Indicator.
Mi idea es la siguiente:
Pretendo que en el gráfico se me vayan contando las velas desde el momento en que el estocástico (línea K) cruce el nivel de sobreventa (20) en sentido ascendente y este conteo siga hasta que la línea K llegue al nivel de sobrecompra(80). Mientras línea K se encuentre por encima de 80, no habría conteo.
Si la línea K cruza hacia abajo la línea 80 empezara el conteo nuevamente, siendo en este caso bajista hasta que nuevamente llegue al nivel de 20, donde ya no se tendría en cuenta.
Si la línea K cruza la línea 20 hacia arriba se iniciaría de nuevo y así sucesivamente. Si estando por encima de 20, retrocede y nuevamente se pone por debajo de 20, el conteo se pararía.
El indicador lo tengo prácticamente realizado y adjunto tanto el archivo .itf como un pantallazo de su programación y un gráfico en el cual esta incorporado.
Si alguien me puede ayudar se lo agradecería.
La idea del indicador es que cuando existen muchas velas de distancia para que el estocástico evolucione desde 20 a 80, posiblemente la señal que nos diera en combinación con otros indicadores no fuera lo suficientemente rentable, sin embargo si el numero de velas de evolución entre la sobreventa y la sobrecompra fuera pequeño (tal vez de 3 a 6) y lo combinamos con la señal de otro indicador, la operación si fuera rentable.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980p=periodoKq=periodoDmaximo = highest[p](high)minimo = lowest[p](low)REM Construimos el osciladoroscilador = (close - minimo) / (maximo - minimo) * 100REM Deducimos el %K y %D del estocásticolineaK = average[q](oscilador)//lineaD = average[q](lineaK)// --- settings// --- end of settingsONCE MaxCount = 10 //no more than 4 candles before restarting from 0ONCE UpCount = 0ONCE lineak =80if lineaK>20 and lineak<80 thenDownCount=0UpCount=UpCount+1lineak=barindex//draw countDRAWTEXT("#Upcount#", barindex, low - 5 * pipsize, Dialog, Bold, 12) COLOURED(255,10,10,255)endif//up swing failif UpCount>MaxCount or lineaK >80 thenUpCount = 0lineak = 80//draw fail countdrawtext("F",barindex,low-5*pointsize,Dialog,Standard,12) coloured(0,200,0)//reset countUpCount=0endif//continue swing Downif DownCount>0 and lineaK<80 and lineak>20 thenUpCount=0DownCount=DownCount+1Downcount=barindex//draw countDRAWTEXT("#Downcount#", barindex, high+ 5 * pipsize, Dialog, Bold, 12) COLOURED(255,10,10,255)DownCount=0endif//down swing failif DownCount>0 and lineaK<20 and lineak>80 then//draw fail countdrawtext("F",barindex,high+5*pointsize,Dialog,Standard,12) coloured(200,0,0)//reset countDownCount=0endif//begin swing Upif UpCount=0 and barindex-Upcount>1 thenr = lineaK crosses over 20if r thenUpCount=1DownCount=0//draw countdrawtext("1",barindex,low-5*pointsize,Dialog,Standard,12) coloured(0,200,0)endifendif//begin swing Downif DownCount=0 and barindex-Downcount>1 thenr = lineaK crosses under 80if r thenDownCount=1UpCount=0//draw countdrawtext("1",barindex,high+5*pointsize,Dialog,Standard,12) coloured(200,0,0)endifendifreturn04/21/2020 at 11:11 AM #12721804/21/2020 at 11:14 AM #12721912345678910111213141516171819202122232425262728293031323334353637383940414243444546p=periodoKq=periodoDmaximo = highest[p](high)minimo = lowest[p](low)REM Construimos el osciladoroscilador = (close - minimo) / (maximo - minimo) * 100REM Deducimos el %K y %D del estocásticolineaK = average[q](oscilador)//lineaD = average[q](lineaK)// --- settingsCountDistance=20// --- end of settingsif UpCount>0 and lineaK>20 and lineak<80 thenDownCount=0UpCount=UpCount+1//draw countif UpCount=2 thendrawtext("2",barindex,low-CountDistance*pointsize,Dialog,Standard,12) coloured(0,200,0)elsif UpCount=3 thendrawtext("3",barindex,low-CountDistance*pointsize,Dialog,Standard,12) coloured(0,200,0)elsif UpCount=4 thendrawtext("4",barindex,low-CountDistance*pointsize,Dialog,Standard,12) coloured(0,200,0)elsif UpCount=5 thendrawtext("5",barindex,low-CountDistance*pointsize,Dialog,Standard,12) coloured(0,200,0)elsif UpCount=6 thendrawtext("6",barindex,low-CountDistance*pointsize,Dialog,Standard,12) coloured(0,200,0)elsif UpCount=7 thendrawtext("7",barindex,low-CountDistance*pointsize,Dialog,Standard,12) coloured(0,200,0)elsif UpCount=8 thendrawtext("8",barindex,low-CountDistance*pointsize,Dialog,Standard,12) coloured(0,200,0)elsif UpCount=9 thendrawtext("9",barindex,low-CountDistance*pointsize,Dialog,Standard,12) coloured(0,200,0)Barcount=barindex//reset countUpCount=0endif//up swing failelsif UpCount>0 and lineaK >80 and lineak<20 then//draw fail count -
AuthorPosts
Find exclusive trading pro-tools on