Fehler, Irrtümer, Fragen - Seite 763

 
x100intraday:

...Wenn Magnitudenpunkte an Extrema (Spezialfälle) oder an Chartkoordinaten im Allgemeinen - Preis/Zeit - gebunden sind, frage ich mich, woran dann "Scale" gebunden ist? Wenn beim Schreiben einige exakte Skalenwerte in die Vorlage eingegeben werden... oder Pips pro Balken, ist es nicht möglich, die ursprüngliche Gliederung in einer neuen Sitzung wiederherzustellen. Nur die genauen Koordinaten des ersten Punktes werden beibehalten. Grob gesagt sind Muster, die auf der Verankerung von Punkten an eindeutigen und einfachen Koordinaten beruhen, zuverlässiger.

Punkt 1 ist der Preis und die Zeit, Punkt 2 ist die Zeit, der Preis wird unter Berücksichtigung der Skala in n/b berechnet.

Ich weiß nicht, was in der Vorlage steht, aber ich denke, es sollte alle 4 Werte haben: 2 mal, Preis des ersten Punktes, Maßstab.

Dann könnte es Probleme geben, wenn Balken fehlen, denke ich.

 
Silent:

Es ist kein Entfernungsproblem, es ist ein Erstellungsproblem :)

Ich hatte ein Skript mit der falschen Schleife, das das Gleiche tat. Die Schleife wurde gedruckt, auch nachdem das Skript über"Expertenliste" zwangsweise gelöscht wurde, bis es mit einem Fehler auftauchte.

Sie sind sich nicht sicher, warum der Erstellungsfehler auftritt?

Ich erstelle ohne Schleife, ich brauche sie nicht für 3 Objekte.

Ich tue es einfach für jeden einzelnen:

if(ObjectFind(0,_name)!=0)//если не нашли создаем
     {
      ObjectCreate(0,_name,OBJ_RECTANGLE,0,_begin_time,_open,_end_time,_close);
         ObjectSetInteger(0,_name,OBJPROP_STYLE,STYLE_SOLID);
         ObjectSetInteger(0,_name,OBJPROP_WIDTH,Width);
         ObjectSetInteger(0,_name,OBJPROP_BACK,_Top);
         ObjectSetInteger(0,_name,OBJPROP_FILL,_BG);
         ObjectSetInteger(0,_name,OBJPROP_SELECTED,false);
         ObjectSetInteger(0,_name,OBJPROP_COLOR,_Color);
     }
else //если нашли модифицируем
     {
      ObjectMove(0,_name,0,_begin_time,_open);
      ObjectMove(0,_name,1,_end_time,_close);
      ObjectSetInteger(0,_name,OBJPROP_COLOR,_Color);
     }

Im Allgemeinen gibt es erste Anzeichen, aber es ist noch zu früh, um etwas zu sagen.

 

Überprüfen Sie, ob das Objekt im Code erstellt wurde?

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

Ich verstehe nicht, warum der Erstellungsfehler?

...

Weil.
kPVT:

...

Die Objekte werden gelöscht, aber neu erstellt und "wackeln" weiter, als ob der Indikator noch laufen würde.

Wenn sie manuell gelöscht werden, werden sie unter demselben Namen neu erstellt und "wandern" weiter, wenn neue Zecken hinzukommen.

...

Der Indikator sucht sie bei jedem Tick und erstellt oder ändert sie, so wie ich es verstehe.

Vielleicht: wenn bereits vorhanden und geändert - nichts zu tun (blockieren)?

 
alexvd:

Überprüfen Sie die Tatsache, dass das Objekt im Code erstellt wurde?

Stumm:
Vielleicht: wenn schon da ist und geändert - nichts zu tun (Block) fehlt?

Der Grund dafür ist der folgende.

Wenn Sie den Indikator-Handle #1 vom Indikator #2 erhalten, wird die Deinitierung des Indikators #1 nicht abgeschlossen, bis Sie den Indikator #2 löschen.

Wenn es Pufferkonstruktionen gibt, werden diese entfernt, aber die grafischen Objekte bleiben erhalten.

Hier sind zwei Indikatoren zum Testen.

1. Wir hängen test_del_obj an, dann test_id.

2. Wir entfernen test_del_obj - der Würfel aus test_del_obj bleibt.

3. Entfernen Sie test_id - der Würfel wird entfernt und im Protokoll sehen wir, dass erst jetzt deinit des test_del_obj Indikators ausgeführt wird.

Dateien:
 

Eine andere Frage.

Ist der Indikatorgriff eindeutig an das Diagramm gebunden?

Wenn Sie den test_id-Indikator ändern, indem Sie eine zeitgesteuerte Abfrage des test_del_obj-Indikator-Handles hinzufügen, können Sie sehen, dass der Wert bei jeder Anforderung um 1 steigt.

Dateien:
 

ArrayResize() arbeitet nicht korrekt

Wenn die Größe eines dynamischen Arrays verringert wird, schneidet ArrayResize() Elemente von der falschen Seite des Arrays ab.

Code:

   double Arr[];
   ArrayResize(Arr,5);
   Arr[0]=101;
   Arr[1]=102;
   Arr[2]=103;
   Arr[3]=104;
   Arr[4]=105;   
   Print("Начальный массив: ",Arr[0],":",Arr[1],":",Arr[2],":",Arr[3],":",Arr[4]);
   ArraySetAsSeries(Arr,true);
   ArrayResize(Arr,4);
   Print("Обрезанный массив: ",Arr[0],":",Arr[1],":",Arr[2],":",Arr[3]);

Ergebnis:

2012.07.04 21:28:53     Ind2 (EURUSD,H4)        Обрезанный массив: 104.0:103.0:102.0:101.0
2012.07.04 21:28:53     Ind2 (EURUSD,H4)        Начальный массив: 101.0:102.0:103.0:104.0:105.0

Gleicher Code und gleiches Ergebnis im MetaTrader 4:

2012.07.04 21:28:35     ind2 EURUSD,H4: Обрезанный массив: 105:104:103:102
2012.07.04 21:28:35     ind2 EURUSD,H4: Начальный массив: 101:102:103:104:105
Dateien:
Ind2.mq5  2 kb
 

Liebe MT5-Entwickler. Ich mache Sie darauf aufmerksam, dass das Wichtigste für einen Forex-Server die Korrektheit der Notierungen ist. Untersuchen Sie daher die Fehlerhaftigkeit in Ihrem MT5 (MetaQuotes-Demo-Server):

1) Änderung des Volumens in den zuvor geladenen Candlesticks - z.B. heute um 8:00 Uhr EURUSD H4, die Werte waren 0:00 - 6171, 4:00 - 7049, 8:00 - 13361. Und beim Laden um 20:00 Uhr (in Europa), die Werte waren 0:00 - 7701, 4:00 - 8859, 8:00 - 16306. Im Allgemeinen wird es Ihnen nicht schwer fallen zu sehen, dass die Lautstärke in der russischsprachigen Welt durcheinandergeraten ist. Da ich die Ehre habe, nicht nur in meinem Namen zu sprechen, sondern auch auf Wunsch der Genossen, sage ich - es ist sehr frustrierend für diejenigen, die das Modell mit Volumen und mit seiner Akkumulation verwenden.

2) Stellen Sie Alpari MT4 auf der linken Seite und Metaquotes MT5 auf der rechten Seite ein und seien Sie erstaunt, dass die Minuten auf Metaquotes viel früher schließen als auf Alpari. Wir prüfen mit time.windows.com und der Uhr an unserer Hand - die Zeit des metaquotes-Servers läuft voraus! - Pips-Händler beschweren sich hier - es gibt eine bedeutende Zufallsquelle im Handel.

3) Ein allgemeiner unerhörter Wunsch - können wir Angebot und Nachfrage sowohl für das Speichern als auch für das Ansehen verfügbar machen, getrennt und/oder gemeinsam. Ich bin gefragt worden, aber ich weiß, dass das nicht realistisch ist. Soweit ich weiß, gab es im MT3 generell etwas zwischen Bid und Ask, und das liegt wohl in der Historie. Jetzt nur noch Bid.

 
MoneyJinn:

ArrayResize() arbeitet nicht korrekt

Das ist richtig. AsSeries ist nur ein Flag.
 
TheXpert:
Alles ist korrekt. AsSeries ist nur ein Flag.

Siehe Verhalten von Array-Elementen, die vonArraySetAsSeries(Arr,true) beeinflusst werden und wie es in 4.

Ich möchte hinzufügen, dass Ende 2011 alles richtig funktionierte, weil ich Code zu diesem Thema geschrieben habe, der jetzt nicht mehr funktioniert.

Grund der Beschwerde: