Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1514

 
Puse las líneas para ver dónde funcionaría el EA, sustituí las líneas por una condición para colocar y modificar las órdenes y el EA funcionó. Para ser sincero, me alegro de que haya funcionado. Este es mi primer EA independiente. He entendido por qué el probador puso sólo una línea ))
 
Alexey Viktorov:

Compruebe el cruce de MA no en 1 y 2 barras, sino en 3 y 4. Y si hay un cruce, comprueba los valores de AO en 1 y 2 barras.

Gracias. Seguiré intentándolo.
 

Tengo otro dolor de cabeza - explicar cómo escribir la tecla KEY_TILDE para seleccionar el objeto Rectangular Label, para que pueda ser seleccionado y movido a otro lugar en el gráfico, no puedo averiguarlo. He adjuntado una captura de pantalla con un ejemplo en el indicador Fork Neo en la parte inferior. He entendido el ratón, pero no puedo utilizar las teclas.

int OnInit()
  {
RectLabelCreate(0,"RectLabel",0,10,200,149,143,C'55,55,55',BORDER_SUNKEN,CORNER_LEFT_LOWER,C'55,55,55',STYLE_SOLID,1,false,false,true,0);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam) // параметр события типа string
  {

    if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
            Print("Нажата KEY_TILDE");
            break;
        }
        ChartRedraw(); 
     }

  }
Archivos adjuntos:
01.jpg  8 kb
02.jpg  3 kb
 
DYM:

Tengo otro dolor de cabeza - explicar cómo escribir la tecla KEY_TILDE para seleccionar el objeto Rectangular Label, para que pueda ser seleccionado y movido a otro lugar en el gráfico, no puedo averiguarlo. He adjuntado una captura de pantalla con un ejemplo en el indicador Fork Neo. He entendido el ratón, pero no encuentro nada sobre la asignación de teclas.

    if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
         ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,true); 
         Print("Нажата KEY_TILDE");
         break;
        }
        ChartRedraw(); 
     }
 
MakarFX:
Muchas gracias por el consejo. Me di cuenta de que tenía que utilizar la resolución y la selección, pero no sabía cómo aplicarla. Gracias de nuevo.
 
Colegas, me encuentro en una situación extraña. Funciona bien en el probador, está configurado para que una orden aleatoria se abra instantáneamente cuando se añade al gráfico. Esto es óptimo para el GBPUSD. Sin embargo, no abre órdenes en la demo. Tengo un amplio margen, sin errores, pero, de nuevo, las órdenes no se han abierto durante 24 horas, pero he operado bien dentro del mismo día usando ticks descargados en el probador. Todos los ajustes de MetaTrader son normales, las caras son sonrientes y la conexión con el servidor del broker también es normal. Tengo que mirar qué es lo que falla en el código. Aunque, este código no necesita ningún induks y los parámetros son válidos por sus condiciones para saltar las órdenes de apertura. Estoy desconcertado.
Archivos adjuntos:
BlackJack.mq4  47 kb
 
Порт-моне тв:
Estimados colegas, he terminado mi Asesor Experto. Funciona bien en el Probador de Estrategias pero se ha configurado de tal manera que abre una orden aleatoria inmediatamente cuando se añade al gráfico. Esto es óptimo para el GBPUSD. Sin embargo, no abre órdenes en la demo. Tengo un amplio margen, sin errores, pero, de nuevo, las órdenes no se han abierto durante 24 horas, pero he operado bien dentro del mismo día usando ticks descargados en el probador. Todos los ajustes de MetaTrader son normales, las caras son sonrientes y la conexión con el servidor del broker también es normal. Tengo que mirar qué es lo que falla en el código. Aunque, este código no necesita ningún induks y los parámetros son válidos por sus condiciones para saltar las órdenes de apertura. Me estoy rascando la cabeza.

Hay muchos cuellos de botella. El código está mal escrito - un manejo de datos extremadamente descuidado. Necesita refactorización

 
Nikita Chernyshov:

Hay muchos cuellos de botella. El código está mal escrito - un manejo de datos extremadamente descuidado. Hay que refactorizarlo.

Su evaluación abstracta no revela la causa.

 
Порт-моне тв:

que putos cuellos de botella...que @@#$ refactorizar

el código fue escrito "para mi único amor, para la cerveza y mientras lo recuerdo" :-)

honestamente - lo descargué, lo miré en diagonal, no lo entiendo...

----

Cualquier código está documentado/comentado en caso de una repentina amnesia profesional personal. Es entonces cuando te olvidas de todo, excepto del lenguaje de programación.

Nadie va a analizar un algoritmo desconocido implementado de forma desconocida. Al menos, de forma gratuita. Por dinero, lo reescribirán.

Tú eres uno de ellos. Después de una pausa de dos-tres meses no recordarás por qué hay tantas variables en OnTick y qué querías leer de ellas

 
Maxim Kuznetsov:

que putos cuellos de botella...que @@#$ refactorizar

el código fue escrito "para mi único amor, para la cerveza y mientras lo recuerdo" :-)

honestamente - lo descargué, lo miré en diagonal, no lo entiendo...

----

Cualquier código está documentado/comentado en caso de una repentina amnesia profesional personal. Es entonces cuando te olvidas de todo, excepto del lenguaje de programación.

Nadie analizará un algoritmo desconocido implementado de forma desconocida. Al menos, de forma gratuita. Por dinero, lo reescribirán.

Tú eres uno de ellos. Después de una pausa de dos-tres meses no recordarás por qué había tantas variables en OnTick y qué querías leer de ellas

Hay un montón de cosas innecesarias ahí, para probar digamos diferentes funciones. No debería interferir y no lo ha hecho en otros EAs, que simplemente funcionan. Sospecho que he puesto un paréntesis en el lugar equivocado o algo así.
Razón de la queja: