Помогите запрограммировать канал

 

Пытаюсь примерно так:

for(int k=1; k<=Count; k++)
 
 { 
 if(MathAbs(NormalizeDouble((iClose(NULL,0,k)-iOpen(NULL,0,k)),Digits))<15)
 {
 Canal=Canal+1;

 }
 else
 Canal=0;
 } 
 
ну и ? наберет пеерменная Canal к примеру 5. или 50 за 100 свечей. И что это значит ? 
 

Условие

if(MathAbs(NormalizeDouble((iClose(NULL,0,k)-iOpen(NULL,0,k)),Digits))<15)

 будет выполняться практически всегда (разность между открытием и закрытием свечи более 15 возможна только на финансовых инструментах, где пункт равен 1 и более). Если под "15" имеется в виду "пунктов", то условие нужно переписать хотя бы так:

if(MathAbs(NormalizeDouble((iClose(NULL,0,k)-iOpen(NULL,0,k)),Digits))<15 * _Point)

 А далее требуется более подробная постановка задачи.

 
Scriptong:

Условие

 будет выполняться практически всегда (разность между открытием и закрытием свечи более 15 возможна только на финансовых инструментах, где пункт равен 1 и более). Если под "15" имеется в виду "пунктов", то условие нужно переписать хотя бы так:

 А далее требуется более подробная постановка задачи.

Да, конечно изменение в пунктах

А идея простая - если  3-5 баров цена изменялась в диапазоне 0-15 пунктов, то такой отрезок считать каналом и выставлять отложенные ордера на некотором расстоянии от канала, которые срабатывают при пробитии 

 
Dynamiteman:

Да, конечно изменение в пунктах

А идея простая - если  3-5 баров цена изменялась в диапазоне 0-15 пунктов, то такой отрезок считать каналом и выставлять отложенные ордера на некотором расстоянии от канала, которые срабатывают при пробитии 

А что мешает этим свечкам медленно ползти вверх ? Канал тогда будет наклонный. 

Сам давно и активно торгую в канале, но только на отбой. Можно сказать, что на каналах собаку съел.  

 
dimeon:

А что мешает этим свечкам медленно ползти вверх ? Канал тогда будет наклонный. 

Сам давно и активно торгую в канале, но только на отбой. Можно сказать, что на каналах собаку съел.  

Да ничего страшного, пусть ползет, канал считается условно прямым
 
Dynamiteman:
Да ничего страшного, пусть ползет, канал считается условно прямым 

Если торговать на пробой, то тогда нет смысла отсчитывать канал, как таковой. Возьмите уровень какой нравится и от него рассчитывайте! 

Для меня канал - это ценовой диапазон в который упирается цена с разных сторон. Пробитие канала можно и переиначить. Назначить ширину за количетсво баров и если цена превысила за расчетное количество баров, то пробой состоялся ! 

 
Dynamiteman:

Да, конечно изменение в пунктах

А идея простая - если  3-5 баров цена изменялась в диапазоне 0-15 пунктов, то такой отрезок считать каналом и выставлять отложенные ордера на некотором расстоянии от канала, которые срабатывают при пробитии 

Тогда Вам просто нужно модифицировать индикатор Price Channel. То есть изначально ищете максимум и минимум среди заданного количества баров. Затем измеряете высоту канала. Если она удовлетворяет заданной высоте - фиксируете канал.