Über icustom kannst du die werte auslesen
Amando, hast du dir den Code angesehen? Dieser Indi hat keine Buffer, er erzeugt nur Chartobjekte (OBJ_LABEL).
Da nutzt dir iCustom() leider gar nix.
Im übrigen ist das ein uralter Hund der Stringfunktionen wie StringUpper(), StringLower() definiert, (und das noch grauenhaft) die doch Systemfunktionen sind.
Heissen halt StringToUpper(), StringToLower(). StringLower() wird definiert aber nirgendwo verwendet.
Wenn man den ganzen Müll rausschmeisst, kan man das leicht in einen EA einbauen.
Amando, hast du dir den Code angesehen? Dieser Indi hat keine Buffer, er erzeugt nur Chartobjekte (OBJ_LABEL).
Da nutzt dir iCustom() leider gar nix.
Im übrigen ist das ein uralter Hund der Stringfunktionen wie StringUpper(), StringLower() definiert, (und das noch grauenhaft) die doch Systemfunktionen sind.
Heissen halt StringToUpper(), StringToLower().
Wenn man den ganzen Müll rausschmeisst, kan man das leicht in einen EA einbauen.
Nachem es mq4 ist hab ichs mir nicht angesehen 😂😂😂
du hast natürlich recht Otto (von Calli geändert;)
Nachem es mq4 ist hab ichs mir nicht angesehen 😂😂😂
du hast natürlich recht Calli
Hey, ich bin's, Otto!
Hie und da schau ich mir auch gerne MQL4 Code an. Da schaudert es mich meistens ;)
Die ganze Logic dieses Indis ist in den ersten 20 Zeilen der Funktion plot_obj() definiert und lässt sich spielend in einen EA übernehmen.
Die Funktion DivZero() ist wichtig. Ich tät sie halt anders nennen, zB. SecureDiv()
edit: aber auch die ist Schrott.
Das Original
double DivZero(double n, double d) { if (d == 0) return(0); else return(1.0*n/d); // was soll das 1.0* hier bewirken ??? }
So geht das
double SecureDiv(double n, double d) { return(d==NULL?0:n/d); }
Warum sollte eine Division durch 0 wieder 0 ergeben? Wie wärs so:
return d!=0 ? n/d : (n>=0 ? DBL_MAX : -DBL_MAX);
weil Du sonst im Ergebnis eine Division durch 0 hast, was dir den EA beendet.
Wenn Du diese halt auf 0 setzt und sagst, mach bei 0 oder kleiner keine Division läuft der EA weiter
Hey, ich bin's, Otto!
Hie und da schau ich mir auch gerne MQL4 Code an. Da schaudert es mich meistens ;)
Die ganze Logic dieses Indis ist in den ersten 20 Zeilen der Funktion plot_obj() definiert und lässt sich spielend in einen EA übernehmen.
Die Funktion DivZero() ist wichtig. Ich tät sie halt anders nennen, zB. SecureDiv()
edit: aber auch die ist Schrott.
Das Original
So geht das
Danke Otto,
leider bin ich immer noch nicht wirklich weiter gekommen... wie übernehme ich es denn dann spielend?
ich brauche an sich nur den PairVal wert, der nicht mal angezeigt werden muss.
Danke Otto,
leider bin ich immer noch nicht wirklich weiter gekommen... wie übernehme ich es denn dann spielend?
ich brauche an sich nur den PairVal wert, der nicht mal angezeigt werden muss.
double day_high = MarketInfo(_Symbol,MODE_HIGH); double day_low = MarketInfo(_Symbol,MODE_LOW); double curr_bid = MarketInfo(_Symbol,MODE_BID); double bid_ratio = DivZero(curr_bid - day_low, day_high - day_low);
Wenn du das für das aktuelle Symbol erhalten willst.
double ind_strength = 0; if (bid_ratio >= 0.97) ind_strength = 9; else if (bid_ratio >= 0.90) ind_strength = 8; else if (bid_ratio >= 0.75) ind_strength = 7; else if (bid_ratio >= 0.60) ind_strength = 6; else if (bid_ratio >= 0.50) ind_strength = 5; else if (bid_ratio >= 0.40) ind_strength = 4; else if (bid_ratio >= 0.25) ind_strength = 3; else if (bid_ratio >= 0.10) ind_strength = 2; else if (bid_ratio >= 0.03) ind_strength = 1;
Das könnte man auch durch multiplizieren mit 10 und auf eine oder zwei Dezimale runden ersetzen.
Diesen if-Block habe ich umformatiert so wie ich ihn schreiben würde und ich denke so ist es besser.
Aber wie gesagt, eigentlich ist er unnötig.
PS: Sch....lechter Editor hier, kann ich keine Zeile mehr einfügen wenn ich mir keine Leerzeile 'reserviert' habe.
Wenn du das für das aktuelle Symbol erhalten willst.
Das könnte man auch durch multiplizieren mit 10 und auf eine oder zwei Dezimale runden ersetzen.
Diesen if-Block habe ich umformatiert so wie ich ihn schreiben würde und ich denke so ist es besser.
Aber wie gesagt, eigentlich ist er unnötig.
PS: Sch....lechter Editor hier, kann ich keine Zeile mehr einfügen wenn ich mir keine Leerzeile 'reserviert' habe.
okay anscheinend stehe ich dermaßen auf dem schlauch...
Wo füge ich denn welchen der beiden Blöcke ein?
erstelle ich das so?
double DivZero(double n, double d) { return(d==NULL?0:n/d); } void plot_obj() { double day_high = MarketInfo(_Symbol,MODE_HIGH); double day_low = MarketInfo(_Symbol,MODE_LOW); double curr_bid = MarketInfo(_Symbol,MODE_BID); double bid_ratio = DivZero(curr_bid - day_low, day_high - day_low); double ind_strength = 0; if (bid_ratio >= 0.97) ind_strength = 9; else if (bid_ratio >= 0.90) ind_strength = 8; else if (bid_ratio >= 0.75) ind_strength = 7; else if (bid_ratio >= 0.60) ind_strength = 6; else if (bid_ratio >= 0.50) ind_strength = 5; else if (bid_ratio >= 0.40) ind_strength = 4; else if (bid_ratio >= 0.25) ind_strength = 3; else if (bid_ratio >= 0.10) ind_strength = 2; else if (bid_ratio >= 0.03) ind_strength = 1; //Comment(); }
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hei there,
I have an indicator for currency strength. Now i want to use it for my EA.
how can i get the value of the variable?
Thanks in advance
PS: in the attachment is die indicator and i want to get the "PairVal"