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

 
Artyom Trishkin:

En este caso, no es "mejor", es exactamente lo que necesita: es una clase que envuelve las funciones comerciales estándar. No almacena varios asistentes. Por lo tanto, necesita establecer un magik cada vez antes y cuando necesita abrir una posición con un nuevo magik.

Por lo general, la secuencia es la siguiente:

  • las posiciones deben abrirse con la magia 1 - establecemos la magia 1 y las posiciones posteriores tendrán la magia 1,
  • es necesario abrir posiciones con un Mago 2 - establecemos el Mago 2 y todas las posiciones siguientes tendrán un Mago 2,
  • es necesario abrir posiciones con magic 3 - estableceremos magic 3 y cada posición siguiente tendrá magic 3,

etc...

La razón por la que lo pongo así es porque algunas personas pueden tener una opinión diferente y también funciona.

 
Artyom Trishkin:

En este caso, no es "mejor", es exactamente lo que necesita: es una clase que envuelve las funciones comerciales estándar. No almacena varios asistentes. Por lo tanto, necesita establecer un magik cada vez antes y cuando necesita abrir una posición con un nuevo magik.

Por lo general, la secuencia es la siguiente:

  • las posiciones deben abrirse con la magia 1 - establecemos la magia 1 y las posiciones posteriores tendrán la magia 1,
  • es necesario abrir posiciones con un Mago 2 - establecemos el Mago 2 y todas las posiciones siguientes tendrán un Mago 2,
  • es necesario abrir posiciones con magic 3 - estableceremos magic 3 y cada posición siguiente tendrá magic 3,

etc...

Fue así:

if(BuyCount()>0)
        {
         Print("Уже есть позиция на покупку !!!");
         return; // не добавлять к открытой позиции на покупку
        }
         SL=NormalizeDouble(latest_price.ask - STP*_Point,_Digits);
         TP=NormalizeDouble(latest_price.ask + TKP*_Point,_Digits);
         m_trade.SetExpertMagicNumber(Magic);
         m_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2");
         m_position.Select(_Symbol);
           {
            ulong myMagic=m_position.Magic();
            Print(" Открыта поза Бай с магиком № ",myMagic,", И спредом ",SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));
           }

m_trade.SetExpertMagicNumber(Magic); antes de abrir una posición o después dem_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2");

 
Vladimir Karputov:

Como no hay un métodoGetExpertMagicNumber en la clase CTrade, imprime este código después de la operación de comercio:

De esta manera, puedes comprobar si ambos EAs tienen magias diferentes.

Gracias, es más conveniente. No necesito la clase CPositionInfo, no necesito seleccionar la posición. Funciona en el probador, pero hay que esperar a la evolución de la cuenta.

 

¿Por favor, dígame la diferencia entre SymbolInfoSessionQuote ySymbolInfoSessionTrade?
O, lo que es lo mismo, ¿cuál es la diferencia entre una sesión de cotización y una sesión comercial?

¡Santo cielo
! Y qué es session_index,// número de sesión
¿Tenemos sesiones numeradas? ¿Qué principio se utiliza para numerarlos, dónde está escrito?

 

Por favor, aconseje cómo utilizar el método void Ignore(long value) { m_ignore=value; } de la clase estándar CExpertSignal en la clase personalizada Trailing al programar en MQL5? ¿Cómo puedo acceder a ella?

Tengo una clase de señales personalizadas que me da métodos para abrir y cerrar posiciones. Pero en Trailing quería mantener la posición por otro método. Si se escriben por separado las clases personalizadas MySignal y MyTrailing, una posición se cierra por la condición, que se disparó primero. Si la condición de arrastre se activó antes, todo está bien. Pero a veces llega una nueva señal (de reversión) de MySignal y se invierte la posición, y necesito que vaya acompañada de Trailing después de la apertura, sin cerrar y sin abrir una nueva. He mirado las clases base y parece que m_ignore de la clase base de señales es la responsable de esto. Si se le asigna el valor 1 en el filtro correspondiente, parece que funciona como debería. He añadido filter0.Ignore(0) a la clase Expert Advisor en OnInit. Pero soy nuevo en POO y no entiendo cómo cambiar este valor en la clase MyTrailing, que no hereda de la clase CExpertSignal, sino que es su "prima" (digamos filter0.Ignore(1) ). Por favor, aconséjeme cómo hacerlo.

En realidad, una pregunta más general: ¿cómo pasar información entre dos clases que no son descendientes? ¿Cómo se transfiere la información de la clase de arrastre a la clase de señalización? Probablemente, puedes crear una variable global y comunicarte a través de ella. Pero esto parece bastante perverso en relación con la lógica de los miembros protegidos en la POO.


 
User_mt5:

¿Por favor, dígame la diferencia entre SymbolInfoSessionQuote ySymbolInfoSessionTrade?
O, lo que es lo mismo, ¿cuál es la diferencia entre una sesión de cotización y una sesión comercial?

¡Santo cielo
! Y qué es session_index,// número de sesión
¿Tenemos sesiones numeradas? ¿Por qué principio se numeran, dónde está escrito?

En términos sencillos.

Sesión de cotización: se está cotizando (pero puede haber una prohibición de negociación).

Sesión de negociación (dentro de una sesión de cotización o coincidiendo con ella): puede negociar.

Índice de la sesión - el número de índice de la sesión desde las 00:00:00-23:59 hora del servidor (si hay pausas, entonces la sesión es mayor que 1).

Consulte las especificaciones de cada símbolo en la visión general del mercado.

 
Kirill Belousov:

En términos sencillos

Sesión de cotizaciones: las cotizaciones continúan (pero puede haber una prohibición de negociación).

Sesión de negociación (dentro o coincidiendo con la sesión de cotización): puede operar.

Índice de la sesión - el número de índice de la sesión desde las 00:00:00-23:59 hora del servidor (si hay huecos, la sesión es mayor que 1).

Véase la especificación de cada símbolo en la descripción del mercado.

Gracias por la aclaración. Me has ayudado.

 
Vladimir Karputov:

Las señales de los céntimos ya sólo pueden ser gratuitas.

¿Por qué no puedo editar el nombre de mi perfil?

 
tsd Tsepkov:

¿Por qué no se puede editar el nombre en el perfil?

Acabo de comprobarlo: el nombre de la señal es perfectamente editable.

 
Vladimir Karputov:

Acabo de comprobarlo: el nombre de la señal es perfectamente editable.

Me refiero al nombre, dice que hay que cambiarlo por un nombre real, pero no funciona

Razón de la queja: