|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Füge in deinem Code folgendes ein (nicht verwirren lassen ):
Von Code:
extern bool DrawConfirmArrow=true; Code:
extern bool DrawConfirmArrow=true; extern bool DrawConfirmDot=true; Code:
SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexLabel(0,NULL); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,NULL); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,159); SetIndexBuffer(2,ExtMapBuffer3); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,ExtMapBuffer4); Code:
SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexLabel(0,NULL); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,NULL); if(DrawConfirmDot) { SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,159); SetIndexBuffer(2,ExtMapBuffer3); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,ExtMapBuffer4); } ================================================== ======= Wenn du komplett (immer) weg haben möchtest, so mache im Code folgendes: (Beachte, dass ist NICHT notwendig, allerdings wenn du die Codeteile wirklich nicht nutzen wirst, so solltest du sie besser auskommentieren oder löschen) Von Code:
extern int MainHP=3; extern int SignalHP=3; extern bool DrawConfirmArrow=true; Code:
/* extern int MainHP=3; extern int SignalHP=3; extern bool DrawConfirmArrow=true; */ Code:
double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double ExtMapBuffer6[]; Code:
double ExtMapBuffer1[]; double ExtMapBuffer2[]; /* double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double ExtMapBuffer6[]; */ Code:
SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexLabel(0,NULL); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,NULL); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,159); SetIndexBuffer(2,ExtMapBuffer3); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,ExtMapBuffer4); if(DrawConfirmArrow) { SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,234);//(4,159); SetIndexBuffer(4,ExtMapBuffer5); SetIndexStyle(5,DRAW_ARROW); SetIndexArrow(5,233);//(5,159); SetIndexBuffer(5,ExtMapBuffer6); } SetIndexEmptyValue(5,0.0); SetIndexDrawBegin(0,K+D+S); SetIndexDrawBegin(1,K+D+S); SetIndexDrawBegin(2,K+D+S); SetIndexDrawBegin(3,K+D+S); SetIndexDrawBegin(4,K+D+S); SetIndexDrawBegin(5,K+D+S); IndicatorShortName("S_p"); Code:
SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexLabel(0,NULL); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,NULL); /* SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,159); SetIndexBuffer(2,ExtMapBuffer3); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,159); SetIndexBuffer(3,ExtMapBuffer4); if(DrawConfirmArrow) { SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,234);//(4,159); SetIndexBuffer(4,ExtMapBuffer5); SetIndexStyle(5,DRAW_ARROW); SetIndexArrow(5,233);//(5,159); SetIndexBuffer(5,ExtMapBuffer6); } SetIndexEmptyValue(5,0.0); SetIndexDrawBegin(2,K+D+S); SetIndexDrawBegin(3,K+D+S); SetIndexDrawBegin(4,K+D+S); SetIndexDrawBegin(5,K+D+S); */ SetIndexDrawBegin(0,K+D+S); SetIndexDrawBegin(1,K+D+S); IndicatorShortName("S_p"); Code:
if(ArrayMaximum(ExtMapBuffer1,MainHP*2+1,i)==i+MainHP) ExtMapBuffer3[i+MainHP]=ExtMapBuffer1[i+MainHP]; if(ArrayMinimum(ExtMapBuffer1,MainHP*2+1,i)==i+MainHP) ExtMapBuffer4[i+MainHP]=ExtMapBuffer1[i+MainHP]; if(ArrayMaximum(ExtMapBuffer2,SignalHP*2+1,i)==i+SignalHP) ExtMapBuffer5[i+SignalHP]=ExtMapBuffer2[i+SignalHP]; if(ArrayMinimum(ExtMapBuffer2,SignalHP*2+1,i)==i+SignalHP) ExtMapBuffer6[i+SignalHP]=ExtMapBuffer2[i+SignalHP]; Code:
/* if(ArrayMaximum(ExtMapBuffer1,MainHP*2+1,i)==i+MainHP) ExtMapBuffer3[i+MainHP]=ExtMapBuffer1[i+MainHP]; if(ArrayMinimum(ExtMapBuffer1,MainHP*2+1,i)==i+MainHP) ExtMapBuffer4[i+MainHP]=ExtMapBuffer1[i+MainHP]; if(ArrayMaximum(ExtMapBuffer2,SignalHP*2+1,i)==i+SignalHP) ExtMapBuffer5[i+SignalHP]=ExtMapBuffer2[i+SignalHP]; if(ArrayMinimum(ExtMapBuffer2,SignalHP*2+1,i)==i+SignalHP) ExtMapBuffer6[i+SignalHP]=ExtMapBuffer2[i+SignalHP]; */ |
|
|||
DANKESCHÖN
Korrigiere mich bitte falls ich Falsch liege. Löschen würde bedeuten das alle Bereiche die ich jetzt mit /* */ gekennzeichnet habe, löschen müsste? |
|
|||
Jap. Das Auskommentierte löschen.
Allerdings nur, wenn du dir sicher bist, dass du es nicht brauchen wirst. Daher habe ich es erstmal auskommentiert. |
|
|||
stochastic-signal Hintergrund Farbe
Hallo alle miteinander. Ich war die letzten Monate gesundheitlich außer Gefecht. Jetzt geht es weiter jupiii
Bei meinen (Fehl-) Trades die ich regelmäßig nach analysiere erkenne ich immer wieder das gleiche Problem. Während den schnellen Phasen im kleinen Timeframe vernachlässige ich unbewusst den Stochastik Indikator der so ziemlich am wichtigsten ist in meiner Strategie. Nun mein Anliegen. Könnte mir jemand bitte helfen den „stochastic-signal“ so umzuprogrammieren, oder eine Lösung vorschlagen, dass er mir zu den bestehenden Signalen wie Email, Sound und Popup, in einer definierten Ebene z.B. 80, die komplette Hintergrundfarbe im Bereich des Indikators in einer auswählbaren Farbe automatisch verändert. Zum Beispiel Grün. So das ich Visuell eine weitere Bestätigung habe und ich mich währen der Grünphase voll auf den Preischart konzentrieren kann. Unterschreitet die Hauptlinie die Ebene 80 wieder und die aktuelle Kerze schließt dabei ab, soll die Hintergrundfarbe automatisch wieder zurück zur ursprünglichen weißen Hintergrundfarbe wechseln. Das gleiche Prinzip für die entgegengesetzte Ebene 20. Wichtig zu wissen, der „stochastic-signal“ vergibt nur ein Signal wenn die Hauptlinie sich z.B. über Ebene 80 befindet und die aktuelle Kerze abgeschlossen ist. Ich hoffe das mir jemand mit meinem Problem helfen kann und bedanke mich im Voraus für eine Lösung oder Tipp. |
|
|||
Indikator
Hier noch der Indikator dazu
|
|
|||
Soweit ich weiß, gibt es für das Chartfenster, sowie für alle Subwindows nur eine einzige Hintergrundfarbe (Farbe des Chartfensters).
Du könntest aber sowas machen wie z.B. einen Rechteck in den Hintergrund setzen. |
|
|||
Rechteck
Hi next user. Danke für deine Antwort. Genau so habe ich mir das öfter mal mit dem Rechteck eingebetet um zu sehen wie es wirkt, so kam auch die Idee zu Stande.
Nur wäre es Toll wenn der Indikator sozusagen dieses farbige Rechteck in den definierten Ebenen automatisch aktiviert in denen ich es benötige, z.B. Ebene über 80 oder unter 20 die ich festlege. Und natürlich wieder deaktiviert sobald die Ebene wieder in die entgegensetzte Richtung durchbrochen wird. |
|
|||
Zitat:
|
|
|||
Sorry next user, bin in Sachen Pro-Sprache noch keinen Schritt weiter gekommen. Mag bestimmt easy für die Profis sein, aber die Zeit habe ich im Moment leider nicht meinen Fokus dahingehend zu verlagern. Muss mich nach der langen Pause erst wieder an das Traden konzentrieren.
Wäre dir sehr Dankbar wenn mir damit helfen würdest, ansonsten vielen Dank dafür |
|
|||
Zitat:
Aber ist ja auch nach langer Zeit erstmal wieder "umstellen" im Kopf. Deinen Code musst du um die roten Zeilen erweitern. Den Code aber an die richtige Stelle setzen. Code:
if(ExtMapBuffer1[1] > LevelTop) { // Über bestätigter, oberer Ebene -> z.B. Grün ObjectSetInteger(0,"DEIN RECHTECK",OBJPROP_COLOR,clrGreen); if(SoundAlert) PlaySound(soundDatei); if(PopupAlert) Alert("Alarm wurde aktiviert -> ",Symbol()," im ",t_period," - ","Level ",LevelTop); // weiterer Code ... } else if(ExtMapBuffer1[1] < LevelBottom) { // Unter bestätigter, unterer Ebene -> z.B. Rot ObjectSetInteger(0,"DEIN RECHTECK",OBJPROP_COLOR,clrRed); if(SoundAlert) PlaySound(soundDatei); if(PopupAlert) Alert("Alarm wurde aktiviert -> ",Symbol()," im ",t_period," - ","Level ",LevelBottom); // weiterer Code ... } else // Dieses else musst du noch erstellen! // Zwischen den Ebenen, also KEIN Signal -> z.B. Grau (hier Standardfarbe, mit der du das Rechteck erstellt hast...) ObjectSetInteger(0,"DEIN RECHTECK",OBJPROP_COLOR,clrGray); |
Lesezeichen |
Stichworte |
alarm, alarm einfügen, mql4, programmierung, programmierung metatrader, programmierung mql4, stochastik alarm einfügen |
|
|