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

 
Gracias. Justo lo que necesito. Hice un guión y... ...lo midió. TERMINAL_MEMORY_TOTAL y TERMINAL_MEMORY_AVAILABLE error en la documentación, nunca entendí que dan y en que medidas, pero parece que no es lo que se pretende.
 
paladin800:

Por favor, indique cómo comprobar las condiciones en el código, por ejemplo

El acumulado 1 es el más normal.
 
Utilizo la biblioteca estándar para obtener la oferta actual:

CSymbolInfo m_symbol;

m_symbol.Bid()


En el probador (Todos los ticks, M1) me sale que no es la oferta actual sino el precio de apertura de la barra. ¿Quizá me he perdido algo? ¿Cómo puedo comprobar correctamente el precio en los ticks para obtener resultados correctos en el probador?

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
tyun:
Estoy utilizando la biblioteca estándar para obtener la oferta actual:

CSymbolInfo m_symbol;

m_symbol.Bid()


En el probador (Todos los ticks, M1) me sale que no es la oferta actual sino el precio de apertura de la barra. ¿Quizá me he perdido algo? ¿Cómo puedo comprobar correctamente el precio en los ticks para obtener resultados correctos en el probador?

https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinforefreshrates
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / RefreshRates
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / RefreshRates
  • www.mql5.com
Стандартная библиотека / Торговые классы / CSymbolInfo / RefreshRates - Документация по MQL5
 

Abro una operación con CTrade con un stop loss.

¿Y cómo puedo captar el momento del cierre de una operación por Stop Loss en el método OnTrade o OnTransactionTrade?

Conozco el ticket, conozco el dial, pero siempre son diferentes en OnTransactionTrade (aunque entiendo por qué)

 
WiND:

Abro una operación con CTrade con un stop loss.

¿Y cómo puedo captar el momento del cierre de una operación por Stop Loss en el método OnTrade o OnTransactionTrade?

Conozco el ticket, conozco el dial, pero siempre son diferentes en OnTransactionTrade (aunque entiendo por qué)

A partir del comentario se puede saber si la posición fue cerrada por Stop Loss/TakeProfit. Para el Stop Loss comprueba la sl en el comentario y para el Take Profit tp.
 
tol64:
Según el comentario podemos saber si la posición ha sido cerrada por Stop Loss/TakeProfit. Para el Stop Loss comprueba el comentario sl, y para el Take Profit comprueba el tp.

He pensado en el comentario, pero que yo recuerde los comentarios pueden ser modificados por el servidor.

En general, me da igual que se cierre por stoploss, takeprofit o manualmente.

Lo principal es identificar el momento de cierre de una determinada orden.

 
WiND:

He pensado en el comentario, pero que yo recuerde los comentarios pueden ser modificados por el servidor.

En general, me da igual que se cierre por stoploss, takeprofit o manualmente.

Lo principal es identificar el momento de cierre de una determinada orden.

También puede utilizar el identificador DEAL_ENTRY_OUT de la enumeración ENUM_DEAL_ENTRY para entender que la posición ha sido cerrada.

Referencia: Propiedades de los oficios.

 

¡Hola!

Tengo un EA en MQl4 que necesita ser convertido a MQL5. Por favor, ayúdenme a entender la función CopyBuffer().

En MQl4, el código tiene el siguiente aspecto:

....
int start()
{ 
   induk_real1 = iCustom(NULL, PERIOD_H1, "Laguerre", gamma, 950, 0, 0);
   induk1 = NormalizeDouble(induk_real1,2);
 
   if(OrdersTotal( )<1){
  
   if(induk1==1) {

......
}}}

En MQL5 se ve así. El error 'CopyBuffer' - no se puede aplicar ninguna de las sobrecargas a la llamada de la función.

....
int OnInit()
  {
   SymbolSelect(_Symbol,true);
   induk_handle = iCustom(NULL,PERIOD_H1,"Laguerre",gamma); 
   return(0);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
   CopyBuffer(induk_handle,0,1,2,induk_real1);
   induk1 = NormalizeDouble(induk_real1,2);
   
    if(OrdersTotal()<1){
    if(induk1==1) {
    ......
     }}}   
 
Aid:

¡Hola!

Tengo un EA en MQl4 que necesita ser convertido a MQL5. Por favor, ayúdenme a entender la función CopyBuffer().

En MQl4, el código tiene el siguiente aspecto:

En MQL5 se ve así. El error 'CopyBuffer' - no se puede aplicar ninguna de las sobrecargas a la llamada de la función.

induk_real1 - debería haber una matriz.
Razón de la queja: