Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1270

Добавлено: BugsDigger » 04 май 2021, 15:52

Тема: Счетчик тренда

Текст сообщения:

Счетчик тренда смотрит, в какую сторону текущее значение отклонилось от базового значения (Interval баров назад) или от уровня последнего изменения счетчика (Ext).

Если отклонение превышает порог шума (Zero), то счетчик инкрементируется при продолжении тренда и меняет знак, если тренд сменил направление.

Если отклонение в пределах шума, то значение счетчика уменьшается (но без смены знака тренда), если это (маленькое) изменение противоречит текущему тренду.

Код: Выделить всё

function Initialize()
{
 IndicatorName = "TrendCnt";
 PriceStudy = false;
 AddInput("Input", Inputs.Price);
 AddSeries("TrendCnt", DrawAs.Line, Color.Black, AxisType.ZeroBased);   
 AddLevel(0, Color.Black, "TrendCnt");

 AddParameter("Interval", 2, "Интервал рассчета");               
 AddParameter("Zero", 0.0, "Точность нуля");               
 
 AddGlobalVariable("Ext", Types.Double, 0.0);
}

function Evaluate()
{
 int ci=(int)CurrentIndex;
 if(ci==0) Ext=Input[0];

 int h=Math.Min(ci, (int)Interval);
 double i0=Input[0];
 double i1=Input[-h];
 double d=i0-i1;
 
 double z=(double)Zero;
 if(Math.Abs(d)<=z) d=i0-Ext;

 int p=(ci==0 ? 0 : (int)TrendCnt[-1]);
 if(d> z) { p=(p<=0 ?  1 : p+1); Ext=i1; } else
 if(d<-z) { p=(p>=0 ? -1 : p-1); Ext=i1; }
 else // d~0
 {
  if(d<0.0 && p> 1) p-=1; else // отмотать счетчик только при "-0"
  if(d>0.0 && p<-1) p+=1;      // отмотать счетчик только при "+0"
                               // оставить прежним при точном "0"   
 }
 TrendCnt=p;
}

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

Применять можно не только (или даже не столько) к ценам, но и к другим индикаторам (например, к разности бегущих средних в индикаторах вроде Awersome).

Безымянный.png