Fehler, Irrtümer, Fragen - Seite 42

 
Kos:
Welchen Sinn hat es, eine solche Konstruktion zu kompilieren, wenn sie dazu führt, dass das MQL5-Programm nicht geladen werden kann?

Vielen Dank für diesen Beitrag. Der NULL-Parsing-Fehler fürden condit-Operator wurde behoben.
 

Wie viele dynamische Felder kann ein Indikator maximal enthalten?

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
dentraf:

Wie viele dynamische Felder kann ein Indikator maximal enthalten?

Die Grenzen werden durch Ihre Hardware-Ressourcen bestimmt.

Wie viel Speicherplatz verfügbar ist.

 
dentraf:

Wie viele dynamische Felder kann ein Indikator maximal enthalten?

Es gibt nicht mehr als 512 Indikator-Arrays. In der Regel beliebige Arrays - so viele, wie der Speicherplatz reicht
 

dieses Skript geschrieben, um die Funktion zu testen

OrderCalcMargin()

Es wird die Fehlermeldung 4002 ausgegeben, was habe ich falsch gemacht?

void OnStart()
  {
   int total=SymbolsTotal(false);
   double marginbay;
   double marginsell;
   MqlTick pr;
   for(int i=0;i<=total;i++)
     {
      if(OrderCalcMargin(ORDER_TYPE_BUY,SymbolName(i,false),1.0,pr.ask,marginbay))
         Print("Маржа для покупки "+SymbolName(i,false)+" = ",DoubleToString(marginbay));
      else Print("Ошибка  № - ",GetLastError());

      if(OrderCalcMargin(ORDER_TYPE_SELL,SymbolName(i,false),1.0,pr.bid,marginsell))
         Print("Маржа для продажи "+SymbolName(i,false)+" = ",DoubleToString(marginsell));
      else Print("Ошибка  № - ",GetLastError());

     }
  }
 

es ist seltsam, wenn Sie nicht die Struktur der Anfrage für aktuelle Preise dann alles berechnet wird, außer für Instrumente wie #AA in diesem Fall gibt es Null, ich frage mich, warum? wie dann die Marge für solche Instrumente zu berechnen

void OnStart()
  {
   int total=SymbolsTotal(false);
   double marginbay;
   double marginsell;
   //MqlTick pr;
   for(int i=0;i<=total;i++)
     {
      if(OrderCalcMargin(ORDER_TYPE_BUY,SymbolName(i,false),1.0,SymbolInfoDouble(SymbolName(i,false),SYMBOL_ASK),marginbay))
         Print("Маржа для покупки "+SymbolName(i,false)+" = ",DoubleToString(marginbay));
      else Print("Ошибка  № - ",GetLastError());

      if(OrderCalcMargin(ORDER_TYPE_SELL,SymbolName(i,false),1.0,SymbolInfoDouble(SymbolName(i,false),SYMBOL_BID),marginsell))
         Print("Маржа для продажи "+SymbolName(i,false)+" = ",DoubleToString(marginsell));
      else Print("Ошибка  № - ",GetLastError());

     }
  }
Документация по MQL5: Получение рыночной информации / SymbolInfoTick
Документация по MQL5: Получение рыночной информации / SymbolInfoTick
  • www.mql5.com
Получение рыночной информации / SymbolInfoTick - Документация по MQL5
 
Ich habe herausgefunden, warum die erste Option nicht funktioniert hat, ich hätte die Funktion
SymbolInfoTick(SymbolName(i,false),pr);
im Schleifenkörper, um den Kurs für das gewünschte Symbol zu erhalten.
void OnStart()
  {
   int total=SymbolsTotal(false);
   double marginbay;
   double marginsell;
   MqlTick pr;
   for(int i=0;i<=total;i++)
     {
      SymbolInfoTick(SymbolName(i,false),pr);
      if(OrderCalcMargin(ORDER_TYPE_BUY,SymbolName(i,false),1.0,pr.ask,marginbay))
         Print("Маржа для покупки "+SymbolName(i,false)+" = ",DoubleToString(marginbay));
      else Print("Ошибка  № - ",GetLastError());

      if(OrderCalcMargin(ORDER_TYPE_SELL,SymbolName(i,false),1.0,pr.bid,marginsell))
         Print("Маржа для продажи "+SymbolName(i,false)+" = ",DoubleToString(marginsell));
      else Print("Ошибка  № - ",GetLastError());

     }
  }
Die Frage nach Nullwerten von Instrumenten des Typs #AA ist nach wie vor relevant
 
sergey1294:

dieses Skript geschrieben, um die Funktion zu überprüfen

Gibt Fehler 4002 zurück, was habe ich falsch gemacht?


sergey1294:
Ich habe herausgefunden, warum die erste Version nicht funktioniert hat. Ich hätte die Funktion in den Schleifenkörper schreiben sollen, um die Anführungszeichen für das gewünschte Symbol zu erhalten.

Sie beschließen einfach zu helfen... :)

PS

Ich weiß nicht, wie es anderen geht, aber der Markt für #AA ist so gut wie geschlossen...

 
Verstehe ich das richtig, dass ein Code der folgenden Art
AccountInfoDouble(ACCOUNT_FREEMARGIN) - OrderCalcMargin();
ist ein Analogon der MT4-Funktion
AccountFreeMarginCheck()
 
sergey1294:
Ich habe auch eine Frage, verstehe ich richtig, dass diese Art von Code ist ein Analogon der MT4-Funktion?

Wenn es keine offenen Stellen gibt, wird die Aussage wahrscheinlich richtig sein, wenn es offene Stellen gibt, sieht das Bild etwas anders aus...
Grund der Beschwerde: