Pregunta sobre el indicador - página 6

 

for(i=0; val1==val3; i++)

Este código deja la posibilidad de un bucle sin fin OMI.

 
Tengo que pensar un poco más en esto, se me nublan los ojos leyendo de nuevo.

Lo comprobaré mañana
 
ubzen:

for(i=0; val1==val3; i++)

Este código deja la posibilidad de un bucle sin fin OMI.

Realmente, parece que debería hacer un ciclo hasta que val1 no sea val3

Si val3 = 0 y val1 = 0 debería hacer un ciclo hasta que obtenga un valor

ii val3 = iFractal(momentáneamente) entonces val1 debería hacer un ciclo hasta que val1=0 (y este es mi problema aquí)

realmente es una especie de bucle sin fin o punto de bloqueo, aunque tengo una declaración de impresión para devolver el valor iFractal para val1 no estoy realmente seguro de dónde está
Voy a tener que experimentar un poco más con lo que otros han publicado para probar esto, pero creo que su derecho

Tal vez no es exactamente como se pretende, pero este es el concepto que quiero lograr sólo para aumentar el valor fractal anterior

Voy a seguir trabajando en ello
 
diostar:

Honestamente, es la primera vez que veo esto, para la condición de terminación del bucle. Es complicado...

Parece que funciona parcialmente que me está engañando porque mi declaración de impresión devuelve un valor, pero creo que el problema es que tan pronto como val3 realmente es >0 entonces val1 se incrementará de nuevo a un valor que es 0 y no realmente el valor fractal anterior

Así que parecería que en teoría sólo funcionará una vez, siempre y cuando val3 == 0 y entonces y sólo entonces i++ incrimentará hacia atrás hasta que val1 ya no es == val3 que es lo que quiero hacer, sin embargo si val3 == un valor entonces val1 incimentará de nuevo a un valor de 0 donde ya no es == a val3 y luego el bucle terminará.
Esto no es exactamente lo que quería después de todo, así que volver a la mesa de dibujo de nuevo LOL

Gracias a todos

 
RaptorUK:

Cuando obtienes un iFractal el valor es > 0, ¿sí?

Así que, por ejemplo, si quieres saber dónde estaban los últimos iFractales SUPERIOR y INFERIOR sólo tienes que hacer algo así....

Creo que veo, ahora Si puedo trabajar en la forma de producir el valor de estos lugares anteriores

Creo que puedo resolver esto, espero. je je

Gracias
 

La vela 0 no puede ser un Fractal por lo que val3 siempre será 0, así que por qué no usar. . . .

for(i=0; val1==0; i++)

. . y deshacerse de val3.

Yo prefiero un tiempo en este caso, sin embargo, parecía encajar mejor a lo que estaba tratando de hacer .

 
RaptorUK:

Cuando obtienes un iFractal el valor es > 0, ¿sí?

Así que, por ejemplo, si quieres saber dónde estaban los últimos iFractales SUPERIOR y INFERIOR sólo tienes que hacer algo así....

Esto parece decirme dónde está el último iFractal, pero no los dos iFractales anteriores

Por ejemplo:

2011.10.07 09:05:36 sup_res EURUSD,M5: Last UPPER Fractal at 6 Last LOWER Fractal at 0

Así que mostrará el fractal actual UPPER high e imprimirá la ubicación que es buena
También puedo cambiar val1=i a val1=iFractal(NULL, 0, MODE_UPPER,i) y esto me dará el valor del último iFractal
Así que estoy haciendo algunos progresos en la comprensión de esto, pero todavía tengo que recodificar con el fin de volver a la anterior iFractal

Una vez que se forma un iFractal entonces esta sentencia while continuará imprimiendo el iFractal actualmente formado y más reciente lo cual es genial
Así que digamos que se forma un nuevo iFractal y quiero referenciar este fractal actual desde la sentencia while que es realmente el anterior 1 y no el actual
Así que digamos que se forma el iFractal LOWER_MODE ahora y quiero referenciar el iFractal UPPER_MODE anterior y comparar esos valores.

Pero a partir de sus consejos creo que podría ser capaz de trabajar esto son todas las grandes ideas que me están ayudando mucho.
A medida que me voy familiarizando con el funcionamiento del código estoy empezando a disfrutar de lo que sé para mis ideas de trading.

Gracias
 
Agent86:
Esto parece decirme dónde está el último iFractal, pero no los dos iFractales anteriores

Hay un error en mi código . . .

while( val1==0 && val2==0)

should be . . .

while( val1==0 || val2==0)
 
RaptorUK:

La vela 0 no puede ser un Fractal por lo que val3 siempre será 0, así que por qué no usar. . . .

. . y deshacerse de val3.

Yo prefiero un tiempo en este caso, sin embargo, parecía encajar mejor a lo que estaba tratando de hacer .

OK he cambiado val3 shift a 3, pero esto tampoco me gusta mucho voy a hacer algunos cambios, gracias
 
if(val1 > 0 && faster > slower)
      {
       Print (val1, " val1");
       for(i=0; val1 || val2==0; i++)
         {
         if(iFractals(NULL, 0, MODE_LOWER, i) > 0 && val2 == 0)
         val2 = iFractals(NULL, 0, MODE_LOWER, i);
         Print (" Last LOWER Fractal at ", val2);
        
         }

Cuando se añade una sentencia for dentro de una sentencia if, ¿se pueden añadir sentencias if adicionales y hacer referencia a los valores del bucle?

¿Y esas sentencias if(adicionales) tienen que ocurrir dentro del bucle o puede estar fuera del bucle y seguir haciendo referencia a los valores del bucle como val2?

¿Por favor, indíquenos qué es lo que se considera normal para los bucles dentro de otros bloques de código? ¿Y cómo extraer los valores de los bucles?

Gracias