Versión beta del libro en línea sobre la programación de MQL4 - por Sergey Kovalev (SK.) - página 8

 
Climber:
¿Qué pasa aquí? ¿Qué gritan los errores?

El compilador da un error: Start function not found and cannot be run, que significa: función start() no encontrada y no puede ser ejecutada.

Esto es muy natural. Si no hay ninguna función especial en el programa, no se puede ejecutar en el terminal de cliente MT.

 
Aquí hay un error La función "GetExtremumZZZBar" no está referenciada y será eliminada de exp-file (bueno, está claro, la función no se utiliza en ninguna parte). Escribí un comentario en el código que añadí, tras lo cual los errores desaparecieron.

//+------------------------------------------------------------------+
//|                                                         1111.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
}    // Добавил вот эту скобку, точнее переместил с конца, в результате 1 ошибка
int GetExtremumZZBar(string sym="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) {
  if (sym=="") sym=Symbol();
  double zz;
  int    i, k=iBars(sym, tf), ke=0;
 
  for (i=1; i<k; i++) {
    zz=iCustom(sym, tf, "ZigZag", dp, dv, bc, 0, i);
    if (zz!=0) {
      ke++;
      if (ke>ne) return(i);
    }
  }
  Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден");
  return(0);
}   
//----
   
//+------------------------------------------------------------------+
Mientras escribía este mensaje, parecía haber entendido mi problema. La función no debe estar en el cuerpo de la función de inicio. Sólo la llamada de esta función debe estar en el cuerpo del inicio. ¿Verdad?
 
Climber:
 
Mientras escribo este post, creo que he descubierto mi problema. La función no debe estar en el cuerpo de la función de inicio. Sólo la llamada de esta función debe estar en el cuerpo del inicio. ¿Verdad?

 
Climber:
Mientras escribo este post, creo que he descubierto mi problema. La función no debería estar en el cuerpo de la función de inicio. Sólo la llamada de esta función debe estar en el cuerpo del inicio. ¿Verdad?

Correcto. Ninguna función puede ser descrita en el cuerpo de otra función.
 
Climber:
Mientras escribo este post, creo que he descubierto mi problema. La función no debería estar en el cuerpo de la función de inicio. Sólo la llamada de esta función debe estar en el cuerpo del inicio. ¿Verdad?
Sí, eche un vistazo aquí: Tutorial MQL4 Estructura del programa MQL4 .
 
Ha surgido una nueva pregunta))
¿Es necesario que un EA multidivisa abra los gráficos de todos los símbolos utilizados?
Si se produce un tick para el símbolo a cuyo gráfico está vinculado el EA, se comprobarán los mismos criterios de negociación para otros símbolos. No vamos a abrir muchas órdenes porque trabajamos con gráficos horarios, recibimos manualmente no más de dos órdenes de un símbolo al día.

Y mi siguiente tarea aterradora es la de escribir un bloque de órdenes de contabilidad para el Asesor Experto multidivisa. Pero me alegro de que las órdenes pendientes no se utilicen en mi Asesor Experto (al menos reduce el bloqueo contable). ¿Puede sugerirme que lea algo relacionado con la contabilidad multidivisa sobre este tema?
 
Climber:
Tengo una nueva pregunta))
¿Es obligatorio para un EA multidivisa abrir los gráficos de todos los símbolos utilizados?

No. Pero todos los símbolos utilizados son d.b. en la ventana de Market Watch.

 

¿Pueden decirme cómo detener un EA? Quiero que deje de funcionar cuando se active un stop loss. Si alguien puede darme una pista, por favor escriba a mininp@list.ru. Gracias de antemano.

 
Mister_X:

¿Pueden decirme cómo detener un EA? Quiero que deje de funcionar cuando se active un stop loss. Si alguien puede darme una pista, por favor escriba a mininp@list.ru. Gracias de antemano.


Tal vez sea más fácil no parar, pero sólo comprobar si hay una orden de parada y si la hay, no hacer nada
 
Encontré un gran artículo sobre la contabilización de pedidos complejos en SK'Book orders in a large program'.
Actualmente estoy trabajando manualmente en mi cuenta demo. Llevo un mes trabajando manualmente en este último sistema.

Empecé con una milésima de depósito y una centésima de apalancamiento. El tamaño mínimo del lote es siempre de 100 dólares. Trabajo con 3-4 pares de divisas. Durante las dos primeras semanas he conseguido aumentar mi depósito en 2 veces, es decir, mi depósito se ha convertido en =2.000 dólares. Ahora son unos 3000.

Durante este tiempo el beneficio máximo fue de 118 puntos por un instrumento (de una orden, por supuesto). En promedio cierro órdenes con beneficio de 40-50 puntos. Por una orden de este tipo se cierra un par de órdenes con stops con pérdida total cerca de 10 puntos. 100 puntos al día en total por varios instrumentos. Y esto es nada menos que multiplicar por dos los depósitos en un mes. Y si se calcula teniendo en cuenta las reinversiones, entonces después de 10 meses el depósito será de 1 millón 24 mil dólares estadounidenses.

Todo sería bueno, deberíamos alegrarnos, pero hay una pregunta razonable: ¿qué empresa de corretaje da tan descaradamente se convierten en populares en 10 meses con 1000 dólares???? .

Estoy tratando de escribir un Asesor Experto, debería operar por mí mismo.

Tengo que ser honesto con usted, estoy pensando en todo este evento, ¿no es una estafa?
Razón de la queja: