Geschrieben 1. September 201015 Jr. comment_104362 Kann mir jemand ein wenig auf die Sprünge helfen ? Ich möchte die nackte Signallinie des MACD im Chart als MA einzeichnen.Ich komme irgendwie nicht mit der Berechnungsgrundlage zurecht. Melden
Geschrieben 2. September 201015 Jr. Autor comment_104399 Möchte hier noch mal nach harkenum das Problem besser zu beschreiben. Also es geht mir um die reine Signallinie des MACD im Chart.Den Indi den ich dazu gefunden habe ist in den Bildern im Preischart zu sehen. Im Extrafenster ist der Original MT4 Indi mit gleichen Einstellungen zu sehen.Mal zeichnet der Indi richtig, mal falsch.... Da es mir aber um die Anzeige der Divergenzen geht, sollte der Extra Indi schon das gleiche zeichnen wie der Originale,sonst kann ich beim Divergenzen traden ja gleich ne Münze werfen.... zeichnet richtig zeichnet falsch Hat jemand ne Lösung oder noch einfacher ein Beispiel wie ich einen ganz normalen MA so einstelle das er die Signallinie des MACD richtig einzeichnet ?? Melden
Geschrieben 2. September 201015 Jr. comment_104401 Du möchtest die Signallinie auf den Chart legen?Ich sehe erstmal nicht wie das gehen soll:Es ist ja MACD = EMA(9)-EMA(25) und die Signallinie ja nochmal nen EMA davon.Was du machen könntest wäre zum EMA(9) die Signallinie dazu addieren. Dann währst du nahe am Kurs.Aber vermutlich verstehe ich auch nur einfach noch nicht was du machen willst.Kann auch leider deine Attachments nicht sehen. Melden
Geschrieben 2. September 201015 Jr. Autor comment_104403 Ich sehe erstmal nicht wie das gehen soll:Es ist ja MACD = EMA(9)-EMA(25) und die Signallinie ja nochmal nen EMA davon.Geht nicht, gibts nicht. Vola will das aber haben.....Ja die Berechnung ist ja eben genau mein Problem.... Probiere mal bitte die Bilder nochmal zu öffnen, vllt. hattest du versucht als ichgrade am verbessern der Größe war. Melden
Geschrieben 2. September 201015 Jr. comment_104409 hast du denn quellcode des indis der das zeichnet?Ich kann mir gerade nicht vorstellen wie man die Linie überhaupt auf den Chart bringen soll.Bilder gehen jetzt Melden
Geschrieben 2. September 201015 Jr. Autor comment_104418 Ja habe ich, hier isser: //---- indicator settings #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Silver #property indicator_color2 Red #property indicator_color3 Blue #property indicator_width1 2 //---- indicator parameters extern int FastEMA=12; extern int SlowEMA=26; extern int SignalSMA=9; //---- indicator buffers double MacdBuffer[]; double SignalBuffer[]; double HistoBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings SetIndexStyle(0,DRAW_NONE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_NONE); SetIndexDrawBegin(1,SignalSMA); IndicatorDigits(Digits+1); //---- indicator buffers mapping SetIndexBuffer(0,MacdBuffer); SetIndexBuffer(1,SignalBuffer); SetIndexBuffer(2,HistoBuffer); //---- name for DataWindow and indicator subwindow label IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+") !! :)"); SetIndexLabel(0,"MACD YO"); SetIndexLabel(1,"Signal YO"); SetIndexLabel(2,"H I S T O :):)"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- macd counted in the 1-st buffer for(int i=0; i<limit; i++) MacdBuffer[i]=Close[i]+(iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i)); //---- signal line counted in the 2-nd buffer for(i=0; i<limit; i++) SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i); //---- histogram line counted in the 3-nd buffer for(i=0; i<limit; i++) HistoBuffer[i]=Close[i]-(MacdBuffer[i]+SignalBuffer[i]); for(i=0; i<limit; i++) MacdBuffer[i]=iMAOnArray(HistoBuffer,Bars,SignalSMA,0,MODE_SMA,i); //---- done return(0); } //+------------------------------------------------------------------+ Melden
Geschrieben 2. September 201015 Jr. comment_104432 Ich glaube das Problem ist halt einfach das Close. Du kannst halt leider nicht einfach die Sachen irgendwie rausziehen, da keine Linearität in den MovingAverage-Operatoren vorliegt. Schau auch mal im ersten Bild links. Da passt es auch nicht. Das scheint irgendwie in starken Trends zu Problemen zu führen. Die Closekurse fallen dann relativ kontinuierlich. Ist aber nen Interessantes Problem? Jemand anderes ne Idee? Melden
Geschrieben 2. September 201015 Jr. comment_104451 Hi Vola, alter Programmiergott! Ich seh das genau so wie Quickbeam2k1. Die "normale" Signallinie beim MACD bezieht sich ja immer auf "0".Hier wird das berechnete Signal aber zu Close addiert, wodurch natürlich der Offset stark schwankt und du diese Abweichungen bekommst, die man in deinen Bildern sehen kann. Melden
Geschrieben 2. September 201015 Jr. Autor comment_104453 Hmm, schon blöd....Habe hier noch nen anderen Indi, kann man aber sicher auch nix machenwenn das Problem der MA mit den Close Kursen ist.... Sieht im Chart dann so aus..... Hier der Code //+------------------------------------------------------------------+//| Custom MACD.mq4 |//| Copyright © 2004, MetaQuotes Software Corp. |//| MetaTrader 4 Trading Platform / MetaQuotes Software Corp. |//+------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" //---- indicator settings #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 DarkGreen #property indicator_color2 Red #property indicator_color3 DarkGreen #property indicator_color4 Red //---- indicator parameters extern int FastEMA=12; extern int SlowEMA=26; extern int SignalSMA=9; //---- indicator buffers double ind_buffer1[]; double ind_buffer2[]; double ind_buffer3[]; double ind_buffer4[]; double alertTag; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings SetIndexStyle(0,DRAW_NONE); SetIndexStyle(1,DRAW_NONE); SetIndexDrawBegin(1,SignalSMA); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1); //---- indicator buffers mapping if(!SetIndexBuffer(0,ind_buffer1) && !SetIndexBuffer(1,ind_buffer2)) Print("cannot set indicator buffers!"); SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, 0); SetIndexArrow(2, 108); SetIndexBuffer(2, ind_buffer3); SetIndexStyle(3, DRAW_ARROW, STYLE_SOLID, 0); SetIndexArrow(3, 108); SetIndexBuffer(3, ind_buffer4); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- macd counted in the 1-st buffer for(int i=0; i<limit; i++) ind_buffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i); //---- signal line counted in the 2-nd buffer for(i=0; i<limit; i++) ind_buffer2[i]=iMAOnArray(ind_buffer1,Bars,SignalSMA,0,MODE_SMA,i); for (i=0; i<limit; i++) { ind_buffer3[i] = EMPTY_VALUE; ind_buffer4[i] = EMPTY_VALUE; if (ind_buffer1[i] > ind_buffer2[i] && ind_buffer1[i+1] < ind_buffer2[i+1]&&alertTag!=Time[0]) { ind_buffer3[i] = Low[i] - 1 * Point;Alert(Symbol(), " M", Period(), " Buy Alert");alertTag = Time[0]; } if (ind_buffer1[i] < ind_buffer2[i] && ind_buffer1[i+1] > ind_buffer2[i+1]&&alertTag!=Time[0]) { ind_buffer4[i] = High[i] + 1 * Point;Alert(Symbol(), " M", Period(), " Sell Alert");alertTag = Time[0]; } } //---- done return(0); } Melden
Geschrieben 2. September 201015 Jr. Autor comment_104454 Hi Vola, alter Programmiergott! Ich seh das genau so wie Quickbeam2k1. Die "normale" Signallinie beim MACD bezieht sich ja immer auf "0". Hmm, na gut, dann lasse ich es eben wie es ist im Extra Fenster mal mitlaufen. Programmiergott ist gut, bin froh wenn ich die Farben verstellen kann..... Trotzallem Danke für eure Mühe Melden
Geschrieben 2. September 201015 Jr. comment_104459 Hmm, na gut, dann lasse ich es eben wie es ist im Extra Fenster mal mitlaufen. Ich hab schon länger nix mehr gemacht mit MT4, aber ich hab zwei Ideen: Falls MT4 eine zweite Scala kann, könnte man z.B. rechts die normalen Kurse und links den MACD anzeigen. Also einfach Überlagern. An sonsten könnte man den Offset nicht Close benutzen, sondern den Mittelpunkt zwischen HighestHigh und LowestLow, und zwar für so viele Bars zurück, wie lange eben dein View ist. So würde man eine Nulllinie simulieren. Melden
Geschrieben 2. September 201015 Jr. Autor comment_104467 Jaaa jaaa ja ! Verstehe zwar nur Bahnhof aber die Idee gefällt mir. Habe nur keinen Plan wie man das macht.... Melden
Geschrieben 2. September 201015 Jr. comment_104473 Ich hab schon länger nix mehr gemacht mit MT4, aber ich hab zwei Ideen: Falls MT4 eine zweite Scala kann, könnte man z.B. rechts die normalen Kurse und links den MACD anzeigen. Also einfach Überlagern. An sonsten könnte man den Offset nicht Close benutzen, sondern den Mittelpunkt zwischen HighestHigh und LowestLow, und zwar für so viele Bars zurück, wie lange eben dein View ist. So würde man eine Nulllinie simulieren.Ob das mit einer 2. Skala möglich ist, weiß ich nicht. Hab ich noch nicht gesehen und glaube eher nicht.Was aber recht einfach gehen sollte ist die 2. Idee. Ich schau's mir heute Abend mal an. Melden
Geschrieben 2. September 201015 Jr. comment_104474 Jaaa jaaa ja ! Verstehe zwar nur Bahnhof aber die Idee gefällt mir. Habe nur keinen Plan wie man das macht.... Hab grad nachgeschaut, MT4 kann glaub ich nur eine Scale.Bzw. es gibt "OBJPROP_SCALE 12 double Double value to set/get scale object property."; evtl. klappt das damit. Oder man rechnet um in OBJPROP_X- und YDISTANCE. Wenn's dir nicht eilig ist damit, würde ich mich nach meinem SystemStatus-Project da mal dran machen; denn in MQL muß ich gedanklich erst wieder rein... Melden
Geschrieben 2. September 201015 Jr. comment_104475 Ob das mit einer 2. Skala möglich ist, weiß ich nicht. Hab ich noch nicht gesehen und glaube eher nicht.Was aber recht einfach gehen sollte ist die 2. Idee.Ich schau's mir heute Abend mal an. OKee, du darfst das wirklich gerne übernehmen; wie gesagt, ich bin z.ZT. etwas raus aus MQL. Melden
Geschrieben 2. September 201015 Jr. Autor comment_104477 Sage schon mal vielen Dank im voraus , bin gespannt auf das Ergebnis. Melden
Geschrieben 2. September 201015 Jr. comment_104511 Sage schon mal vielen Dank im voraus , bin gespannt auf das Ergebnis.Das Ergebnis ist leider wenig spektakuär. Ich hab mich jetzt 'ne Weile mit dem Indi, den du als erstes geposted hast, rumgespielt und hab dabei das Problem, dass er zwar die historischen Daten berechnet, bei neuen Ticks aber immer nach unten ausbricht.Nun hab ich nochmal den Orginal-Indikator ausprobiert und festgestellt, dass es da auch schon so ist (siehe Bild!). Hast du das Problem nicht? Unabhängig davon hab ich mal einfach anstelle von Close+... den jeweiligen Mittelwert zwischen Minimum- und Maximum-Kurs der Ansicht als Basis für die Signallinie genommen.Das Ergebnis sieht zwar rechts im Chart noch recht gut aus und zeigt keine Divergenzen,entfernt sich aber teilweise recht weit vom Kurs und hat auch manchmal Divergenzen zum eigentlichen MACD, was du ja vermeiden wolltest. Dies lieg daran, dass beim Scrollen halt unterschiedliche Hoch/Tiefkurse zum Tragen kommen.Richtig schön ist das nicht... Ich hab mir nochmal überlegt, wie man das mit einer 2. Skala machen könnte. Das wär grundsätzlich schon möglich über Objekte. Das wär dann aber halt nichts anderes, als ein Verschieben der eigentlichen Signallinie aus dem MACD nach oben.Bin mir nicht ganz klar darüber, was das bringen soll... Melden
Geschrieben 2. September 201015 Jr. Autor comment_104512 Hast du das Problem nicht? Ich hab mir nochmal überlegt, wie man das mit einer 2. Skala machen könnte. Das wär grundsätzlich schon möglich über Objekte. Das wär dann aber halt nichts anderes, als ein Verschieben der eigentlichen Signallinie aus dem MACD nach oben.Bin mir nicht ganz klar darüber, was das bringen soll... Doch habe das gleiche Problem mit dem Ausbruch nach unten. Sinn des ganzen ist in erster Linie, das ich mir das Chart Fenster nicht mit Extra Indis zuknallen möchteda ich eigentlich gar keine verwende und unten nur das Volumen mitlaufen lasse. Desweiteren sehe ich Divergenzen der MACD Linie im Preischart viel direkter und deutlicher als wenn die Linie unter dem Chart im Extra Fenster mitläuft. Als Beispiel mal der Bressert im Chart und darunter. Das ganze mag reine Ansichtssache sein, mir würde es eben aus besagten Gründen besser gefallen wenn dieMACD Linie als "MA" direkt im Chart zu sehen ist. ( Wäre ja viel unauffälliger als z.B. der Bressert vom Beispielbild ) Melden
Geschrieben 3. September 201015 Jr. comment_104514 Als Beispiel mal der Bressert im Chart und darunter. Da läuft der MACD aber eindeutig auf der Linken Skala, anders geht es auch nicht. Wenn ich mir im Chart 2 Werte anzeigen lassen will die rein gar nichts mit einander zu tun haben muss ich so verfahren. Melden
Geschrieben 3. September 201015 Jr. comment_104518 Als Beispiel mal der Bressert im Chart und darunter.Wenn du hierfür den Code hast, dann könnte man mal schaun, wie es da implementiert ist und das beim MACD genau so machen. Melden
Geschrieben 3. September 201015 Jr. Autor comment_104522 Jetzt gibts was zu lachen ! Naja, habe ja kein Problem damit mich zu outen, aber bißchen peinlich ist schon........ Hmmm, manchmal hat man ja ( Ich), Holzsägewerke aller Nationen vor dem Kopf Zu dem Bressert im Chart gibt es keinen Code, da dies ein Template ist das ich selber erstellt habe (Vor Monaten ) Wie ich das Template erstellt habe ?? Habe ich in einem Blog mal "gesehen" Template Problem gelöst: Danke@all für eure Mühe Melden
Kann mir jemand ein wenig auf die Sprünge helfen ?
Ich möchte die nackte Signallinie des MACD im Chart als MA einzeichnen.
Ich komme irgendwie nicht mit der Berechnungsgrundlage zurecht.