BuySell Indicator For MT5
Table Of Contents:
- BuySell Indicator For MT5
- Installation des BuySell Indicator For MT5
- Parameter des BuySell Indicator For MT5
- Puffer des BuySell Indicator For MT5
- Hauptteile des Codes
Der BuySell Indicator For MT5 zeigt die dynamische Unterstützungs- und Widerstandszone im BuySell Indicator For MT5 mit einfachen Punkten. Wenn Sie jedoch die Preistabelle genau beobachten, werden Sie häufig ein kleines magentafarbenes Farbquadrat über dem Kerzenhalter bemerken. Dies bedeutet, dass Sie sich auf den Abwärtstrend vorbereiten müssen. Im Gegenteil, wenn Sie ein blaues Quadrat unter dem Kerzenhalter entdecken, sollten Sie für die zinsbullische Rallye bereit sein. Um mit diesem Tool auf dem Markt zu handeln, müssen Sie lernen, das Unterstützungs- und Widerstandsniveau zu analysieren. Einige Trader verwenden häufig die Punkte- und Quadratmarkierung, um aus profitablen Trades auszusteigen, da der Indikator auch den ATR-Wert berechnet, während er diese Punkte und Quadrate zeichnet.
Installation des BuySell Indicator For MT5
Nachdem Sie den Indikator über das obige Formular heruntergeladen haben, müssen Sie die Zip-Datei entpacken. Anschließend müssen Sie die Datei buysell.mq5 in den Ordner MQL5Indicators Ihrer MT5 Installation kopieren. Starten Sie danach MT5 neu und Sie können den Indikator in der Liste der Indikatoren sehen.
Parameter des BuySell Indicator For MT5
Der BuySell Indicator For MT5 verfügt über 4 zu konfigurierende Parameter.
input uint MA_Period=14; input ENUM_MA_METHOD MA_Method=MODE_SMA; // Smoothing method input ENUM_APPLIED_PRICE MA_Price=PRICE_CLOSE; // Price input uint ATR_Period=60;
Puffer des BuySell Indicator For MT5
Der BuySell Indicator For MT5 stellt 4 Puffer bereit.
SetIndexBuffer(0,UpBuffer,INDICATOR_DATA); SetIndexBuffer(1,DnBuffer,INDICATOR_DATA); SetIndexBuffer(2,SellBuffer,INDICATOR_DATA); SetIndexBuffer(3,BuyBuffer,INDICATOR_DATA);
Hauptteile des Codes
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- checking of bars, needed for calculation if(BarsCalculated(MA_Handle) lt rates_total || BarsCalculated(ATR_Handle) lt rates_total || rates_total lt min_rates_total) return(RESET); //---- declaration of local variables int limit,to_copy,bar; double MA[],ATR[]; //---- set starting bar index limit if(prev_calculated gt rates_total || prev_calculated lt =0)// checking of first call limit=rates_total-min_rates_total-2; // starting bar index for all bars else limit=rates_total-prev_calculated; // starting bar index for new bars to_copy=limit+2; //---- copy new data to arrays if(CopyBuffer(MA_Handle,0,0,to_copy,MA) lt =0) return(RESET); if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR) lt =0) return(RESET); //---- set indexing as time series ArraySetAsSeries(MA,true); ArraySetAsSeries(ATR,true); //---- first calculation for(bar=limit; bar gt =0 && !IsStopped(); bar--) { //---- set buffers to zero DnBuffer[bar]=0.0; UpBuffer[bar]=0.0; if(MA[bar] gt MA[bar+1]) DnBuffer[bar]=MA[bar]-ATR[bar]; if(MA[bar] lt MA[bar+1]) UpBuffer[bar]=MA[bar]+ATR[bar]; } //---- recalculation of starting bar index for new bars if(prev_calculated gt rates_total || prev_calculated lt =0)// checking of first call limit--; //---- second calculation for(bar=limit; bar gt =0 && !IsStopped(); bar--) { //---- set buffers to zero BuyBuffer[bar]=0.0; SellBuffer[bar]=0.0; if(UpBuffer[bar+1]&&DnBuffer[bar]) BuyBuffer [bar]=DnBuffer[bar]; if(DnBuffer[bar+1]&&UpBuffer[bar]) SellBuffer[bar]=UpBuffer[bar]; } //---- return(rates_total); } //+------------------------------------------------------------------+