Fragen Sie! - Seite 85

 
cico707:
Ich habe diesen Ea auf die Währung GBP/USD ausprobiert und ich denke, dass er mit einem Trailing-Stop gute Ergebnisse liefern kann.

Wer hilft mir, einen Trailing-Stop einzufügen?

DANKE

BACKTEST GBPJPY

 

Wie drücke ich folgendes in MQL aus:-

if(boolesche_Bedingung_ist_wahr UND (dies_ist_wahr ODER das_ist_wahr))

Das heißt, wenn boolean_condition wahr ist UND(entweder this_is_true OR that_is_true) THEN do_something.

Irgendjemand?

 

In MQL lautet die Syntax, um das Vorzeichen eines Bezeichners von positiv zu negativ zu ändern: A = - A Der umgekehrte Weg scheint jedoch nicht zu funktionieren, d.h.: A = + A. Wie kann ich das Vorzeichen eines negativen Wertes in ein positives ändern?

 
Sadly:
In MQL lautet die Syntax, um das Vorzeichen eines Bezeichners von positiv zu negativ zu ändern: A = - A Der umgekehrte Weg scheint jedoch nicht zu funktionieren, d.h.: A = + A. Wie kann ich das Vorzeichen eines negativen Wertes in ein positives ändern?

A = -A; //Alles funktioniert ...

Oder :

A *= -1;

 
Sadly:
Wie drücke ich das Folgende in MQL aus:-

if(boolesche_Bedingung_ist_wahr UND (dies_ist_wahr ODER das_ist_wahr))

Das heißt, wenn boolesche_Bedingung_wahr ist UND(entweder dies_ist_wahr ODER das_ist_wahr) DANN etwas tun.

Kann mir jemand helfen?

if(b1 && (b2 || b3))

{

tu_etwas

}

 

Danke, Michel. Mit dem von Ihnen vorgeschlagenen A *= + A ergibt sich tatsächlich ein positives Vorzeichen, d. h. aus -A wird +A.

 
Michel:
if(b1 && (b2 || b3))

{

etwas_tun

}

Hier ist, was ich tue ...

if(Alarm_Reset && (stepSignalBuffer[shift] Upr_level ))

{

if(stepSignalBuffer[shift] < Lwr_level)

{

PlaySound("twank.wav");

}

else

{

PlaySound("tick.wav");

}

Alarm_Reset = false;

}

else

{

Alarm_Reset = true;

}

}

Das heißt,wenn der Alarm zurückgesetzt wurde (auf true) und entweder signalbuffer < lwr_level oder signalbuffer> upr_level

Einen Ton abspielen, wenn der Signalpuffer unter dem unteren Pegel liegt, oder einen anderen Ton, wenn er über dem oberen Pegel liegt. Setzen Sie den Alarm auf false (Sie wollen nicht, dass ein weiterer Alarm ausgelöst wird, wenn der Alarm bereits ausgelöst wurde.

sonst

Den Alarm zurücksetzen (d.h. der Signalpuffer befindet sich außerhalb des unteren und oberen Levels)

Leider ist das nicht das, was passiert, aber zumindest weiß ich, dass der Code korrekt ist und es wahrscheinlich an der Logik liegt.

Nochmals vielen Dank, Michel.

EDIT: Ich habe gerade stepSignalBuffer[shift] kommentiert und sein Wert ist immer NULL! Ich fühle mich wie ein Idiot.

 
Sadly:
Vielen Dank, Michel. Mit dem, was Sie vorgeschlagen haben, ergibt A *= + A tatsächlich ein positives Vorzeichen, d. h. aus -A wird +A.

Nein, das ist falsch, ich sagte: A *= -1; nicht A *= +A;

Dadurch wird das Vorzeichen umgedreht; wenn Sie aber eine positive Zahl benötigen, verwenden Sie die Funktion MathAbs(): A = MathAbs(A); Egal, wie groß A ist, es wird positiv.

 

Testcode vom Wochenende

Hallo Guru,

Gibt es einen Server, der uns die Möglichkeit bietet, unseren Code am Samstag und Sonntag zu testen?

Ich meine, ob es möglich ist, einen Simulator-Server zu machen, um die Möglichkeit zu haben, am Wochenende zu testen?

Diese Idee kommt aus folgenden Gründen:

1. Während der Arbeitstage müssen wir ernsthaft unsere Charts beobachten,

zu dieser Zeit können wir nicht ernsthaft Code eingeben.

2. Wir haben mehr Zeit am Wochenende, dann können wir unseren Code ernsthaft testen.

Vielleicht kann mir jemand Informationen über diese Idee geben?

Mit freundlichen Grüßen,

BornToWin

 
Michel:
Nein, das ist falsch, ich sagte: A *= -1; nicht A *= +A; Das dreht das Vorzeichen um; aber wenn Sie eine positive Zahl brauchen, verwenden Sie die MathAbs() Funktion: A = MathAbs(A); Egal wie A ist, es wird positiv.

Ich habe versucht, das Vorzeichen umzudrehen, was zu funktionieren schien. Ich habe auch die Funktion MathsAbs() ausprobiert, und tatsächlich ist die Zahl positiv.

Vielen Dank Michel, du warst mir eine große Hilfe.