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

 
Bueno, ahora el foro tiene un fallo: el post no está completo, pero no acepta ediciones...
 
tuner:
Podría, por ejemplo, cambiar el marco temporal de forma programada y luego volver a cambiarlo si es necesario.
No creo que sea así como se restablecen las variables.
 
tuner:
O intente guardar la plantilla y luego cargarla de nuevo
¡Gran idea! ¿Es posible?
 

No sé qué...

Escribí tres versiones del EA, todas compiladas sin errores, pero en el probador sucede algo extraño - en M5 abre una posición y no la cierra, pero en M1 abre en cada tick y cierra en el siguiente, independientemente de las condiciones prescritas.

 
abeiks:
No creo que sea así como se restablecen las variables.
Las variables externas se reinician porque se llama a OnInit() cuando se cambia el marco temporal
 
abeiks:
¡Gran idea! ¿Es posible?
Probablemente... hay funciones incorporadas en MQl4 relacionadas con el guardado y la carga de plantillas: ChartSaveTemplate, ChartApplyTemplate
 
rapid_minus:

No sé qué...

Escribí tres versiones del EA, todas compiladas sin errores, pero en el probador sucede algo extraño - en M5 abre una posición y no la cierra, pero en M1 abre en cada tick y cierra en el siguiente, independientemente de las condiciones prescritas.

Dime por favor, si escribes una función multiplicadora

double f(double a1, double a2)
{
 return(a1*a2+1);
}

¿Esta función dará alguna vez como resultado 2*2=4 o no?

Me refiero a que ningún compilador comprueba la lógica del código. Y sus Asesores Expertos están llenos de errores lógicos.

 
AlexeyVik:

Dime por favor, si escribes una función de multiplicación

¿Esta función dará alguna vez como resultado 2*2=4 o no?

Es decir, ningún compilador comprueba la lógica del código. Y sus Asesores Expertos están llenos de errores lógicos.

Lo tengo. Sólo hay una cosa que no entiendo: ¿cuáles son exactamente?

ZZY: ¿y qué error puede comportarse de forma diferente en los distintos TF?

ZZZY: por ejemplo, dónde está el error lógico aquí:

void CritClose() 
{ 
  for (int ord = OrdersTotal()-1 ; ord >= 0; ord--) 
  { 
    if(!OrderSelect(ord,SELECT_BY_POS,MODE_TRADES))Comment("Не найдено открытых ордеров. Ошибка #",GetLastError());
     
    if (OrderSymbol() == Symbol()) 
    {if ((OrderMagicNumber()==10011 || OrderMagicNumber()==10033 || OrderMagicNumber()==10133)&&(((условие А) && (условие Б)&&(условие В)) || ((условие Г) && (условие Д)&&(условие Е))))      
          {        
          ord_close=OrderClose(OrderTicket(),0.1, Bid, 0, Red);          
            if (ord_close = false)          
               { Comment("Закрытие позиции БАЙ завершилось с ошибкой #",GetLastError()); }            
               else  { Ord=0; }
          }
      else if (... и т.д....
 

¡Ay! ¡Gurú! ¿Te rompiste el dedo en la palma?

 
rapid_minus:

Lo entiendo. Lo único que no entiendo es cuáles.

ZS: ¿y qué error puede comportarse de forma diferente en los distintos TF?

ZZY: por ejemplo, dónde está el error lógico aquí:

El error lógico aquí es que la estructura del programa es incorrecta. Tras el comentario "No se ha encontrado... "el código seguirá ejecutándose como si se hubiera encontrado. Vladimir, lee un libro de texto, ¿quieres?