Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1423

 
Sprut 185 #:
¡Hola!
¡Por favor, ayúdame a entender lo que estoy haciendo mal!

En cuanto pego un comentario en el código adjunto, mi robot deja de funcionar.
Sin el comentario - todo funciona. Cambio la cuenta a normal y falso.
¿Qué estoy haciendo mal?


https://www.mql5.com/ru/search#!keyword=ACCOUNT_LOGIN&module=mql5_module_forum

 
Sprut 185 #:
¡Hola!
¡Por favor, ayúdame a entender lo que estoy haciendo mal!

En cuanto pego un comentario en el código adjunto, mi robot deja de funcionar.
Sin el comentario - todo funciona. Cambio la cuenta a normal y falso.
¿Qué estoy haciendo mal?
 

Te olvidaste de los paréntesis en el if. Si no es igual a la puntuación, entonces comenta y luego retourn. Y si no es igual a la puntuación, sigue y le da a retourn.

void OnTick()
     {
      if(AccountInfoInteger(ACCOUNT_LOGIN) != 12345678) 
     {
         Comment("На этом счете - робот не работает");
      return;
     }
     }
 
Valeriy Yastremskiy #:

Y después de eso OnTick termina y espera el siguiente tick. ¡¡¡¡No va más allá!!!!

¡¡¡Gracias !!! Ya lo tengo solucionado, arreglado y ahora funciona.

Ha sido un fallo que se me ha subido a la cabeza.

 

Me pueden decir si es posible hacer una llamada desde el Expert Advisor

void OnTradeTransaction()

desde un archivo externo?

He creado un archivo de prueba *mqh y lo he añadido allí.

void OnTradeTransaction(const MqlTradeTransaction &trans,

                        const MqlTradeRequest &request,

                        const MqlTradeResult &result)

  {

  }

En el Asesor de Expertos he añadido este archivo

#include <тест.mqh>

Pero OnTradeTransaction no se llama desde el Asesor de Expertos.

¿Cómo hacerlo correctamente?

 
TrederMT5 OnTradeTransaction no se realiza.

¿Cómo hacerlo correctamente?

Yo haría lo contrario. En el archivo .mqh escriba una clase, por ejemplo CTest en el archivo test.mqh.

Conectar la clase

#include <test.mqh>
CTest onTest;


void CTest::MyOnTradeTransaction(const MqlTradeTransaction &trans,
                                 const MqlTradeRequest &request,
                                 const MqlTradeResult &result)

  {

  }

Y desde el EA desde la función OnTradeTransaction llamar a mi función

/*********************TradeTransaction function**********************/
void OnTradeTransaction(const MqlTradeTransaction& trans,
                        const MqlTradeRequest& request,
                        const MqlTradeResult& result)
 {
      onTest.MyOnTradeTransaction(trans, request, result);
 }/******************************************************************/
 
Alexey Viktorov #:

Yo haría lo contrario. En el archivo .mqh escribiría una clase, por ejemplo CTest en el archivo test.mqh.

Conectando la clase


Y desde el EA desde la función OnTradeTransaction llamar a mi función

Gracias
 

Me he atrevido a probar un primer EA sencillo y funciona a la perfección.

Pero cuando lo subo a MQL en el mercado, me aparece un mensaje de error:


¿A qué se debe? ¿Se debe a la cuenta de compensación?

Ya he leído algunos posts del foro sobre esto, pero no entiendo el problema.

El volumen es fijado por el EA. Incluso 0.01 lote etc. no funciona.
Estaría agradecido si alguien me ayuda.

 
Maik Kemper mensaje de error:


¿A qué se debe? ¿Es debido a la cuenta de compensación?

Ya he leído algunos mensajes del foro sobre esto, pero no entiendo el problema.

El volumen es fijado por la EA. Incluso 0.01 lote etc. no funciona.
Estaría agradecido si alguien me ayuda.

Es debido a la forma de calcular el volumen (lotes) - pero sin código?

Tamaño de lote fijo probablemente no es una solución, supongo que usted comprueba con el saldo de la cuenta alta y baja y diferentes cargos de margen ...

 
Carl Schreiber #:

es por la forma de calcular el volumen (lotes) - ¿pero sin código?

Tamaño de lote fijo probablemente no es una solución, supongo que compruebe con saldo de cuenta alta y baja y diferentes cargos de margen...

Para este simple EA en realidad he elegido un tamaño de lote fijo, esto se calculará de forma variable más tarde. Pero incluso con el tamaño de lote fijo existe el error .... ?

0.01, 0.02, 0.10 en todas partes hay el error

Edición2:

Ahora he utilizado el valor SYMBOL_VOLUME_MIN como el tamaño del lote en lugar de un tamaño fijo. Con MQL, 0,2 parece ser el tamaño más pequeño negociable.
Sin embargo, ahora me sale un mensaje de error porque probablemente sólo hay 1 $ o € en la cuenta....



Editar:

ahora he puesto el tamaño del lote a 1.0 y ahora me sale este mensaje


 
Матвей Москвич #:

por favor, ¿quién sabe donde se puede negociar USDKZT ?

La misma pregunta, me gustaría saber la respuesta.

Razón de la queja: