[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 190

 
DhP:

Es lo mismo, pero es más fácil (más familiar) leer el código.

Soy demasiado perezoso para averiguarlo, pero alguien encontrará fácilmente un error en su código sin esforzarse. Espera.

Ahí no hay errores. Todo funciona bien individualmente, pero me gustaría combinar todo en un Asesor Experto. Al menos combina Asesores Expertos con líneas, la señal de sonido también puede ejecutarse por separado como un script.
 

A veces aparece un mensaje en el libro de registro:

precio no válido 1.37197000 para la función OrderSend

¿De qué puede tratarse? Aparece después de que se haya alcanzado el stop loss.

 

el precio equivocado es 1,37197000.

el precio correcto es 1,37197 o 1,3719, según el DNS.

NormalizeDouble() se utiliza para establecer el número de dígitos después del punto decimal

 

¿Cómo puedo rastrear la apertura de una nueva barra en int start()?

Necesito que el código se active no en cada tick sino sólo después de que se abra una nueva barra

 

Si el tiempo de la barra no es el mismo, significa que la barra ha cambiado.

si no es igual, significa que el bar ha cambiado - haz lo que tengas que hacer y recuerda la hora.

 

¿Quién ha utilizado isCloseLastPosByStop() o isCloseLastPosByTake()? Muestra cómo lo hiciste.

 

¿Podría aconsejarme cómo cargar el indicador en un gráfico de forma programada?

Existe la función bool ServiceLoadCustomIndicator(int hwndChart , ... ); //hwndChart- Descriptor del sistema de la ventana del gráfico, donde se carga el indicador.

No sé cómo conocer el descriptor de la ventana del gráfico.

Sólo necesito recordar GetTickCount en el primer tick después del inicio del indicador, pero el código de abajo no funciona - el terminal se cuelga. ¿Tal vez en init() RefreshRates no funciona en absoluto...?

 while(true){
  if(RefreshRates()) { tik=GetTickCount(); break; }
  Sleep(1); }
 
doon:

¿Quién ha utilizado isCloseLastPosByStop() o isCloseLastPosByTake()? Muéstrame cómo lo hiciste.

No puede ser más sencillo:

if (isCloseLastPosByStop(OP_BUY, Magic)) {
// код если последняя поза Бай с магиком Magic закрылась по стоп-приказу
}
if (isCloseLastPosByTake(OP_SELL, Magic)) {
// код если последняя поза Селл с магиком Magic закрылась по тейку
}

Coloca las funciones propias fuera de la función start(), puedes incluso al final de todo el código.

 
todem:

por lo que al menos un poco de vídeo en vivo se sumará a la experiencia de los futuros programadores aquí
Su explicación es insatisfactoria. Un "vídeo en directo" con un estúpido anuncio de un broker no lleva nada más que publicidad para el broker.
Tus mensajes están borrados, has sido advertido.
 
artmedia70:

Esto es lo más fácil que se puede hacer:
Coloque las funciones propias fuera de la función start(), o al final de todo el código.

Debo añadir que en el mismo enlace, donde doon tomó el código de las funciones, hay un ejemplo de script test_isCloseLastPosByStop.mq4, donde todo se hace como dice Artem. Deberías echarle un vistazo antes de preguntar.