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

 
Sí, claro que lo codifiqué correctamente en teoría, pero en un cinco la función de impresión no funciona del todo bien, es desordenada y a menudo no escribe. ¡¡Sí!!
 
Dimka-novitsek:

Sí, en realidad ese es el guión que me ofrecieron escribir, al parecer, ¡que inserté en la función he tick de mi experto!

No, no es un guión. Estas son sus líneas. El script debe mostrar líneas como Print(EnumToString((ENUM_TIMEFRAMES)i)+"="+IntegerToString(i));
 
Dimka-novitsek:
...en el cinco la función de impresión funciona de alguna manera no del todo bien, con un giro, y a menudo no escribe. ¡¡Sí!!
La pestaña Experto puede no mostrar todos los mensajes de un programa en ejecución. Para ver todos los mensajes, hay que mirar los registros (botón derecho del ratón, "Abrir").
 

Resulta que la función CSymbolInfo.Refresh() no refresca los ticks, sino que se debe utilizar CSymbolInfo.RefreshRates().

CSymbolInfo.Refresh() - actualiza los datos del símbolo

CSymbolInfo.RefreshRates() - actualiza las comillas=)

Si todo está claro con el segundo método, pero ¿para qué sirve el primero?

 
WiND:

Resulta que la función CSymbolInfo.Refresh() no refresca los ticks, sino que se debe utilizar CSymbolInfo.RefreshRates().

CSymbolInfo.Refresh() - actualiza los datos del símbolo

CSymbolInfo.RefreshRates() - actualiza las comillas=)

Si todo está claro con el segundo método, pero ¿para qué sirve el primero?

Bueno, nunca se sabe. Tal vez, alguien tenga que actualizar los datos de los swaps, comprobar los fondos al entrar en el mercado, etc. Consulte el código para obtener más detalles:
bool CSymbolInfo::Refresh(void)
  {
   long tmp=0;
//---
   if(!SymbolInfoDouble(m_name,SYMBOL_POINT,m_point))                               return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_TICK_VALUE,m_tick_value))               return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_TICK_VALUE_PROFIT,m_tick_value_profit)) return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_TICK_VALUE_LOSS,m_tick_value_loss))     return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_TICK_SIZE,m_tick_size))                 return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_CONTRACT_SIZE,m_contract_size))         return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_VOLUME_MIN,m_lots_min))                       return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_VOLUME_MAX,m_lots_max))                       return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_VOLUME_STEP,m_lots_step))                     return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_VOLUME_LIMIT,m_lots_limit))                   return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_SWAP_LONG,m_swap_long))                       return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_SWAP_SHORT,m_swap_short))                     return(false);
   if(!SymbolInfoInteger(m_name,SYMBOL_DIGITS,tmp))                                 return(false);
   m_digits=(int)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_TRADE_EXEMODE,tmp))                          return(false);
   m_trade_execution=(ENUM_SYMBOL_TRADE_EXECUTION)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_TRADE_CALC_MODE,tmp))                        return(false);
   m_trade_calcmode=(ENUM_SYMBOL_CALC_MODE)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_TRADE_MODE,tmp))                             return(false);
   m_trade_mode=(ENUM_SYMBOL_TRADE_MODE)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_SWAP_MODE,tmp))                              return(false);
   m_swap_mode=(ENUM_SYMBOL_SWAP_MODE)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_SWAP_ROLLOVER3DAYS,tmp))                     return(false);
   m_swap3=(ENUM_DAY_OF_WEEK)tmp;
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_INITIAL,m_margin_initial))             return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_MAINTENANCE,m_margin_maintenance))     return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_LONG,m_margin_long))                   return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_SHORT,m_margin_short))                 return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_LIMIT,m_margin_limit))                 return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_STOP,m_margin_stop))                   return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_STOPLIMIT,m_margin_stoplimit))         return(false);
   if(!SymbolInfoInteger(m_name,SYMBOL_EXPIRATION_MODE,tmp))                        return(false);
   m_trade_time_flags=(int)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_FILLING_MODE,tmp))                           return(false);
   m_trade_fill_flags=(int)tmp;
//--- ok
   return(true);
  }
Документация по MQL5: Торговые функции / OrderCheck
Документация по MQL5: Торговые функции / OrderCheck
  • www.mql5.com
Торговые функции / OrderCheck - Документация по MQL5
 

¡¡¡GRACIAS!!!

Por supuesto, mis líneas. Quería escribir que soy un pringado, son mis líneas, y he visto tu comentario.

Tienes que mirar los registros (botón derecho del ratón, "Abrir") para ver todos los mensajes. ¡¡¡GRACIAS!!!

 

Hay un código de carácter en la codificación utf8 como una cadena ( ejemplo: "041e" )

Cómo obtener el equivalente de este código en el décimo sistema, y luego convertirlo en un carácter (código 041e = letra rusa O)

Qué lío, pero no puedo entenderlo:)

 
¡Buenos días! No sé muy bien qué estoy haciendo esta mañana. Por favor, dime, estas dos primeras variables, ¿qué tienen de malo?
 
Dimka-novitsek:
Buenos días, no sé muy bien lo que estoy haciendo. Por favor, dime estas dos primeras variables, ¿qué tienen de malo?

La primera variable de cadena que defina como función, hágala vacía (=NULL o ="").Luego en OnInit puede hacer =_Símbolo .

El segundo. O pones ; después de 5 o quitas el segundo int.

 
¡¡¡GRACIAS!!!