Fehler, Irrtümer, Fragen - Seite 647

 
Vielen Dank für die Nachricht, wir haben diese Stelle korrigiert. Wir werden es selbst testen.
 

Liebe Programmiererinnen und Programmierer! Wir brauchen Ihre Hilfe.


Ich muss eine Änderung im MT4-Code vornehmen. Der Martin Expert Advisor stellt eine Reihe von Aufträgen in der Reihenfolge des angegebenen Deltas auf und beginnt ab einer bestimmten Handelsnummer (z. B. dem 4. Handel), das Delta um einen Koeffizienten zu erhöhen.
Ich möchte, dass dieses Delta nicht ins Unendliche ausgedehnt wird, bis die gesamte Serie zu Ende ist. Allerdings nur bis zu einem bestimmten Wert, den wir in den Einstellungen festlegen (z. B. Max_delta = 50 Punkte). Und wenn delta >= Max_delta wird, würde es diesen Wert kontinuierlich annehmen, bis die Serie endet. Und dann würde es wieder von vorne losgehen.

Hier ist der Code des Programms, in dem das Delta gestreckt wird:


int Delta(int OrdNum){
if(Start_order_delta>1){
if(OrdNum>Start_order_delta){
int p=OrdNum-Start_order_delta;
return(Take_profit*MathPow(Delta_exp,p))
}
}
return(Take_profit);
}

Bitte helfen Sie mir, eine Delta-Beschränkung in diesen Code einzuführen.
 

CHART_BRING_TO_TOP-Eigenschaft

Er kann eingestellt werden, aber der aktuelle Wert kann nicht ermittelt werden.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - funktioniert.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - Funktioniert nicht.

[Gelöscht]  
MoneyJinn:

CHART_BRING_TO_TOP-Eigenschaft

Er kann eingestellt werden, aber der aktuelle Wert kann nicht ermittelt werden.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - funktioniert.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - Funktioniert nicht.

Nun, alles macht Sinn. Der Aufruf hat drei Parameter, oder irre ich mich?

Mit der zweiten Option erhalten wir nur den auf false gesetzten Wert, nicht den aktuellen Wert.

Um den Wert zu ermitteln, benötigen wir vier Parameter (der letzte enthält den aktuellen Wert).

bool  ChartGetInteger(
   long    chart_id,     // идентификатор графика
   int     prop_id,      // идентификатор свойства
   int     sub_window,      // номер подокна
   long&   long_var      // сюда примем значение свойства
   );
 
Interesting:

Nun, das macht Sinn. Der Aufruf hat drei Parameter, oder liege ich da falsch?

Mit der zweiten Option erhalten wir nur den SET-Wert von false, ohne den aktuellen Wert zu definieren.

Um den Wert zu ermitteln, benötigen wir vier Parameter (der letzte enthält den aktuellen Wert).


Ja, Sie irren sich. Es sind mehrere ChartGetInteger-Eingabeformulare erlaubt.

Aber unabhängig von ChartGetInteger record formist es unmöglich, den aktuellen Wert derCHART_BRING_TO_TOP Eigenschaft zu erhalten.

 
MoneyJinn:

Es sind mehrere ChartGetInteger-Eingabeformen möglich.

Unabhängig von der ChartGetInteger-Eingabeform ist es jedochnicht möglich, den aktuellen Wert derCHART_BRING_TO_TOP-Eigenschaft zu ermitteln.

Und welchen Wert liefert die zweite Variante der Funktion ChartGetInteger (4-Parameter)? Und der Fehlercode?

 
Yedelkin:

Und welchen Wert liefert die zweite Variante der Funktion ChartGetInteger (4 Parameter)? Und der Fehlercode?

Wert 0; Fehler 4109 - d.h. es gibt keine solche Eigenschaft.
 
MoneyJinn:
Wert 0; Fehler 4109 - d.h. es gibt keine solche Eigenschaft.

Dem Handbuch zufolge wird diese Eigenschaft einfach nicht unterstützt:

Beim zweiten Aufruf wird true zurückgegeben , wenn diese Eigenschaft unterstützt wird und der Wert in der Variablen long_var abgelegt wurde; andernfalls wird false zurückgegeben.

Der Fehlercode sagt das Gleiche aus. Die Frage, warum die Diagrammeigenschaft CHART_BRING_TO_TOP nicht unterstützt wird, liegt auf der Ebene der Entwickler. Und wenn die Eigenschaft tatsächlich unterstützt wird, dann ist die Frage wieder auf ihrer Ebene: warum in einem solchen Fall die ChartGetInteger-Funktion falsch zurückgibt?

 
Warum wird das OnTick-Ereignis im Strategietester nicht ausgelöst? Build 586. Zuerst dachte ich, es läge ein Fehler in meinem Programm vor. Moving Average.mq5 für die Fehlersuche gestartet. Setzen Sie einen Haltepunkt beim ersten Operator des OnTick-Ereignisses. Innerhalb einer Stunde gab es keine Reaktion.
 
tor30515:

Warum wird das OnTick-Ereignis im Strategietester nicht ausgelöst? Build 586. Zuerst dachte ich, es läge ein Fehler in meinem Programm vor. Moving Average.mq5 für die Fehlersuche gestartet. Setzen Sie einen Haltepunkt beim ersten Operator des OnTick-Ereignisses. Ich habe innerhalb einer Stunde keine Reaktion gesehen.

Und das Prüfgerät wird zum Debuggen entladen?