Kann Indikator Signal nicht im EA auslesen

 

Hallo!


Ich habe einen Indikator der im Chart Pfeile zeichnet als Buy oder Sell Signal. Diese möchte gerne in einem EA nutzen. Leider habe ich es trotz einiger Recherche nicht hinbekommen.

Ich habe mal den Indikator angehangen! Es ist ein Indikator für MT5.

Ich hoffe, hier kann mir jemand helfen!?

Vielen Dank!


Gruß

Rene

Dateien:
 

Hier steht wie man einen EA schreibt.

Quickstart for newbies: https://www.mql5.com/de/articles/496
und: https://www.mql5.com/de/articles/100
(Schrittweiser Leitfaden für Anfänger zum Schreiben eines Expert Advisors in MQL5)

Diese Beispiele verwenden Standardindikatoren, wenn man einen eigenen Indikator aufrufen will benötigt man iCustom und CopyBuiffer. (Im Editor den Cursor jeweils auf eines der Funktionsnamen stellen und F1 drücken, um zu lesen wie die funktionieren mit Beispiel, insb. CopyBuffer)

Daneben gibt es die Suche z. B. nach den Kochbüchern: https://www.mql5.com/de/search#!keyword=kochbuch

Oder er hat eine ganze Reihe geschrieben wie mit welchen Indikatoren ein Handelssystem gebaut werden kann: https://www.mql5.com/de/users/m.aboud/publications

Oder man sucht gleich nach Chandelier: https://www.mql5.com/en/search#!keyword=chandelier

und filtert dann nach CodeBase oder Artikel ...

Und es gibt auch Leute, die das für einen programmieren: https://www.mql5.com/de/job

Aber vorher lesen:

EA-freelancer Pflichtenheft : https://www.mql5.com/de/articles/4368
Indi : https://www.mql5.com/de/articles/4304
How to Order a Trading Robot in MQL5 and MQL4 : https://www.mql5.com/de/articles/117
aber auch (was wenn...): https://www.mql5.com/de/job/rules
und prüfe bei den Angeboten die persönliche Statistik der Angebote!
Schnelleinstieg oder Kurzanleitung für Anfänger
Schnelleinstieg oder Kurzanleitung für Anfänger
  • www.mql5.com
Liebe Leser, in diesem Artikel möchte ich Ihnen vermitteln und zeigen, wie man sich möglichst schnell und einfach die Grundlagen der Erstellung automatischer Handelssysteme, wie die Arbeit mit Indikatoren u. a., erschließt. Der Beitrag richtet sich an Neueinsteiger, in ihm kommen weder komplizierte noch schwer zu verstehende Beispiele zur Anwendung.
 

Hallo!


Danke für Deine Info!

Ich hatte vergessen zu erwähnen, dass ich schon ein wenig mit ea programmiere und ich habe auch hierfür iCustom und CopyBuffer benutzt. Nur ist es leider so, dass ich keine verwertbaren Parameter aus diesem Indikator rausbekomme. Ich möchte gerne, wenn der Indikator einen Pfeil zeichnet (BuySignal oder SellSignal), dieses Signal verwerten kann. Das funktioniert leider nicht, da der Wert den ich bekomme mit iCustom und CopyBuffer immer der gleiche ist. Egal ob Buy oder Sell. Vielleicht ist dieser Indikator auch nicht dafür geeignet!?


Gruß

Rene

 
easylife24 #:

Hallo!

Danke für Deine Info!

Ich hatte vergessen zu erwähnen, dass ich schon ein wenig mit ea programmiere und ich habe auch hierfür iCustom und CopyBuffer benutzt. Nur ist es leider so, dass ich keine verwertbaren Parameter aus diesem Indikator rausbekomme. Ich möchte gerne, wenn der Indikator einen Pfeil zeichnet (BuySignal oder SellSignal), dieses Signal verwerten kann. Das funktioniert leider nicht, da der Wert den ich bekomme mit iCustom und CopyBuffer immer der gleiche ist. Egal ob Buy oder Sell. Vielleicht ist dieser Indikator auch nicht dafür geeignet!?

Gruß

Rene

Nein, Du machst einen Fehler! In Oninit das Handle holen und in OnTick() mit CopyBuffer die Werte (so wie dort im Beispiel!), die dann vom Array ausgelesen werden können.

Der Gang über die grafischen Elemente ist der denkbar schlechteste Weg!!!

 

Hallo!


Das mache ich ja so!

Mein Code:

//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  {

//---

   handle_ce=iCustom(_Symbol,Period(),"ChandelierExitArrows",inp_atr_period,inp_atr_multiplier,inp_use_close);

//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

  datetime time_0=iTime(m_symbol.Name(),Period(),0);

  ArraySetAsSeries(BuySignal,true);

  ArraySetAsSeries(SellSignal,true);   

  CopyBuffer(handle_ce,0,0,5,BuySignal);

  CopyBuffer(handle_ce,1,0,5,SellSignal);

...


Die beiden Buffer bringen bei einem Print immer das gleiche aus!

BuySignal: 1.7976931348623157e+308 - SellSignal: 1.7976931348623157e+308


Gibt es noch eine andere Idee?


Danke und Gruß

Rene


 
easylife24 #:

Hallo!


Das mache ich ja so!

Mein Code:

//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  {

//---

   handle_ce=iCustom(_Symbol,Period(),"ChandelierExitArrows",inp_atr_period,inp_atr_multiplier,inp_use_close);

//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

  datetime time_0=iTime(m_symbol.Name(),Period(),0);

  ArraySetAsSeries(BuySignal,true);

  ArraySetAsSeries(SellSignal,true);   

  CopyBuffer(handle_ce,0,0,5,BuySignal);

  CopyBuffer(handle_ce,1,0,5,SellSignal);

...


Die beiden Buffer bringen bei einem Print immer das gleiche aus!

BuySignal: 1.7976931348623157e+308 - SellSignal: 1.7976931348623157e+308


Gibt es noch eine andere Idee?


Danke und Gruß

Rene


Bitte code anfügen mit dem code button,

sieh dir nochmal das beispiel an von iCustom, du musst dem indi schon auch den arraysetasseries mitgeben und das nicht in der ontick


ausserdem  usst du dir klar sein, was du auslesen willst. Wenn der pfeile einzeichnet wird er wohl nicht immer einen wert haben

 
easylife24 #:

Hallo!


Die beiden Buffer bringen bei einem Print immer das gleiche aus!

BuySignal: 1.7976931348623157e+308 - SellSignal: 1.7976931348623157e+308


Gibt es noch eine andere Idee?


Danke und Gruß

Rene


BuySignal: 1.7976931348623157e+308 - SellSignal: 1.7976931348623157e+308

Sind Werte für das Maximum des Zahlentyps double, die dann auf dem Chart nicht eingezeichnet werden und das bedeutet, der dieser Indikator kein Signal zu senden hat.

 

Hallo!


Danke für Eure Kommentare!

Habe jetzt mal verwertbare Signale bekommen. Nun habe ich das Problem, dass ich mehr Signale bekomme, als z.B. grafisch (wie hier mit einem Pfeil) bekomme und somit nicht den eigentlichen Entry feststellen kann.

Gibt es irgendeine Möglichkeit, den grafischen Output von diesem Indikator abzufangen und mit den Signalen, die ich jetzt bekomme abzugleichen!?

Danke für Eure Mühe!


Gruß

Rene

 

Die Puffer-Werte entsprechen den grafischen Objekten!

Was einst Du mit ", dass ich mehr Signale bekomme, als z.B. grafisch (wie hier mit einem Pfeil) bekomme "?

Kannst das dokumentieren?

 
Carl Schreiber #:

Die Puffer-Werte entsprechen den grafischen Objekten!

Was einst Du mit ", dass ich mehr Signale bekomme, als z.B. grafisch (wie hier mit einem Pfeil) bekomme "?

Kannst das dokumentieren?

Ich versuche es!

Ich bekomme Werte (kein EMPTY_VALUE), vom aktuellen Kurs in den entsprechenden SellBuffer oder BuyBuffer, aber der grafische Pfeil wird in dem Augenblick nicht dargestellt. 

Das ist meine Abfrage ob es != EMPTY_VALUE Werte gibt:

         if(BuySignal[0] != 0.0 && BuySignal[0] != EMPTY_VALUE)

           {

           Print("CE: Buy: "+BuySignal[0]);

           }

         if(SellSignal[0] != 0.0 && SellSignal[0] != EMPTY_VALUE)

           {

           Print("CE: Sell: "+SellSignal[0]);

           }

Und da bekomme ich z.B. einen Wert um 16:59 Uhr von  15708.52 in den SellBuffer, aber es wird kein Pfeil nach unten angezeigt.

Ich kann also nicht eindeutig feststellen, ob das Signal jetzt nutzbar ist oder nicht.

Ich hoffe es einigermaßen verständlich erklärt zu haben.

Vielen Dank für die Mühe!


Gruß

Rene

 
Mach doch bitte Screenshots auf denen die Werte im Datenfenster ersichtlich sind, vielleicht auch noch ein zweites?
Grund der Beschwerde: