Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 03.11.15
BENT BENT ist offline
Neues Mitglied
 
Registriert seit: Nov 2012
Beiträge: 24
BENT befindet sich auf einem aufstrebenden Ast
Smile

Zitat:
Zitat von trololotromberino Beitrag anzeigen
Hi Leute,

ich habe ein Problem mit einem iCustom Indikator.
Der Indikator heißt Balance of Power. Ich habe ihn in mein Script eingebunden und eigentlich klappt alles ganz gut.
Die Idee ist, dass wenn der Indikator von Negativ auf Positiv, bzw. von Positiv auf Negativ springt (also über/unter die 0-Linie), dann ein Signal gibt.
Das Problem ist aber, dass ich das irgendwie nicht korrekt programmiert bekomme:
Code:
bool BoP_Long(){
   double BoP, BoP2;
   BoP = iCustom(NULL,0,"BOP",1,14,1,1);
   BoP2 = iCustom(NULL,0,"BOP",1,14,1,2);
   if (BoP > 0.0 && BoP2 < 0.0) return (true);
   else return (false);
}
bool BoP_Short(){
   double BoP,BoP2;
   BoP = iCustom(NULL,0,"BOP",1,14,1,1);
   BoP2 = iCustom(NULL,0,"BOP",1,14,1,2);
   if (BoP < 0.0 && BoP2 > 0.0) return (true);
   else return (false);
}

.....
int start() {
if(anzTradesLong() == 0 && Stochastic_Long() == true && BoP_Long() == true && Long() == true) {
.....}}
Ich bin mir ziemlich sicher, dass es an der Definition von BoP2 liegt, denn ohne funktioniert der EA ganz super. Ich hab auch schon mehrmals die Definition des Indikators überprüft, ob ich vielleicht eine Eingabe vergessen habe, aber nichts dergleichen.
Ich wollte es eigentlich nur so machen, dass er überprüft, ob die vorletzte Periode + und die letzte dann - ist, oder halt umgedreht: erst - und dann +.

Eigentlich ist doch alles korrekt ausgeführt, oder habe ich etwas übersehen?

Danke für jede Antwort schon mal im Voraus.

LG


PS: Ich hab es auch schon versucht, dass BoP2 zu einer seperaten Condition zu machen, hat auch nicht funktioniert....

Ich habe gute Erfahrung mit der Ausgabe des Wertes auf dem Bildschirm gemacht. Damit kann man den aktuellen Wert anzeigen lassen und die Sinnhaftigkeit des Wertes feststellen.
Befehl dafür: Comment (" BoP2 "+BoP2+" BoP "+BoP);
Einfügen des Befehles vor if Abfrage :

...
BoP2 = iCustom(NULL,0,"BOP",1,14,1,2);
Comment (" BoP2 "+BoP2+" BoP "+BoP);
if (BoP < 0.0 && BoP2 > 0.0) return (true);
...

Damit werden in der linken oberen Ecke die Werte angezeigt.
Viel Erfolg.