Corridor BARs MT5
- Индикаторы
- Konstantin Nikitin
- Версия: 1.0
- Активации: 5
Индикатор показывает верхнюю, среднюю и нижнюю границы цены за определенный промежуток времени.
Также показываются две скользящие средние, аналогичные индикатору Moving Averages.
Параметры
- CTType: по чему строим коридор. _Hour: часы, _Day: дни, _Bars: бары
- CTPrice: тип цены, по барам. OpenClose: открытия/закрытия, HighLow: максимальные/минимальные
- CTShift: сдвиг коридора
- CTNum: сколько учитывать для построения коридора, мин. 2
- CTPeriodFast: период Fast, мин. 2
- CTShiftFast: сдвиг средней Fast
- CTMethodFast: метод усреднения Fast
- CTPeriodSlow: период Slow, мин. 2
- CTShiftSlow: сдвиг средней Slow
- CTMethodSlow: метод усреднения Slow
Буфер обмена
- 0: Коридор верх
- 1: Коридор низ
- 2: Коридор средняя
- 3: Скользящая быстрая
- 4: Скользящая медленная
Полностью автономен. Не требует наличия дополнительных индикаторов.
Пример вызова индикатора:
input int CTType = 2, // 0 часы, 1 дни, 2 бары CTPrice = 0, // 0 Open/Close, 1 High/Low CTNum = 50, CTPeriodFast = 9, CTShiftFast = 0; input ENUM_MA_METHOD CTMethodFast = MODE_SMA; input int CTPeriodSlow = 15, CTShiftSlow = 0; input ENUM_MA_METHOD CTMethodSlow = MODE_SMA; int handle; struct SBuffers { double array[]; } Buffers[5]; void OnInit() { handle = iCustom(_Symbol, 0, "CorridorTrade", CTType, CTPrice, 0, CTNum, CTPeriodFast, 0, CTMethodFast, CTPeriodSlow, 0, CTMethodSlow); if(handle==INVALID_HANDLE) ExpertRemove(); for(int i=0; i<5; i++) ArraySetAsSeries(Buffers[i].array, true); } void OnTick() { for(int i=0; i<5; i++) { ArrayFree(Buffers[i].array); if( CopyBuffer(handle, i, 0, 1, Buffers[i].array) != 1 ) return; } Comment( "Top: ", DoubleToString(Buffers[0].array[0], _Digits), "\n", "Bottom: ", DoubleToString(Buffers[1].array[0], _Digits), "\n", "Medium: ", DoubleToString(Buffers[2].array[0], _Digits), "\n", "Fast: ", DoubleToString(Buffers[3].array[0], _Digits), "\n", "Slow: ", DoubleToString(Buffers[4].array[0], _Digits) ); }