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

 
WindSW:
Können Sie mir bitte sagen, wie ich sehen kann, wie viel Arbeitsspeicher Expert Advisor belegt und wie er neu zugewiesen wird?

Der Windows Task-Manager sollte für Sie ausreichend sein.

Lesen Siediesen Artikel.

Generell sollten Sie Ihren Expert Advisor in Skripte zerlegen, alle Funktionen zum Laufen bringen und diese dann zu einem Stapel zusammenfügen.

 
WindSW:

Und dennoch kann ich nicht herausfinden, warum die Ebenen nicht mit ObjectCreate erstellt werden. Alle Funktionen funktionieren, aber es werden keine OBJ_TREND-Objekte erstellt

Es gibt Variablen, die auf der globalen Ebene definiert sind:

string oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3;

Der Code, der die Ebenen erstellen soll:

Leute, helft mit, das zu klären. Bitte

Ebenen werden erstellt, sie sind nur nicht sichtbar)

Legen Sie die Koordinaten fest - Zeit / Preis. Sie haben überall Nullen.

 
Dima_S:

Die Levels werden erstellt, man kann sie nur nicht sehen)

Legen Sie die Koordinaten fest - Zeit / Preis. Sie haben dort Nullen fest eingestellt.

Es erstellt ein Objekt ohne Bindungen und verändert es dann. Hier.

Das Objekt wird nicht erstellt, weil der Name nicht korrekt (nicht zugewiesen) ist. (Oben wurde bereits geantwortet). Folglich kann es nicht geändert werden, um es zu sehen.

 
fyords:

Angenommen, Sie haben Variablen auf globaler Ebene deklariert, haben Sie diesen Variablen Werte zugewiesen?

Wenn nicht, dann sagen Sie dem Programm: "Erstelle ein Objekt mit diesen und jenen Eigenschaften mit dem Namen..." und es gibt ein Problem - der Name ist nicht gegeben. Er schafft sie also nicht.

Wäre es nicht einfacher, dies direkt im ObjectCreate-Code anzugeben?

Ich danke Ihnen! Aus irgendeinem Grund habe ich nicht daran gedacht, das sofort zu tun, denn in Version 4 ist auch der Name des Objekts definiert.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

Ich kann keine Lösung für den Array-Überlauf-Fehler finden. Ich habe darüber auf Seite 88 geschrieben. Der Expert Advisor funktioniert eine Zeit lang und stürzt dann ab. Genauer gesagt funktioniert es in einem Durchgang vom Anfang bis zum Ende des Expert Advisors und im zweiten Durchgang in der Schleife darunter läuft das Array über und zeigt einen String an:

H=Hoch[j];

void CreateLevels()
   {
      double High[];
      ArrayResize(High,0);
      ArraySetAsSeries(High,true);
      CopyHigh(_Symbol,_Period,0,Candle,High);
      ArrayResize(HBar,0);
      ArrayResize(HBar,1000);
      int countH=0;
      int f1;
      double H;
      for(int j=Nachalo;j<=Candle;j++)
         {
          //--- поиск макс -----------------------------------
          if(iHighest(Symbol(),0,10,MN*2,j-MN)==j)
            {
             f1=0;
             H=High[j];                                 // отметка текущего хая
             ...                                        // здесь обработка флага f1
             if(f1==0)                                  // если занесение хая в массив разрешено
               {
                HBar[countH][0]=High[j];
                countH++;
               }
            }
         }
   }

Vor allem verstehe ich nicht, wie das Array High[] überläuft, da eine bestimmte Anzahl von Haves angegeben ist? Und warum zeigt das Terminal einen Überlauf im String H=High[j]; ?

Können Sie mir bitte sagen, wie ich das richtig umsetzen kann? Ist es möglich, das Array High[] zu löschen oder das Hoch einer bestimmten Kerze auf andere Weise in die Variable H zu schreiben?

 
WindSW:

Versuchen Sie es auf diese Weise:

for(int j=Nachalo;j< Candle;j++)

Grundlage: Die Indizierung von Arrays beginnt bei Null, so dass bei Candle==100 das letzte Element des Arrays durch die Zahl 99 und nicht durch die Zahl 100 indiziert wird.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Yedelkin:

Versuchen Sie es auf diese Weise:

Grundlage: Die Indizierung von Arrays beginnt bei Null, so dass bei Candle==100 das letzte Element des Arrays durch die Zahl 99 und nicht durch die Zahl 100 indiziert wird.

Ich danke Ihnen! Das hat geholfen!
 

Guten Tag, ich bin auf folgendes Problem gestoßen... Erzeugt einen Expert Advisor... Lassen Sie es auf RTS-Index-Futures laufen. Und dort sind die Lots nicht gebrochen = kein Money Management funktioniert, und die Notierungen sind Vielfache von 10 = Trailing Stop funktioniert nicht. Können Sie mir sagen, ob es möglich ist, dieses Problem zu lösen?

Ich weiß, wie man iMa-Werte auf 10 oder 5 abrundet, und ich denke, dass man als letzten Ausweg den Trailing-Stop separat ausführen sollte.

 
oldiol: Wenn mein EA nicht fraktionierte Lots hat = nicht funktionierendes Money Management, und ein Vielfaches von 10 zitiert = nicht funktionierender Trailing Stop. Können Sie mir sagen, ob es möglich ist, dieses Problem zu lösen?

Das Werkzeug hat eine Eigenschaft Volume_Step. Prüfen Sie, ob Sie es für nicht-fraktionelle Volumen verwenden können.

Bei Kursen, die durch 10 teilbar sind, müssen Sie nur den Trailing-Stop-Schritt gleich machen.

 
Yedelkin:

Das Werkzeug hat eine Eigenschaft Volume_Step. Prüfen Sie, ob Sie es für nicht-fraktionelle Volumen verwenden können.

Bei Kursen, die durch 10 teilbar sind, brauchen Sie nur den Trailing-Stop-Schritt gleich zu setzen.

Herzlichen Dank) Ich werde es ausprobieren.
Grund der Beschwerde: