Alarm erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
da ich mich mit dem Code kaum auskenne, wollte ich euch Fragen, ob mir jemand einen Alarm bei meinem Indikator einfügen kann. Es sollte einmal ein Signalton kommen und sich ein Fenster öffnen, wenn der Kurs das untere oder obere Band berührt. #property indicator_chart_window #property indicator_buffers 6 #property indicator_color1 Green #property indicator_color2 Green #property indicator_color3 Red #property indicator_color4 Red extern int Price1=0; // Applied price // 0 - Close // 1 - Open // 2 - High // 3 - Low // 4 - Median // 5 - Typical // 6 - Weighted extern int Length1=10; extern double ChanWid1=1; // Multiplier for ATR extern int Price2=0; // Applied price // 0 - Close // 1 - Open // 2 - High // 3 - Low // 4 - Median // 5 - Typical // 6 - Weighted extern int Length2=60; extern double ChanWid2=3; // Multiplier for ATR extern int CompMode=0; // 0 - CMA shortening, 1 - 2nd degree polynomial double Upper1[], Upper2[], Lower1[], Lower2[]; double Ave1[], Ave2[]; int SetBack1, SetBack2; int init() { IndicatorShortName("Hurst Channel indicator"); IndicatorDigits(Digits); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Upper1); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Upper2); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,Lower1); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,Lower2); SetIndexStyle(4,DRAW_NONE); SetIndexBuffer(4,Ave1); SetIndexStyle(5,DRAW_NONE); SetIndexBuffer(5,Ave2); SetBack1=MathFloor((Length1-1)/2)+1; SetBack2=MathFloor((Length2-1)/2)+1; return(0); } int deinit() { return(0); } int start() { double Value3, Value4, Value5; int Value1, Value2; if(Bars<=MathMax(Length1, Length2)) return(0); int ExtCountedBars=IndicatorCounted(); if (ExtCountedBars<0) return(-1); int pos; int i; int limit=Bars-2; if(ExtCountedBars>2) limit=Bars-ExtCountedBars-1; pos=limit; while(pos>=0) { Ave1[pos]=iMA(NULL, 0, Length1, 0, MODE_SMA, Price1, pos); Upper1[pos]=Ave1[pos]+ChanWid1*iATR(NULL, 0, Length1, pos); Lower1[pos]=Ave1[pos]-ChanWid1*iATR(NULL, 0, Length1, pos); pos--; } Value5=(iMA(NULL, 0, Length1, 0, MODE_SMA, Price1, 0)-iMA(NULL, 0, Length1, 0, MODE_SMA, Price1, SetBack1))/SetBack1; for (Value1=SetBack1-1;Value1>0;Value1--) { Value3=0; Value4=Value1*2; for (Value2=0;Value2>=Value4;Value2++) { Value3=Value3+iMA(NULL, 0, 1, 0, MODE_SMA, Price1, Value2); } Ave1[0]=Value3/(Value4+1); if (CompMode!=0) Ave1[0]=Ave1[0]/3+(Ave1[1]+Value5*(SetBack1-Value1))*2/3; Upper1[Value1]=Ave1[Value1]+ChanWid1*iATR(NULL, 0, Length1, Value1); Lower1[Value1]=Ave1[Value1]-ChanWid1*iATR(NULL, 0, Length1, Value1); } pos=limit; while(pos>=0) { Ave2[pos]=iMA(NULL, 0, Length2, 0, MODE_SMA, Price2, pos); Upper2[pos]=Ave2[pos]+ChanWid2*iATR(NULL, 0, Length2, pos); Lower2[pos]=Ave2[pos]-ChanWid2*iATR(NULL, 0, Length2, pos); pos--; } Value5=(iMA(NULL, 0, Length2, 0, MODE_SMA, Price2, 0)-iMA(NULL, 0, Length2, 0, MODE_SMA, Price2, SetBack2))/SetBack2; for (Value1=SetBack2-1;Value1>0;Value1--) { Value3=0; Value4=Value1*2; for (Value2=0;Value2>=Value4;Value2++) { Value3=Value3+iMA(NULL, 0, 1, 0, MODE_SMA, Price2, Value2); } Ave2[0]=Value3/(Value4+1); if (CompMode!=0) Ave2[0]=Ave2[0]/3+(Ave2[1]+Value5*(SetBack2-Value1))*2/3; Upper2[Value1]=Ave2[Value1]+ChanWid2*iATR(NULL, 0, Length2, Value1); Lower2[Value1]=Ave2[Value1]-ChanWid2*iATR(NULL, 0, Length2, Value1); } return(0); } |
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:20 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum