Alligator Indicator For MT5
Table Of Contents:
- Alligator Indicator For MT5
- Alligator Indicator For MT5 installeren
- Parameters van het Alligator Indicator For MT5
- Buffers van het Alligator Indicator For MT5
- Hoofddelen van de code
De Alligator Indicator For MT5 is gebaseerd op het bekende handelssysteem ontwikkeld door Bill Williams. De indicator tekent 3 eenvoudige voortschrijdende gemiddelden met verschillende perioden en kleuren. Het blauwe voortschrijdend gemiddelde heeft de periode 13 en wordt de kaak van de alligator genoemd. De rode lijn heeft de periode 8 en wordt de tanden van de alligator genoemd. De groene lijn heeft de periode 5 en wordt de lippen van de alligator genoemd. U kunt de indicator gebruiken om gevestigde trends aan te gaan. De ervaren handelaar kan ook trendomkeringen zien op basis van de positie van de lijnen.
Alligator Indicator For MT5 installeren
Nadat u de indicator via het bovenstaande formulier heeft gedownload, moet u het zip-bestand uitpakken. Vervolgens moet u het bestand alligator.mq5 naar de map MQL5Indicators van uw MT5 installatie kopiëren. Start daarna MT5 opnieuw op en dan kunt u de indicator zien in de lijst met indicatoren.
Parameters van het Alligator Indicator For MT5
Het Alligator Indicator For MT5 moet de parameters 8 configureren.
input int InpJawsPeriod=13; // Jaws period input int InpJawsShift=8; // Jaws shift input int InpTeethPeriod=8; // Teeth period input int InpTeethShift=5; // Teeth shift input int InpLipsPeriod=5; // Lips period input int InpLipsShift=3; // Lips shift input ENUM_MA_METHOD InpMAMethod=MODE_SMMA; // Moving average method input ENUM_APPLIED_PRICE InpAppliedPrice=PRICE_MEDIAN; // Applied price
Buffers van het Alligator Indicator For MT5
Het Alligator Indicator For MT5 biedt 3 buffers.
SetIndexBuffer(0,ExtJaws,INDICATOR_DATA); SetIndexBuffer(1,ExtTeeth,INDICATOR_DATA); SetIndexBuffer(2,ExtLips,INDICATOR_DATA);
Hoofddelen van de code
//| Alligator OnCalculate function | //+------------------------------------------------------------------+ 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 &TickVolume[], const long &Volume[], const int &Spread[]) { //--- check for rates total if(rates_total lt ExtBarsMinimum) return(0); // not enough bars for calculation //--- not all data may be calculated int calculated=BarsCalculated(ExtJawsHandle); if(calculated lt rates_total) { Print("Not all data of ExtJawsHandle is calculated (",calculated,"bars ). Error",GetLastError()); return(0); } calculated=BarsCalculated(ExtTeethHandle); if(calculated lt rates_total) { Print("Not all data of ExtTeethHandle is calculated (",calculated,"bars ). Error",GetLastError()); return(0); } calculated=BarsCalculated(ExtLipsHandle); if(calculated lt rates_total) { Print("Not all data of ExtLipsHandle is calculated (",calculated,"bars ). Error",GetLastError()); return(0); } //--- we can copy not all data int to_copy; if(prev_calculated gt rates_total || prev_calculated lt 0) to_copy=rates_total; else { to_copy=rates_total-prev_calculated; if(prev_calculated gt 0) to_copy++; } //---- get ma buffers if(IsStopped()) return(0); //Checking for stop flag if(CopyBuffer(ExtJawsHandle,0,0,to_copy,ExtJaws) lt =0) { Print("getting ExtJawsHandle is failed! Error",GetLastError()); return(0); } if(IsStopped()) return(0); //Checking for stop flag if(CopyBuffer(ExtTeethHandle,0,0,to_copy,ExtTeeth) lt =0) { Print("getting ExtTeethHandle is failed! Error",GetLastError()); return(0); } if(IsStopped()) return(0); //Checking for stop flag if(CopyBuffer(ExtLipsHandle,0,0,to_copy,ExtLips) lt =0) { Print("getting ExtLipsHandle is failed! Error",GetLastError()); return(0); } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+