Questions des débutants MQL5 MT5 MetaTrader 5 - page 31

 
Oui, bien sûr, je l'ai encodé correctement en théorie, mais sur un cinq, la fonction d'impression ne fonctionne pas tout à fait correctement, elle est désordonnée et souvent n'écrit pas. Oui !!
 
Dimka-novitsek:

Oui, c'est en fait le script qu'on m'a proposé d'écrire, apparemment, que j'ai inséré dans la fonction he tick de mon expert !

Non, ce n'est pas un script. Ce sont vos lignes. Le script doit produire des lignes comme Print(EnumToString((ENUM_TIMEFRAMES)i)+"="+IntegerToString(i)) ;
 
Dimka-novitsek:
...sur un cinq, la fonction d'impression fonctionne d'une manière ou d'une autre pas tout à fait correcte, avec une torsion, et souvent n'écrit pas. Oui !!
L'onglet Expert peut ne pas afficher tous les messages d'un programme en cours. Pour voir tous les messages, vous devez consulter les journaux (bouton droit de la souris, "Ouvrir").
 

Il s'avère que la fonction CSymbolInfo.Refresh() ne rafraîchit pas les ticks, mais qu'il faut utiliser CSymbolInfo.RefreshRates() à la place ;)

CSymbolInfo.Refresh() - met à jour les données des symboles

CSymbolInfo.RefreshRates() - mise à jour des guillemets=)

Si tout est clair avec la deuxième méthode, mais quel est le but de la première méthode ?

 
WiND:

Il s'avère que la fonction CSymbolInfo.Refresh() ne rafraîchit pas les ticks, mais qu'il faut utiliser CSymbolInfo.RefreshRates() à la place ;)

CSymbolInfo.Refresh() - met à jour les données des symboles

CSymbolInfo.RefreshRates() - mise à jour des guillemets=)

Si tout est clair avec la deuxième méthode, mais quel est le but de la première méthode ?

Eh bien, on ne sait jamais. Peut-être, quelqu'un doit-il mettre à jour les données sur les swaps, vérifier les fonds lors de l'entrée sur le marché, etc. Voir le code pour plus de détails :
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
 

MERCI ! !!

Bien sûr, mes lignes. Je voulais écrire que je suis une suceuse, ce sont mes lignes, et j'ai vu votre commentaire.

Vous devez consulter les journaux (bouton droit de la souris, "Ouvrir") pour voir tous les messages. MERCI ! !!

 

Il existe un code de caractère dans l'encodage utf8 sous forme de chaîne de caractères (exemple : "041e").

Comment obtenir l'équivalent de ce code dans le 10e système, puis le convertir en un caractère (code 041e = lettre russe O) ?

Quel désordre, mais je n'arrive pas à le comprendre :)

 
Bonjour ! Je ne sais pas vraiment ce que je fais ce matin. Dites-moi, ces deux premières variables, qu'est-ce qui ne va pas avec elles ?
 
Dimka-novitsek:
Bonjour, je ne sais pas vraiment ce que je fais. Dites-moi, ces deux premières variables, qu'est-ce qui ne va pas avec elles ?

La première variable de type chaîne de caractères que vous définissez en tant que fonction doit être vide (=NULL ou =""), puis dans OnInit vous pouvez faire =_Symbol .

Deuxièmement, il faut soit mettre ; après 5, soit supprimer le deuxième int.

 
MERCI ! !!