Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 222

 
La sintaxis se domina, pero la lógica es un poco difícil de conseguir.
 

Hola.

El EA fue probado con la misma configuración anteayer y ayer. El código es el mismo, todos los parámetros son los mismos, pero el resultado es diferente.

El Asesor Experto abre las operaciones a la hora establecida sin ninguna condición adicional. Podemos ver que los precios de apertura de las operaciones difieren significativamente.

He descargado el mismo archivo de cotizaciones las dos veces desde MetaQuotes Software Corp.

Archivos adjuntos:
szcwya.zip  34 kb
 
gince:

¿Cómo puedo encontrar dos fractales superiores/inferiores seguidos? La imagen de abajo.

Intenté escribir un indicador, pero no lo pensé bien.

¿Tal vez alguien ha visto un indicador de este tipo listo?


¿Está seguro de que la función int GetFractal(string sy="0", int tf=0, int nf=0)captura los fractales correctamente? (allí hay valores EMPTY_VALUE )

¿Por qué un rebasamiento tan inadecuado?

1) funciona sobre la aparición de una vela y no sobre un tick

2) probar dos matrices fractales simultáneamente en lugar de repetir un montón de veces.

3) Si el fractal superior está presente, +1 al valor de la primera variable, si el inferior, -1. ( Variantes de resultados: - 1, 0, +1)

4) en el siguiente fractal: si hay un fractal superior, entonces +1 al valor de la segunda variable; si hay un fractal inferior, entonces -1. ( Los resultados son los siguientes: - 1, 0, +1)

5) Busca la suma de las variables primera y segunda:

a) menos de 0 ( tenemos dos fractales inferiores) ¡Si!

b) mayor que 0 ( tenemos dos fractales superiores) ¡¡¡SÍ!!!

c) es igual a cero y una variable es igual a cero ( tenemos dos fractales inferiores y dos superiores) ¡¡¡SÍ!!!

6) reasignar el valor de la segunda variable a la primera e iniciar el ciclo desde el punto 4)

 
aiculu:
Ayuda, no entendí cómo lo hice, pero accidentalmente hice clic en algo y desapareció una ventana con un resumen de mis órdenes abiertas, ¿cómo la recupero?

Ctrl-T

 
Elektronik:

Ctrl-T


Gracias)))
 
Antonius:

Hola.

El EA fue probado con la misma configuración anteayer y ayer. El código es el mismo, todos los parámetros son los mismos, pero el resultado es diferente.

El Asesor Experto abre las operaciones a la hora establecida sin ninguna condición adicional. Podemos ver que los precios de apertura de las operaciones difieren significativamente.

He descargado el mismo archivo de cotizaciones las dos veces desde MetaQuotes Software Corp.

Usted tiene el spread actual seleccionado en el probador - de ahí la diferencia, ya que cuando se inicia la prueba, el spread se utiliza tal como estaba cuando se inició la prueba. Establece la dispersión en un número constante.
 
ALXIMIKS:


¿Está seguro de que la función int GetFractal(string sy="0", int tf=0, int nf=0)captura los fractales correctamente? (allí hay valores EMPTY_VALUE )

¿Por qué un exceso tan inadecuado?

1) trabajar a partir de la aparición de una vela, no de una garrapata

2) Hacer una búsqueda en dos matrices fractales a la vez, en lugar de múltiples búsquedas.

3) Si el fractal superior está presente, entonces +1 al valor de la primera variable, si el inferior, entonces -1.

4) Siguiente fractal: si hay un fractal superior, entonces +1 a la segunda variable, si hay un fractal inferior, entonces -1.

5) Busca la suma de las variables primera y segunda:

a) menos de 0 ( tenemos dos fractales inferiores) ¡Si!

b) mayor que 0 ( tenemos dos fractales superiores) ¡¡¡SÍ!!!

c) es igual a cero y una variable es igual a cero ( tenemos dos fractales inferiores y dos superiores) ¡¡¡SÍ!!!

6) reasignar el valor de la segunda variable a la primera e iniciar un bucle desde el punto 4)

En lugar de sarcasmo, mejor escribe tú mismo una función adecuada y optimizada a la persona. Lo único que demuestras siempre es la negatividad y la burla. No te hagas el listo: si tienes una respuesta, escribe el código, si no la tienes, no digas nada. Por cierto, el exceso de trabajo se está llevando a cabo allí...
 
artmedia70:
Usted tiene seleccionado el spread actual en el probador - de ahí la diferencia, ya que, al ejecutar la prueba, se utiliza el spread que había en el momento de ejecutar la prueba. Establece la dispersión en un número constante.


La diferencia entre las operaciones abiertas el mismo día, a la misma hora en diferentes días de prueba, varía.

Por ejemplo,

Fecha, hora Antes de ayer Hoy Diferencia
2011.10.05 13:151616.031622.89 -6.86
2011.10.12 13:151682.871682.89 -0.02
2011.10.19 13:151649.101659.66 -10.56


Sí y valores demasiado altos para la difusión.

 
artmedia70:
En lugar de sarcasmo, mejor escribe tú mismo una función adecuada y optimizada. Siempre muestras sólo negatividad y burla. No te hagas el listillo: si tienes algo que decir, escribe el código, si no tienes respuesta, no digas nada. Por cierto, el exceso de trabajo está ocurriendo allí...


Tuve tiempo, ideé un algoritmo para la tarea y lo describí detalladamente (tal vez un poco incorrecto para algunas personas, la gente es diferente en términos de comprensión).

¿Sarcasmo? No lo sé, sólo intentaba ayudar.

¿escribir el código de alguien? ¿optimizar más? (sí, puedo, pero ¿merece la pena?)

(PS artmedia70, no te ofendas, respeto tu actitud y opinión en general - sinceramente, pero el otro día tú mismo me diste código de iCustom-y por decirlo suavemente no muy optimizado).

int a1=0,a2,a3,kilkict,frac,frac1=0;//frac - флаг существования фракталов, frac1- счетчик фракталов (+1 или 0 за цикл)

kilkict=iBars(sy, tf);

for (i=3; i<kilkict;i++){
  a2=0;frac=0;
  if(iFractals(sy, tf, MODE_UPPER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
         a2+=1;frac=1;frac1++;
        }
     }
  if(iFractals(sy, tf, MODE_LOWER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
        if(a2==0){frac1++; frac=1;}a2+=-1;
        }
     } if (frac==0){continue;}if (frac1==1){a1=a2;continue;}
  a3=a1+a2;
  if(a3<0)           { a1=a2;//Два фрактала вниз  подряд найдено// continue;}
  if(a3>0)           { a1=a2;//Два фрактала вверх подряд найдено // continue;}
  if(a3==0 && a1==0) { a1=a2;// Два фрактала подряд вверх и два фрактала подряд вниз найдено //}
}

Algo así debería funcionar si se inserta en la comprobación de una nueva barra.

El código sería más óptimo si acota kilkict=iBars(sy,tf) después de algún número de fractales, para no tener que buscar constantemente entre todas las barras.

 
ALXIMIKS:


Tuve tiempo - se me ocurrió un algoritmo para la tarea, descrito (en detalle, tal vez un poco incorrecto para algunas personas - las personas son diferentes en términos de accesibilidad).

¿Sarcasmo? No sé, sólo para ayudar.

¿escribir el código a alguien? ¿optimizar más? (sí puedo, pero ¿merece la pena? )

(p.d. artmedia70, no te ofendas, respeto tu actitud y opinión en general - sinceramente, pero el otro día tú mismo me diste código de iCustom-y por decirlo suavemente no muy optimizado).

Algo así debería funcionar si se inserta en la comprobación de una nueva barra.

El código estaría más optimizado si se redujera kilkict=iBars(sy,tf) después de algún número de fractales, para no recorrer todas las barras todo el tiempo.

Sí, como solían bromear en KVVAIU, un verdadero oficial debe inspirar miedo, tanto con su comportamiento como con su aspecto físico.

¿Es posible hacerlo "más óptimo"?