Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 31

 
Sim, claro que a codifiquei correctamente em teoria, mas num cinco a função de impressão não funciona muito bem, é confusa, e muitas vezes não escreve. Sim!!
 
Dimka-novitsek:

Sim, esse é na verdade o guião que me foi oferecido para escrever, aparentemente, que inseri na função de carrapato do meu perito!

Não, não é um guião. Estas são as suas linhas. O guião deve produzir linhas como Print(EnumToString((ENUM_TIMEFRAMES)i)+"="+IntegerToString(i));
 
Dimka-novitsek:
...nos cinco a função de impressão funciona de alguma forma não muito bem, com uma reviravolta, e muitas vezes não escreve. Sim!!
O separador Perito pode não mostrar todas as mensagens de um programa em curso. Para ver todas as mensagens, é necessário olhar para os registos (botão direito do rato, "Abrir").
 

Acontece que a função CSymbolInfo.Refresh() não actualiza os ticks, mas CSymbolInfo.RefreshRates() deve ser usada em vez disso;)

CSymbolInfo.Refresh() - actualiza os dados dos símbolos

CSymbolInfo.RefreshRates() - updates quotes=)

Se tudo está claro com o segundo método, mas qual é o objectivo do primeiro método?

 
WiND:

Acontece que a função CSymbolInfo.Refresh() não actualiza os ticks, mas CSymbolInfo.RefreshRates() deve ser usada em vez disso;)

CSymbolInfo.Refresh() - actualiza os dados dos símbolos

CSymbolInfo.RefreshRates() - updates quotes=)

Se tudo está claro com o segundo método, mas qual é o objectivo do primeiro método?

Bem, nunca se sabe. Talvez, alguém precise de actualizar dados sobre swaps, verificar fundos ao entrar no mercado, etc. Ver o código para mais detalhes:
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
 

OBRIGADO!!!

Claro, as minhas linhas. Queria escrever que sou um idiota, são as minhas linhas, e vi o seu comentário.

É necessário olhar para os registos (botão direito do rato, "Abrir") para ver todos os posts. OBRIGADO!!!

 

Existe um código de caracteres na codificação utf8 como uma string ( exemplo: "041e" )

Como obter o equivalente deste código no sistema 10º, e depois convertê-lo para um carácter (código 041e = letra russa O)

Que confusão, mas não consigo perceber:)

 
Bom dia! Não sei bem o que estou a fazer esta manhã. Por favor, diga-me, estas duas primeiras variáveis, o que há de errado com elas?
 
Dimka-novitsek:
Bom dia, não sei bem o que estou a fazer. Por favor, diga-me, estas duas primeiras variáveis, o que há de errado com elas?

A primeira variável de string que definir como função, torná-la vazia (=NULL ou ="""). Depois no OnInit pode fazer =_Símbolo .

Segundo: ou colocar; após 5 ou remover o segundo int.

 
OBRIGADO!!!