Geschrieben 22. Februar 201115 Jr. comment_113500 Hallo, wäre jemand so nett in den nachfolgenden Indikator einen Sound Alert einzubauen? Ich weiß leider nicht wie genau ich das machen soll, und finde im Netz leider keine Version mit Alarm.würde mich sehr freuen wenn mir jemand helfen könnte. hier der code: //+------------------------------------------------------------------+ //| 3LineBreak.mq4 | //| Copyright © 2004, Poul_Trade_Forum | //| Aborigen | //| http://forex.kbpauk.ru/ | //+------------------------------------------------------------------+ #property copyright "Poul Trade Forum" #property link "http://forex.kbpauk.ru/" #property indicator_chart_window #property indicator_buffers 2 //---- input parameters extern int Lines_Break=3; //---- buffers double HighBuffer[]; double LowBuffer[]; double VALUE1,VALUE2,Swing=1,OLDSwing; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,2,Blue); SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,2,Red); SetIndexBuffer(0,HighBuffer); SetIndexBuffer(1,LowBuffer); SetIndexEmptyValue(0,0); SetIndexEmptyValue(1,0); //---- name for DataWindow and indicator subwindow label short_name="3LineBreak"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); //---- SetIndexDrawBegin(0,10); SetIndexDrawBegin(1,10); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(),i,shift; //---- TODO: add your code here if (counted_bars==0) counted_bars=Lines_Break+1; i=(Bars-counted_bars); for (shift=i; shift>=0;shift--) { OLDSwing=Swing; VALUE1=High[Highest(NULL,0,MODE_HIGH,Lines_Break,shift+1)]; VALUE2= Low[Lowest(NULL,0,MODE_LOW,Lines_Break,shift+1)]; if (OLDSwing==1 && Low[shift]<VALUE2) Swing=-1; if (OLDSwing==-1 && High[shift]>VALUE1 ) Swing=1; if (Swing==1) { HighBuffer[shift]=High[shift]; LowBuffer[shift]=Low[shift]; } if (Swing==-1) { LowBuffer[shift]=High[shift]; HighBuffer[shift]=Low[shift]; } //---- } return(0); } //+------------------------------------------------------------------+ Melden
Geschrieben 22. Februar 201115 Jr. comment_113501 Da es sich um einen Indikator handelt, gehört ein Soundalert hier nicht hinein. Was ist denn das Auslöskriterium? Stattdessen müsstest du dir sinnvoller Weise den Indikator einbinden und über einen EA darauf zugreifen und prüfen, ob deine Bedingung erfüllt ist. Wenn die Bedingung greift, dann hilft ein void PlaySound( string filename). Melden
Geschrieben 22. Februar 201115 Jr. Autor comment_113502 Da es sich um einen Indikator handelt, gehört ein Soundalert hier nicht hinein. Was ist denn das Auslöskriterium? Stattdessen müsstest du dir sinnvoller Weise den Indikator einbinden und über einen EA darauf zugreifen und prüfen, ob deine Bedingung erfüllt ist. Wenn die Bedingung greift, dann hilft ein void PlaySound( string filename). Hallo Rainworm,der Sound soll aktiv werden, sobald es den "3lineBreak" gibt. Also das Hoch oder Tief der 3. letzten Kerze gebrochen wurde. (zweit, dritt oder zehnt letzte Kerze, je nachdem welchen Parameter man angegeben hat) Dies sollte in den "Input" mit aufgenommen werden. Also Sound Alert true or false. Da ich manuell handel, will ich dies nicht in einem EA haben, sondern direkt im Indikator.Welches Soundfile verwendet wird, ist mir nicht so wichtig, eines der Standardsounds des MT4 wäre mir recht. Kannst du mir dabei helfen?GrußAlex Melden
Geschrieben 22. Februar 201115 Jr. comment_113507 Kannst du mir dabei helfen? Ersetze die letzten beiden if mit: if (Swing==1) { HighBuffer[shift]=High[shift]; LowBuffer[shift]=Low[shift]; if ((shift==0) && (OLDSwing != Swing)) Alert("up @ "+VALUE1); } if (Swing==-1) { LowBuffer[shift] = High[shift]; HighBuffer[shift]= Low[shift]; if ((shift==0) && (OLDSwing != Swing)) Alert("down @ "+VALUE2); } Damit kommt ein Alert, immer wenn die Farbe wechselt. Melden
Geschrieben 22. Februar 201115 Jr. Autor comment_113511 Ersetze die letzten beiden if mit: if (Swing==1) { HighBuffer[shift]=High[shift]; LowBuffer[shift]=Low[shift]; if ((shift==0) && (OLDSwing != Swing)) Alert("up @ "+VALUE1); } if (Swing==-1) { LowBuffer[shift] = High[shift]; HighBuffer[shift]= Low[shift]; if ((shift==0) && (OLDSwing != Swing)) Alert("down @ "+VALUE2); } Damit kommt ein Alert, immer wenn die Farbe wechselt. Super, vielen Dank! Das ist genau das was ich wollte Melden
Hallo, wäre jemand so nett in den nachfolgenden Indikator einen Sound Alert einzubauen? Ich weiß leider nicht wie genau ich das machen soll, und finde im Netz leider keine Version mit Alarm.
würde mich sehr freuen wenn mir jemand helfen könnte.
hier der code:
//+------------------------------------------------------------------+ //| 3LineBreak.mq4 | //| Copyright © 2004, Poul_Trade_Forum | //| Aborigen | //| http://forex.kbpauk.ru/ | //+------------------------------------------------------------------+ #property copyright "Poul Trade Forum" #property link "http://forex.kbpauk.ru/" #property indicator_chart_window #property indicator_buffers 2 //---- input parameters extern int Lines_Break=3; //---- buffers double HighBuffer[]; double LowBuffer[]; double VALUE1,VALUE2,Swing=1,OLDSwing; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,2,Blue); SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,2,Red); SetIndexBuffer(0,HighBuffer); SetIndexBuffer(1,LowBuffer); SetIndexEmptyValue(0,0); SetIndexEmptyValue(1,0); //---- name for DataWindow and indicator subwindow label short_name="3LineBreak"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); //---- SetIndexDrawBegin(0,10); SetIndexDrawBegin(1,10); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(),i,shift; //---- TODO: add your code here if (counted_bars==0) counted_bars=Lines_Break+1; i=(Bars-counted_bars); for (shift=i; shift>=0;shift--) { OLDSwing=Swing; VALUE1=High[Highest(NULL,0,MODE_HIGH,Lines_Break,shift+1)]; VALUE2= Low[Lowest(NULL,0,MODE_LOW,Lines_Break,shift+1)]; if (OLDSwing==1 && Low[shift]<VALUE2) Swing=-1; if (OLDSwing==-1 && High[shift]>VALUE1 ) Swing=1; if (Swing==1) { HighBuffer[shift]=High[shift]; LowBuffer[shift]=Low[shift]; } if (Swing==-1) { LowBuffer[shift]=High[shift]; HighBuffer[shift]=Low[shift]; } //---- } return(0); } //+------------------------------------------------------------------+