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

 

Guten Tag.

Können Sie mir bitte sagen, wie ich diese Funktion ändern kann, um den Fehler zu beheben (die Größe der lokalen Variablen ist zu groß (mehr als 512kb)):

double DTWDistance(double &s[], double &t[])
{
   int slenght = ArraySize(s);
   int tlenght = ArraySize(t);
   double dtw[1000][1000];
   int i, j;

   dtw[0, 0] = 0.0;
   for (j = 1; j <= tlenght; j++)
   {
      dtw[0, j] = 1000000.0;
   }
  
   for (i = 1; i <= slenght; i++)
   {
      dtw[i, 0] = 1000000.0;
   }

   for (i = 1; i <= slenght; i++)
   {
      for (j = 1; j <= tlenght; j++)
      {
         dtw[i, j] = Distance(s[i], t[j]) + MathMin(dtw[i - 1, j], MathMin(dtw[i, j - 1], dtw[i - 1, j - 1]));
      }
   }

   return (dtw[slenght, tlenght]);
}
 
Craft:

Guten Tag.

Können Sie mir bitte sagen, wie ich diese Funktion ändern kann, um den Fehler zu beheben (die Größe der lokalen Variablen ist zu groß (mehr als 512kb)):

double DTWDistance(double &s[], double &t[])
{
....
   return (dtw[slenght, tlenght]);
}
Um sie neu zu erstellen, müssen Sie wissen, was Ihre Funktion löst und für welche Aufgaben sie verwendet wird
 
Vitaly Muzichenko:
Um sie zu überarbeiten, müssen Sie wissen, was Ihre Funktion löst und für welche Aufgaben sie verwendet wird.
Guten Tag, Vitaliy.

Ich habe versucht, herauszufinden, wie es zu beheben, so habe ich einfache Codeschnipsel aus WmiFor30 Indikator zum Beispiel beigefügt. Können Sie mir anhand dieses Beispiels zeigen, wie ich diesen Fehler beheben kann?

Dateien:
WmiFor30.mq4  25 kb
 
Craft:
Guten Tag, Vitaly.

Seit einem bestimmten Build von MT4 habe ich begonnen, einen Fehler während der Kompilierung (die Größe der lokalen Variablen ist zu groß (mehr als 512kb)) von verschiedenen Code zu erhalten, habe ich versucht zu verstehen, wie man damit umgehen und zum Beispiel habe ich eingefügt, was ich dachte, war ein einfaches Code-Fragment von WmiFor30 Indikator. Können Sie mir anhand dieses Beispiels zeigen, wie ich diesen Fehler beheben kann?

Ich weiß nicht, woran es liegt, probieren Sie es aus, Sie werden die Lösung sehen.
Dateien:
WmiFor30.mq4  25 kb
 
Vitaly Muzichenko:
Ich weiß nicht, was da drin ist, probieren Sie es aus.
Danke, das ist sehr interessant.
 

Grafische Frage:

Es gibt einen Entwurf wie diesen

for(long currChart = ChartFirst();currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

Wie finde ich heraus, dass das Diagramm nicht das Hauptdiagramm ist, sondern im Testmodus geöffnet ist, und überspringe es?

 
Hallo!
Heute ist Sonntag:
TimeCurrent()=1478300399, das entspricht 2016.11.04 22:59 - Freitag
DayOfWeek()=5, das ist ganz natürlich ))

Frage: Bitte sagen Sie mir, wie ich programmatisch in init() bestimmen kann; dass jetzt, wenn ein EA an einen Chart angehängt ist, der freie Tag Sonntag ist ?
Ohne Verweis auf TimeLocal():
 
Leo59:
Hallo!
Heute ist Sonntag:
TimeCurrent()=1478300399, das entspricht 2016.11.04 22:59 - Freitag
DayOfWeek()=5, was ganz natürlich ist ))

Frage: Könnten Sie mir bitte sagen, wie man programmatisch in init(); bestimmen, dass jetzt, im Moment des Anhängens von EA an Chart, Tag aus ist Sonntag?
Ohne Verweis auf TimeLocal():
Wird das helfen?
 
Vitaly Muzichenko:
Wird es helfen?
Danke für den Hinweis. Aber, :

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) kann in den folgenden Fällen false zurückgeben:

  • keine Verbindung zum Handelsserver. Kann mit TerminalInfoInteger(TERMINAL_CONNECTED)) überprüft werden;
  • das Handelskonto wurde in den Nur-Lese-Modus versetzt (ins Archiv gesendet);
  • Der Handel mit dem Konto wurde auf der Handelsserverseite verboten;
  • die Verbindung zum Handelskonto im Anlegermodus hergestellt wurde.

Hier wenn nur : Handel ist auf der Handelsserverseite verboten;

Es ist nicht ganz richtig ))


Obwohl im Prinzip boolIsTradeAllowed(); ausprobiert werden kann.

Vielen Dank Vitaly!!!!

 
Leider funktioniert es nicht.

init();
if(IsTradeAllowed()) Print("Trade Allowed");
if(!IsTradeAllowed()) Print("Handel ist NICHT erlaubt");


Hier steht: "Handel zugelassen"

Es muss einen anderen Weg geben. Wie kann ich das tun?

Grund der Beschwerde: