Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   In EA höchsten Wert von Variable finden (http://www.expert-advisor.com/forum/showthread.php?t=7142)

smilemore 10.01.22 01:34

In EA höchsten Wert von Variable finden
 
Hallo liebe Forum,
Habe einen EA.
Nun folgende Gedanken:
Die Vola der US-Indizes ist in der Zeit von Asien bis zur US-Eröffnung weniger volatil, hier kann man nicht so agressiv den Stopp setzen, wie in der US-Session.
Die Vola berechne ich mit

Code:

float avg_movement= MathAbs(High[1]-Low[1])+MathAbs(High[2]-Low[2])+ MathAbs(High[3]-Low[3])+ MathAbs(High[4]-Low[4])+ MathAbs(High[5]-Low[5])+ MathAbs(High[6]-Low[6]);
nun brauche ich den höchsten avg-movement Wert in der Zeit (london Zeit) von 21:01 bis 14:29

Code:

int aktuellezeit=h*60+m;
if(aktuellezeit >= 21*60 +01 && aktuellezeit <= 14*60 +29){

wenn der jetzige avg-movement-Wert größer dem vorherigen ist soll dieser Wert in der Variablen highest_avg_move gespeichert werden.
Code:

if(avg_move>highest_avg_move)  highest_avg_move=avg_move;
Das geht leider nicht, über Comment sehe ich das ein höherer highest_avg durch einen niedrigeren überschrieben wird.

Sinn ist es bestimmen zu können was hohe Vola ist, den wenn diese vorherrscht stoppt man agressiver, wenn die Vola in der US-Session unter den Höchstwert von Asien und Europa fällt, wird auch während der US-Session defensiver gestoppt. Sobald der Höchstwert wird überschritten wird, wird agressiver gestoppt. Also ein Art adaptiver Stopp.

Falls noch Fragen sind bitte fragen. Danke

MA-EA 19.01.22 23:33

Mir fällt bloß auf, dass die Variablen keinen Start-Wert haben. Da sollte sowas wie 0.0 reichen. :rolleyes:

traderdoc 20.01.22 14:55

Zitat:

Zitat von MA-EA (Beitrag 45932)
Mir fällt bloß auf, dass die Variablen keinen Start-Wert haben. Da sollte sowas wie 0.0 reichen. :rolleyes:

Aha, das siehst Du also. Und warum siehst Du nicht, dass im letzten Codeschnipsel das vorher berechnete avg_movement gar nicht benutzt wurde?

Insgesamt wieder eine Anfrage, die sich lösen lassen würde, wenn sie denn auch genauer beschrieben worden wäre (vom o.g. mal ganz abgesehen)
Keiner sieht hier, an welcher Stelle der Comment ausgegeben wurde. Was passiert sonst noch so alles in dem EA?
Ich würde Dir, wie immer allen anderen hier auch, gern weiterhelfen.

Nein, so wird hier keiner eine zweckdienliche Antwort geben können, außer @MA-EA.

traderdoc

Raul0 20.01.22 16:28

Hallo,

bei der Zeit, was ist bei aktuellezeit mit h, m?

avg_move nicht ausgeschrieben?

Grüsse

MA-EA 22.01.22 10:43

Zitat:

Zitat von traderdoc (Beitrag 45933)
Aha, das siehst Du also. Und warum siehst Du nicht, dass im letzten Codeschnipsel das vorher berechnete avg_movement gar nicht benutzt wurde?

Keine Ahnung, wie der Kollege sich das vorgestellt hat. :rolleyes: Aber sowas wie nen Start-Wert wirds wohl brauchen, um zu vergleichen.
Code:

highest_avg_move = avg_move ;
if( avg_move > highest_avg_move  )highest_avg_move = avg_move ;

Aber ich schätze, er wird die ganzen avg_move-was-auch-immer-Werte Kerze für Kerze mit ner Schleife durchsuchen und vergleichen müssen. :confused:

traderdoc 22.01.22 14:28

Zitat:

Zitat von MA-EA (Beitrag 45936)
Code:

highest_avg_move = avg_move ;
if( avg_move > highest_avg_move  )highest_avg_move = avg_move ;


Wieder ein ganz toller Tip! Hast Du mal genauer über den Quatsch nachgedacht?

traderdoc

MA-EA 23.01.22 15:34

Soviel ich weiss, braucht die Highest-AVG-Variable erst mal nen Wert, den sie überhaupt vergleichen kann. Also weise ich ihr den aktuellen AVG-Wert zu. Dann wird die Highest-AVG-Variable mit den anderen AVG-Werten verglichen. Sollte einer davon größer sein, bekommt sie dessen Wert und so weiter.

Aber wie gesagt geht das wohl nicht ohne Loop. :confused:

traderdoc 23.01.22 15:55

Zitat:

Zitat von MA-EA (Beitrag 45940)
Soviel ich weiss, braucht die Highest-AVG-Variable erst mal nen Wert, den sie überhaupt vergleichen kann. Also weise ich ihr den aktuellen AVG-Wert zu. Dann wird die Highest-AVG-Variable mit den anderen AVG-Werten verglichen. Sollte einer davon größer sein, bekommt sie dessen Wert und so weiter.

Aber wie gesagt geht das wohl nicht ohne Loop. :confused:

Ne, @MA-EA, so wird das nix werden. Schau Dir genau die Bezeichnungen der Variablen an.
Das hat mit einem Loop gar nichts zu tun.

traderdoc

MA-EA 23.01.22 19:38

Wie das hat mit nem Loop nix zu tun? :confused: Ich meine, wahrscheinlich gehts nicht ohne Loop. Aber ich weiß ja auch nicht, wie der Kollege sich das gedacht hat. Oder was das überhaupt mal werden soll. Scheint aber auch egal zu sein. :rolleyes:

AVT 23.01.22 20:21

Zitat:

Zitat von MA-EA (Beitrag 45942)
Wie das hat mit nem Loop nix zu tun? :confused: Ich meine, wahrscheinlich gehts nicht ohne Loop. Aber ich weiß ja auch nicht, wie der Kollege sich das gedacht hat. Oder was das überhaupt mal werden soll. Scheint aber auch egal zu sein. :rolleyes:

Code:

float avg_movement= MathAbs(High[1]-Low[1])+MathAbs(High[2]-Low[2])+ MathAbs(High[3]-Low[3])+ MathAbs(High[4]-Low[4])+ MathAbs(High[5]-Low[5])+ MathAbs(High[6]-Low[6]);
Das kann man erst mal kürzer schreiben, MathAbs ist überflüssig, denn High-Low kann nie weniger als Null sein, also:
Code:

float avg_movement= (High[1]-Low[1])
                  +(High[2]-Low[2])
                  +(High[3]-Low[3])
                  +(High[4]-Low[4])
                  +(High[5]-Low[5])
                  +(High[6]-Low[6]);

Da wird nichts anderes gemacht als von der vorigen bis 6 Kerzen voher die High/Low Range addiert. Natürlich kannst Du daraus einen Loop machen, wenn Du unbedingt willst, mit einem i von 1-6, ob das aber unbedingt kürzer ist, wage ich in dem Fall zu bezweifeln.
Zu reinen Übungszwecken kannst Du Dich ja mal ranmachen.
AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:44 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum