Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 31

 
Sì, certo che l'ho codificato correttamente in teoria, ma su un cinque la funzione di stampa non funziona bene, è disordinata e spesso non scrive. Sì!
 
Dimka-novitsek:

Sì, questo è effettivamente lo script che mi è stato offerto di scrivere, a quanto pare, che ho inserito nella funzione he tick del mio esperto!

No, non è un copione. Queste sono le vostre linee. Lo script deve produrre righe come Print(EnumToString((ENUM_TIMEFRAMES)i)+"="+IntegerToString(i));
 
Dimka-novitsek:
...su un cinque la funzione di stampa funziona in qualche modo non proprio bene, con una torsione, e spesso non scrive. Sì!
La scheda Expert potrebbe non mostrare tutti i messaggi di un programma in esecuzione. Per vedere tutti i messaggi, devi guardare i registri (tasto destro del mouse, "Apri").
 

Si scopre che la funzione CSymbolInfo.Refresh() non aggiorna i tick, ma dovrebbe invece essere usata CSymbolInfo.RefreshRates();)

CSymbolInfo.Refresh() - aggiorna i dati del simbolo

CSymbolInfo.RefreshRates() - aggiorna le virgolette=)

Se tutto è chiaro con il secondo metodo, ma qual è lo scopo del primo metodo?

 
WiND:

Si scopre che la funzione CSymbolInfo.Refresh() non aggiorna i tick, ma dovrebbe invece essere usata CSymbolInfo.RefreshRates();)

CSymbolInfo.Refresh() - aggiorna i dati del simbolo

CSymbolInfo.RefreshRates() - aggiorna le virgolette=)

Se tutto è chiaro con il secondo metodo, ma qual è lo scopo del primo metodo?

Beh, non si sa mai. Forse, qualcuno deve aggiornare i dati sugli swap, controllare i fondi quando si entra nel mercato, ecc. Vedere il codice per maggiori dettagli:
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
 

GRAZIE!!!

Naturalmente, le mie battute. Volevo scrivere che sono un babbeo, sono le mie battute, e ho visto il tuo commento.

Devi guardare i registri (tasto destro del mouse, "Apri") per vedere tutti i post. GRAZIE!!!

 

C'è un codice di carattere nella codifica utf8 come una stringa (esempio: "041e")

Come ottenere l'equivalente di questo codice nel 10° sistema, e poi convertirlo in un carattere (codice 041e = lettera russa O)

Che casino, ma non riesco a capirlo:)

 
Buongiorno, non so bene cosa sto facendo questa mattina. Per favore, ditemi, queste prime due variabili, cosa c'è che non va?
 
Dimka-novitsek:
Buongiorno, non so bene cosa sto facendo. Per favore, ditemi, queste prime due variabili, cosa c'è che non va?

La prima variabile di stringa che definisci come funzione, rendila vuota (=NULL o ="").Poi in OnInit puoi fare =_Symbol .

Secondo.O mettere ; dopo 5 o rimuovere il secondo int.

 
GRAZIE!!!
Motivazione: