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

 
Alexey Viktorov:

Tienes que comprobarlo en el depurador. No puedo asegurarlo.

Entendido, gracias.

 
Amigos, por favor, aconsejar cómo prescribir un código en el asesor para el comercio sólo en una dirección de compra o venta
 
Alexanerhoch:
Amigos, por favor, aconsejar cómo prescribir un código en el asesor para el comercio sólo en una dirección de compra o venta

F7 - general - sólo compras

 
Iurii Tokman:

F7 - general - sólo compras

no hay tal cosa en mt5

 
Alexanerhoch:
Amigos, por favor, aconsejar cómo prescribir un código en el asesor para el comercio sólo en una dirección de compra o venta

Así es;

enum typ
  {
                        ty1=0,                  //Buy and Sell
                        ty2=1,                  //Only Buy
                        ty3=2                   //Only Sell
  };

input typ               TradesType=ty1;         //Type of trading operations
.
.
.
if(TradesType!=2 && ...
if(TradesType!=1 && ...
 
VVT:

Así es;

Gracias

 

Buenas tardes, colegas. No encuentro ningún error en el código. El método .Magic() de la claseCPositionInfo da el valor correcto, si la operación se abre directamente en el código a través de la clase Trade.mqh.

Si abro una operación a través de Trade.mqh, pero llamada en otra clase, entonces el método .Magic() da 0 en el códigodel Asesor Experto. ¿Por qué es así?

Adjunto el código.

Archivos adjuntos:
MQL5.zip  5 kb
 
Ildar Yusupov:

Buenas tardes, colegas. No encuentro ningún error en el código. El método .Magic() de la claseCPositionInfo da el valor correcto, si la operación se abre directamente en el código a través de la clase Trade.mqh.

Si abro una operación a través de Trade.mqh, pero llamada en otra clase, entonces el método .Magic() da 0 en el códigodel Asesor Experto. ¿Por qué es así?

Adjunto el código.

No abro el código)

Por lo tanto, la segunda variante no utiliza Magic, fíjate bien en el código

 
Ildar Yusupov:

Buenas tardes, colegas. No encuentro ningún error en el código. El método .Magic() de la claseCPositionInfo da el valor correcto, si la operación se abre directamente en el código a través de la clase Trade.mqh.

Si abro una operación a través de Trade.mqh, pero llamada en otra clase, entonces el método .Magic() da 0 en el código del Asesor Experto. ¿Por qué es así?

Adjunto el código.

Ni siquiera he mirado el archivo.

El algoritmo es siempre el siguiente: se crea 'm_trade' - objeto de la clase CTrade. Si quieres que opere por su Magia - debes hacer

   m_trade.SetExpertMagicNumber(InpMagic);

- Es decir, debe establecer esta Magia para el objeto de la clase CTrade.

 
Vitaly Muzichenko:

no hay tal cosa en mt5.

Lo hago a la vieja usanza, no puedo dejar de hacerlo...

Razón de la queja: