MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 98

 
evillive:
Was hier an Grausamkeiten geschrieben wird, werde ich vorerst nicht über 553 aktualisieren...

Ich habe angefangen, Probleme mit der Ausgabe von grafischen Objekten zu haben. An einer Stelle des Codes wird eine Funktion

//+----------------------------------------------------------------------------+
void SetTLine(color cl, int wnd, string nm="",
              datetime t1=0, double p1=0, datetime t2=0, double p2=0,
              bool ry=False, int st=0, int wd=1) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TREND, wnd, 0,0, 0,0);
   ObjectSet(nm, OBJPROP_TIME1 , t1);
   ObjectSet(nm, OBJPROP_PRICE1, p1);
   ObjectSet(nm, OBJPROP_TIME2 , t2);
   ObjectSet(nm, OBJPROP_PRICE2, p2);
   ObjectSet(nm, OBJPROP_COLOR , cl);
   ObjectSet(nm, OBJPROP_RAY   , ry);
   ObjectSet(nm, OBJPROP_STYLE , st);
   ObjectSet(nm, OBJPROP_WIDTH , wd);
}
//+----------------------------------------------------------------------------+

wie folgt aufgerufen:

//==============================================================================
// --------------------------------- Данные -----------------------------------+
//==============================================================================
   if(DrawGraphics) {                           // если рисуем графические объекты
      wnd=WindowFind("i_StdDev("+sdperiod+")"); // номер окна индикатора
      if(wnd>0) {                               // если индикатор на графике, нарисуем метку
         nm=Prefix+"_Текущий бар";
         p1=WindowPriceMax(wnd); p2=WindowPriceMin(wnd);
         SetTLine(Blue,wnd,nm,Time[0],p1,Time[0],p2,false,2);
         }
      }
//-----------------------------------------------------------------------------+   

gibt problemlos eine vertikale Trendlinie im Indikatorfenster aus (ich markiere den Nullbalken, um die visuelle Wahrnehmung der Indikatorpunkte während der Fehlersuche zu erleichtern):


Wenn ich dieselbe Funktion von einer anderen Stelle im Code aus aufrufe, wie hier:

   if(op==OP_SELLSTOP) {
      pp=MathMin(Low[x],Low[x-1])-distanceSetOrders*PointX;
      b=iLowest(sy,tf,MODE_LOW,2,(x-1));
      if(pb-level*Point>pp) {
         ll=LotsS;
         if(StopLoss==0) sl=0;
         else sl=NormalizeDouble(MathMax(pp+StopLoss*PointX, pp+(level+1)*Point),dg);
         if(TakeProfit==0) tp=0;
         else tp=NormalizeDouble(MathMin(pp-TakeProfit*PointX, pp-(level+1)*Point),dg);
         co="Отложенный";
         Message("Кто звал? Чё..., ставить? Ставлю SellStop относительно бара "+b+
                 ", от "+DoubleToStr(pp,dg)+" до "+DoubleToStr(Low[b],dg)+" рисую линию");
         SetOrder(sy, OP_SELLSTOP, ll, pp, sl, tp, mn1, co);
         if(DrawGraphics) {
            nm=Prefix+"_Наименьшая цена_"+TimeToStr(Time[b]);
            SetTLine(FireBrick,0,nm,Time[b],Low[b],Time[b],pp,false,3);
            }
         }
      }

er markiert auf dem Chart den Balken, von dem aus der Pending-Order-Level berechnet wird, dann, so seltsam es auch erscheinen mag, zeigen die an ihn übergebenen Parameter wahre und korrekte Werte an; die Balkenzeit wird in den Namen der Trendlinie geschrieben, aber die Linie selbst hat alle Nullwerte und außerdem wird sie als "Ray" angezeigt, obwohl ich dem Funktionsparameter, der für diese Option verantwortlich ist, "false" übergebe - kein Strahl:


Ich sehe keinen Fehler in dem Code. Könnte es sich um eine Störung handeln?
 
Die Grafiken scheinen komplett verschwunden zu sein... Es werden keine Schaltflächen auf dem Bildschirm angezeigt. Ich habe nichts getan, nur das Terminal neu geladen, und die EAs, die auf den Charts schwebten und alle grafischen Objekte zeichneten, starben normal. Ein paar Tage warten, um die grafischen Objekte zu beheben.... hmmmCOPY00 Warten auf.... Ich werde also wohl das gleiche Schicksal erleiden müssen. :) Wir werden auf das neue Gebäude warten müssen.
 
Haben Sie die Programme mit dem neuen Build neu kompiliert?
 
artmedia70:

Ich habe angefangen, Probleme mit der Ausgabe von grafischen Objekten zu haben. An einer Stelle des Codes wird eine Funktion

wie folgt aufgerufen:

gibt problemlos eine vertikale Trendlinie im Indikatorfenster aus (ich markiere den Nullbalken, um die visuelle Wahrnehmung der Indikatorpunkte während der Fehlersuche zu erleichtern):


Wenn ich dieselbe Funktion von einer anderen Stelle im Code aus aufrufe, wie hier:

Ich kann damit den Balken im Chart markieren, aus dem der Pending-Order-Level berechnet wird, allerdings ist es seltsam, die übergebenen Parameter zeigen wahre und korrekte Werte, die Balkenzeit wird in den Trendliniennamen geschrieben, aber die Linie selbst hat alle Nullwerte und wird als "Ray" angezeigt, obwohl ich false - not a ray in den Funktionsparameter übergebe, der für diese Option verantwortlich ist:


Ich sehe keinen Fehler in dem Code. Könnte es sich um eine Störung handeln?
Hinzufügen eines Ausdrucks aller Parameter innerhalb der SetTLine-Funktion.
 

Und wieder eine Frage zum Zeitpunkt... Wann wird der Markt vollständig eingeführt sein? Wann wird es ein globales Update geben?

Es war die Rede von einem Testmonat Ende November, aber der Dezember ist bereits in vollem Gange ....

 

Renat,

Gibt es Pläne, dass das neue ME4 in naher Zukunft folgende Funktionen unterstützt

ENUM_ANCHOR_POINT und ENUM_LINE_STYLE ?

Ich danke Ihnen.

 
Wahoo:

Renat,

Gibt es Pläne für einen neuen ME4-Support in naher Zukunft?

ENUM_ANCHOR_POINT und ENUM_LINE_STYLE ?

Ja, das sind sie. Das grafische Modell wird das gleiche sein wie in MQL5.

Mit jeder neuen Version werden die grafischen Funktionen erweitert und verbessert.

 

Einer der Broker (zumindest einer), wenn neue MT4-Builds veröffentlicht werden, vor allem mit bedeutenden Neuerungen, probieren sie zuerst auf einer Demo aus und implementieren sie dann auf einem echten Konto.

Können wir angesichts der Tatsache, dass einige Betatester unbeabsichtigt halbautomatische Aktualisierungen von benachbarten Terminals vorgenommen haben, sicher sein, dass die Demo- und die realen Terminals, die sich auf einem Computer (oder VPS) befinden, in der Lage sein werden, diese Taktiken bei der Einführung dieser Änderungen zu beobachten? Oder ein Ordner, der für die Verwaltung der Aktualisierungen aller Terminals im System verwendet wird und dessen Entfernung "zur Vermeidung" empfohlen wird, lässt nur zwei Möglichkeiten zu: alles oder nichts?

 

Führen Sie keine Tests oder Updates auf Computern mit funktionierenden Kopien der Terminals durch.

Sie werden alle automatisch aktualisiert, sobald mindestens eine Kopie auf dem Computer eine Aktualisierung erhält.

Grund der Beschwerde: