Alligator Indicator For MT5
Table Of Contents:
- Alligator Indicator For MT5
- Установка Alligator Indicator For MT5
- Параметры Alligator Indicator For MT5
- Буферы Alligator Indicator For MT5
- Основные части кодекса
Alligator Indicator For MT5 основан на хорошо известной торговой системе, разработанной Биллом Уильямсом. Индикатор рисует 3 простые скользящие средние с разными периодами и цветами. Синяя скользящая средняя имеет период 13 и называется челюстью аллигатора. Красная линия имеет период 8 и называется зубами аллигатора. Зеленая линия имеет период 5 и называется губами аллигатора. Вы можете использовать индикатор, чтобы войти в установленные тренды. Опытный трейдер также может видеть развороты тренда в зависимости от положения линий.
Установка Alligator Indicator For MT5
После того, как вы загрузили индикатор через форму выше, вам необходимо распаковать zip-файл. Затем вам нужно скопировать файл alligator.mq5 в папку MQL5Indicators вашей установки MT5 . После этого перезапустите MT5, и вы сможете увидеть индикатор в списке индикаторов.
Параметры Alligator Indicator For MT5
Alligator Indicator For MT5 имеет параметры 8 для настройки.
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
Буферы Alligator Indicator For MT5
Alligator Indicator For MT5 предоставляет буферы 3 .
SetIndexBuffer(0,ExtJaws,INDICATOR_DATA); SetIndexBuffer(1,ExtTeeth,INDICATOR_DATA); SetIndexBuffer(2,ExtLips,INDICATOR_DATA);
Основные части кодекса
//| 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); } //+------------------------------------------------------------------+