Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 31

 
Ja, natürlich habe ich es theoretisch richtig kodiert, aber auf einem Fünfer funktioniert die Druckfunktion nicht richtig, sie ist unübersichtlich und schreibt oft nicht. Ja!!!
 
Dimka-novitsek:

Ja, das ist tatsächlich das Skript, das mir anscheinend angeboten wurde und das ich in die Häkchenfunktion meines Experten eingefügt habe!

Nein, es ist kein Drehbuch. Dies sind Ihre Zeilen. Das Skript muss Zeilen wie Print(EnumToString((ENUM_TIMEFRAMES)i)+"="+IntegerToString(i)) ausgeben;
 
Dimka-novitsek:
...auf einem Fünfer funktioniert die Druckfunktion irgendwie nicht ganz richtig, mit einem Knick, und schreibt oft nicht. Ja!!!
Auf der Registerkarte Experte werden möglicherweise nicht alle Meldungen eines laufenden Programms angezeigt. Um alle Meldungen zu sehen, müssen Sie sich die Protokolle ansehen (rechte Maustaste, "Öffnen").
 

Es stellt sich heraus, dass die Funktion CSymbolInfo.Refresh() nicht die Ticks aktualisiert, sondern stattdessen CSymbolInfo.RefreshRates() verwendet werden sollte;)

CSymbolInfo.Refresh() - aktualisiert die Symboldaten

CSymbolInfo.RefreshRates() - aktualisiert Anführungszeichen=)

Bei der zweiten Methode ist alles klar, aber was ist der Zweck der ersten Methode?

 
WiND:

Es stellt sich heraus, dass die Funktion CSymbolInfo.Refresh() nicht die Ticks aktualisiert, sondern stattdessen CSymbolInfo.RefreshRates() verwendet werden sollte;)

CSymbolInfo.Refresh() - aktualisiert die Symboldaten

CSymbolInfo.RefreshRates() - aktualisiert Anführungszeichen=)

Bei der zweiten Methode ist alles klar, aber was ist der Zweck der ersten Methode?

Nun, man weiß ja nie. Vielleicht muss jemand die Daten über Swaps aktualisieren, die Fonds bei Markteintritt überprüfen usw. Weitere Einzelheiten finden Sie im Code:
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
 

DANKESCHÖN!!!

Natürlich, mein Text. Wollte schreiben, dass ich ein Lutscher bin, das sind meine Zeilen, und sah deinen Kommentar.

Sie müssen sich die Protokolle ansehen (rechte Maustaste, "Öffnen"), um alle Beiträge zu sehen. DANKESCHÖN!!!

 

Es gibt einen Zeichencode in utf8-Kodierung als String ( Beispiel: "041e" )

Wie erhält man das Äquivalent dieses Codes im 10er-System und wandelt ihn dann in ein Zeichen um (Code 041e = russischer Buchstabe O)

Was für ein Durcheinander, aber ich kann es nicht herausfinden:)

 
Guten Morgen! Ich weiß nicht so recht, was ich heute Morgen machen soll. Sagen Sie mir bitte, was an den ersten beiden Variablen falsch ist?
 
Dimka-novitsek:
Guten Morgen, ich weiß nicht so recht, was ich hier tue. Sagen Sie mir bitte, was an den ersten beiden Variablen falsch ist?

Die erste String-Variable, die Sie als Funktion definieren, machen Sie leer (=NULL oder =""), dann können Sie in OnInit =_Symbol machen.

Setzen Sie entweder ; nach 5 oder entfernen Sie das zweite int.

 
DANKESCHÖN!!!