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

 
Maxim Kuznetsov:

Al abrir una orden, escriba el número de la regla/variable en el comentario.

Luego, cuando se hace una comprobación del historial, se saca ese número, se le suma 1 y se obtiene un nuevo número de regla

Gracias. Esa es una buena manera. Voy a intentar

 
Igor Makanu:

Experimente con este código, tal vez esto es lo que necesita

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.7 ---> 0.7

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.6 ---> 0.7

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.5 ---> 0.6

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.4 ---> 0.5

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.3 ---> 0.4

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.2 ---> 0.3

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.1 ---> 0.2

En mi función GetNextLot() se introduce el volumen de la última orden cerrada, y devolverá el siguiente valor de la configuración Lot_XX

la única limitación de este código es que tienes que configurar los lotes en orden ascendente - creo que el código es simple y sencillo, puedes modificarlo para adaptarlo a tus necesidades

¡¡¡Gracias!!!

 
Corvin85:

¡¡¡Gracias!!!

Por favor,

Si el cálculo de su lote es arbitrario, puede intentar sustituir if por switch-case en mi ejemplo

 
Quiero abrir dos terminales MT4 y conectarme a un EA desde ellos, es decir, que un programa se instale en un terminal y el otro también pueda encontrar el EA, es muy difícil compilar el programa y cada vez tirar un archivo allí y allá. ¿Es posible hacerlo?
 

¿Cuál es la mejor manera de escribir el algoritmo?


Tarea:

Un Asesor Experto se ejecuta en diferentes gráficos.

Necesito tener un archivo separado con información minuto a minuto sobre la cuenta, el saldo, el patrimonio, etc.


Ahora resulta que todos los Asesores Expertos escriben toda la información en un archivo. Como resultado, tenemos un montón de entradas innecesarias.


¿Cuál podría ser la solución ingeniosa para que sólo un bot haga registros en el archivo? (Y si, por ejemplo, se borró, los registros comenzaron a hacer otro bot, etc.)

 
Seric29:
Quiero abrir 2 terminales MT4 y conectarme a un EA desde ellos, es decir, que un programa se instale en un terminal y el segundo también sea capaz de encontrar el EA, es muy difícil compilar un programa y cada vez tengo que tirar un archivo allí y allá. ¿Es posible hacerlo?

No puedes hacer eso.

Busque un programa de Windows que sincronice los datos en carpetas. Y configurarlo para que el EA se copie automáticamente en el nuevo terminal

 
Sergey Likho:

¿Cuál es la mejor manera de escribir el algoritmo?


Tarea:

Un Asesor Experto se ejecuta en diferentes gráficos.

Necesito tener un archivo separado con información minuto a minuto sobre la cuenta, el saldo, el patrimonio, etc.


Ahora resulta que todos los Asesores Expertos escriben toda la información en un archivo. Como resultado, tenemos un montón de entradas innecesarias.


Cuál es la posible solución original, para que sólo un bot escriba en el archivo (Y, por ejemplo, si se borró, el otro bot comienza a hacer registros, etc.).

Puedes intentar organizar la comunicación a través de GV.

Por ejemplo: Iniciado el primero, no encuentra GV y lo crea con un nombre determinado. El ID del gráfico puede utilizarse como valor. Inicias el siguiente Asesor Experto, GV está ahí, no escribe. Se borra el primero, se comprueba el valor y si el valor es igual al ID del gráfico, se borra el GV. El siguiente ve que el GV está ausente y lo crea con su propio valor.

Por lo tanto, la GV sólo puede ser eliminada por quien la creó o por quien está a cargo, literalmente. Lo borra a mano.

 

Hola a todos. Tengo una pregunta tonta, no quiero experimentar un poco. Tengo un indicador, no necesito que salga nada de él, pero mi Asesor Experto tiene que tomar datos de él. ¿Cuál es la forma correcta de inicializar las matrices?

¿INDICATOR_DATA o INDICATOR_CALCULATIONS?

Bueno, en general, quiero saber, si puedo obtener datos del número de búfer en la función iCustom - utilizando el búfer definido como SetIndexBuffer(N, BufferName, INDICATOR_CALCULATIONS);

 
Никита Парамонов:

Hola a todos. Tengo una pregunta tonta, no quiero experimentar un poco. Tengo un indicador, no necesito que salga nada de él, pero mi Asesor Experto tiene que tomar datos de él. ¿Cuál es la forma correcta de inicializar las matrices?

¿INDICATOR_DATA o INDICATOR_CALCULATIONS?

Bueno, en general, quiero saber, si puedo obtener datos del número de búfer en la función iCustom - utilizando el búfer definido como SetIndexBuffer(N, BufferName, INDICATOR_CALCULATIONS);

Toma el MA estándar, cambia el tipo de datos del buffer, compila y comprueba en la ventana de datos del terminal (Ctrl+D)

 

ChartID() se escribe en las variables globales del terminal con un error. ¿qué es esta tontería?


Prueba este código:


   string GlobalVar1 = "GVAR";
   long ChID = ChartID();
   
   if(GlobalVariableSet(GlobalVar1,ChID) == 0)
      Print("Error GV", GetLastError());

   Print(GlobalVar1," id:",ChID, " GV_id:", (long)GlobalVariableGet(GlobalVar1));


//мой ответ 2019.11.29 13:30:39.292     test EURUSD,M5: GVAR id:132194970392300419 GV_id:132194970392300416

разница в конце в одну цифру
Razón de la queja: