Jump to content
Tom Next - Daytrading Community

Signale in Chart einzeichnen


Tibo

Recommended Posts

Hallo zusammen,

 

ich habe mich nun eine Weile durch andere EAs gelesen und mir dabei das ein oder andere angeeignet. Einen kleinen EA hab ich mir auch schon geschrieben, der im Backtest sogar Gewinn produziert.

:)

 

Nun will ich aber zusätzlich, dass mir der EA sozusagen gleichzeitig ein Template in den Chart zeichnet (oder ein bestehendes aufruft?). Darüber hinaus möchte ich mir die generierten Signale in den Chart einzeichnen, sodass ich sie in der Testphase noch selbst nachvollziehen kann. Pfeil hoch für Long-Ordr, Pfeil-Runter für Shortorder. Und das ganze natürlich an dem Candle wo das ganze ausgelöst wurde. Klar. Ich hab auch schon herausgefunden, dass es solche Symbole zum einzeichnen gibt. Per Hand sind die ja auch verfügbar. Aber wie kann ich das in den EA einbauen? Ich komme da irgendwie nicht dahinter :(

 

Meinen EA werde ich natürlich nun versuchen weiter auszubauen. Ich hoffe mal, dass ich den dabei nicht verschlimmbessere :D

 

Viele Grüße & einen sonnigen Samstag euch allen

Link to comment
Share on other sites

Hast du dich schon mal mit Objecten beschäftigt?

Ist nicht schwer. Was du brauchst ist ein Textobjekt. Das erzeugst du mit

 ObjectCreate("Labelname",OBJ_TEXT,0,Time[barWoEsHinSoll],KursWoEsHinSoll);
 ObjectSetText("Labelname","\xF1", TextGroesse, "Wingdings", Textfarbe);

In der Deinit-Funktion löscht du das Textobjekt dann wieder per ObjectDelete().

 

Der Code zeichnet einen Pfeil nach oben (angegeben durch den Hex-Wert F1). Such in der MQL-Hilfe einfach nach Wingdings, dann siehst du den Zeichensatz und welchen Code die einzelnen Zeichen haben.

 

Bei Problemen einfach fragen!

Link to comment
Share on other sites

oder kann man sich sowas als Indikator basteln, der auf andere Indikatoren (2 an der Zahl) zugreift und wenn die Bedingungen passen die Markierung setzt? Oder ist das eher EA-Sache?

 

Also von der Sache läuft mein EA ja bis auf 1-2 Dinge (die ich bisher einfach noch nicht eingebaut habe) gut. Aber ich will halt auch mal nachvollziehen wo die Einstiege sind und wie der EA dann tatsächlich reingegangen ist.

 

Am Ende also zwei Dinge:

  1. 1. Einzeichnen der tatsächlichen Ein- und Austiege durch den EA
  2. 2. an welchen Stellen die Bedingungen einfach stimmen, aber nichts passiert ist (weil die maximale Anzahl der Trades einfach noch laufen und daher nichts neues dazu kommt)

 

@Wogo:

danke - jetzt wo ich Deinen Hinweis lese, dämmert mir was. Das hab ich schon mal gesehen - aber noch nie probiert. Wird sicher noch etwas holprig das eizubauen

Link to comment
Share on other sites

Du kannst natürlich auch in einem Indikator Objekte setzen. Für einen Arrow gibt es übrigens auch eigene Objekte. Details dazu einfach in derHilfe nachlesen.

 

Ich würd die Markierungen aber im EA direkt machen. Du kannst zB den Pfeil anders einfärben falls das Signal da war aber der EA wegen Filter die Position nicht eröffnen darf etc. Dadurch schließt du aus, das der Indi sich irgendwie anders verhält als der EA (wodurch die Signale dann nicht zusammenpassen).

Link to comment
Share on other sites

http://www.tom-next....e-datenausgabe/ ..... geht bis hin zu (inzwischen älteren) Codebeispielen .

In meinem Thread Ernten 4.0 findest Du mein aktuelles SetUp in den Charts . Wenn Du den entsprechenden Code für die Array´s brauchst , bitte um Feedback (ist aber auch nur Object-Tralala)

 

Dann noch ein weiterer Hinweis :

 

Template ´s kannst Du selber speichern . In Templates kannst Du Indi´s integrieren .

 

Wenn Du einen Template mit exakt dem Namen Deines EA´s abspeicherst, dann wird dieser im Backtest auch dargestellt werden .

 

 

Noch etwas :

 

Weiterhin kannst Du in Deinem Code Farbcodierungen in Handelsbefehle aufnehmen und so zum Beispiel Kauf/Verkauf/Modify kennzeichnen . Das geht an jeder Stelle Deines EA neu, dazu mußt Du nur

die Farbe als Variable neu zuordnen, bevor Du den Befehl OrderSend() neu aufrufst , logo .

 

 

Zum Schluss : Viel Vergnügen mit Wingdings => http://docs.mql4.com...tants/wingdings

 

//------------------------------------------------------------------------------------------------|
        		// Auswerten ob sich CTR verändert hat und ggfs Pfeile generieren            	|
                                        		//                                       		|
for (int Y=0;Y<7;Y++)                        	//                                       		|
  {                                     		//1                                          	|
if (CTR_Val_New[Y]>CTR_Val_Old[Y])   		// neue Variable ist größer ?                	|
  	ObjectSetText("DSH_BD1"+"2"+Y,CharToStr(sRaise),sScreenTextHeight2,"Wingdings",Color[0]);//|
 	else                               		//                                       		|
     	if (CTR_Val_New[Y]<CTR_Val_Old[Y]) 	// neue Variable ist kleiner ?           		|
         	ObjectSetText("DSH_BD1"+"2"+Y,CharToStr(sDown)    	,//                   		|
                       	sScreenTextHeight2,"Wingdings",Color[2]);//                   		|
       	else                         		// neue Variable ist also unverändert ?      	|
           	ObjectSetText("DSH_BD1"+"2"+Y,CharToStr(sNeutral)   ,//                   		|
                       	sScreenTextHeight2,"Wingdings",Color[1]);//                   		|
  }                                     		//1                                          	|
//------------------------------------------------------------------------------------------------|

 

Da gibt es ein paar interessante Details im OrderSetText() . Der kleine Auszug oben vergleicht immer den vorherigen mit dem aktuellen Wert, steigen/fallen/neutral und malt da einen steigenden/fallenden/horizontalen Pfeil an "die" Position und mir der von mir vorher definierten Farbe grün/rot/gelb

 

KB

Link to comment
Share on other sites

Aber ich will halt auch mal nachvollziehen wo die Einstiege sind und wie der EA dann tatsächlich reingegangen ist.

Achso!

Das funktioniert so, wie es Kleinerbroker erklärt hat.

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) 

Übergib beim letzten Parameter der OrderSend-Funktion einfach eine Farbe und ein Einstiegspfeil wird eingezeichnet.

Genau das gleiche machst du bei OrderClose und du siehst genau wie der EA gehandelt hat.

Link to comment
Share on other sites

bei mir hat seit der Phase in der Du Dich gerade befindest ganz besonders bewährt, dass ich mir auf die "Firefox- Lesezeichen-Symbolleiste" ganze Ordner platziert habe . In diese Ordner habe ich mir Links zu einigen Kapiteln im MQL Book platziert, die ich immer wieder brauche .

Beispiele : Codetabellen für Wingdings , Error , Bool´sche Operatoren , Farbtabellen .

Genauso für Freeware zu Kurshistorien, zu FX Testern , verschiedenen CodeSchnipseln .

 

Nur für den Fall .....könnt Dir ja eventuell auch helfen

 

KB

 

PS.: Und nu ist Schluss für heute, Boxen gucken

Link to comment
Share on other sites

@Kleinerbroker:

Danke für den Tip - die Seiten zu mql4 hab ich mir tatsächlich schon abgelegt.

Sonst wäre meine aktuelle EA-Baustelle nicht mal halb so weit :D

 

Achso!

Das funktioniert so, wie es Kleinerbroker erklärt hat.

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) 

Übergib beim letzten Parameter der OrderSend-Funktion einfach eine Farbe und ein Einstiegspfeil wird eingezeichnet.

Genau das gleiche machst du bei OrderClose und du siehst genau wie der EA gehandelt hat.

Nur schließe ich die Orders nicht direkt durch den EA, da ich SL und TP mit übergebe :zwinker: von daher kann icih bei der OrderClose schon mal keine Parameter übergen :plorar1:

Link to comment
Share on other sites

auch eine gute Idee - aber wenn keine Trades gemacht wurden (weil ich im EA eine maximale Anzahl an Trades festlege) sehe ich das ja nicht. Das klappt dann tatsächlich nur bei eröffneten Trades.

 

Am liebsten wäre mir ja ein EA oder Indi, der mir das ganze auch rückwirkend in den Chart "malt", dass ich auch mal durch den Chart scrollen kann um zu sehen ob meine Strategie überhaupt Signale generiert und wo diese hinführen würden.

So ein Backtest gibt zwar auch Informationen, aber halt nur im Bericht und nicht live im Chart.

Link to comment
Share on other sites

Am liebsten wäre mir ja ein EA oder Indi, der mir das ganze auch rückwirkend in den Chart "malt", dass ich auch mal durch den Chart scrollen kann um zu sehen ob meine Strategie überhaupt Signale generiert und wo diese hinführen würden.

Und wo ist dann das Problem mit den Textobjekten, wie oben beschrieben? Alles was du brauchst ist eine Funktion, die dir bei einem Signal an die Einstiegsstelle einen Pfeil, ein Kreuz oder was auch immer zeichnet, dann siehst du gleich, wo dein EA eingestiegen ist (wäre).

Wenn er natürlich aus einem von dir vorgegebenen Grund garnicht einsteigt, dann tust du dich auch schwer, ein Signal an die Ausstiegsstelle zu zeichnen. :rolleyes:

Link to comment
Share on other sites

aber halt nur im Bericht und nicht live im Chart.

 

Das verstehe ich nicht . Bist Du sicher,dass Du im Backtest den "visuellen Modus" aktiviert hast ?

 

T&T.png

 

Alles was ich Dir mit rotem Pfeil markiert habe, dass macht der BT life, wenn denn der visuelle Modus unten links durch ein Häkchen in der Box aktiviert wurde völlig automatisch, selbst wenn Du keine Farben gewählt hast .

 

Alles was ich Dir mit den beiden orangen Pfeilen markiert habe, dass kommt durch den EA und wird zu großen Teilen durch den Code generiert den ich hier bei TN auch gepostet habe.

 

KB

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...