Страница 1 из 1

Счетчик тренда

Добавлено: 04 май 2021, 15:57
BugsDigger
Счетчик тренда смотрит, в какую сторону текущее значение отклонилось от базового значения (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

Re: Счетчик тренда

Добавлено: 06 май 2021, 19:08
m4Dmitry
CandleAvg - это что за зверь ?)

Re: Счетчик тренда

Добавлено: 07 май 2021, 08:30
BugsDigger
Ааа, это мой простой индикатор - (High+Low)/2 для каждого бара.

Re: Счетчик тренда

Добавлено: 07 май 2021, 10:49
BugsDigger
Еще пример, чисто смена знака счетчика тренда. Источник данных счетчика - медианное значение (в окне 3 бара) от кривой накапливаемой от начала дня разницы между Ask и Bid (в процентах).
Безымянный 2.png


DeltaDay: соотношение ask/bid в течение дня
viewtopic.php?t=961#p5387
Медиана
viewtopic.php?t=638#p4141

Re: Счетчик тренда

Добавлено: 10 май 2021, 15:36
m4Dmitry
А в чем отличие между
- DeltaDay и DeltaDay2
- Median и pMedianps ?

Никак не удается повторить график TrendCnt (((
Нет таких плавных переходов....1000 скачков в каждую сторону (((

Re: Счетчик тренда

Добавлено: 10 май 2021, 19:56
BugsDigger
С двойкой и дополнительными буковками - это у меня на компе, для сайта я просто "причесал" текст.

У вас, видимо, какие-то не те параметры. Вот за сегодня:
Безымянный 3.png

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

Вообще, ход кривой спроса мне нравится, т.к. она, в отличие от многого (всего?) другого явно неслучайна в течение дня. Правда, сам еще именно эту идею не тестил серьезно, но прогностический потенциал (не следование с запозданием, а именно прогноз) тут явно есть.

Re: Счетчик тренда

Добавлено: 10 май 2021, 22:09
m4Dmitry
Да, все получилось, спасибо.

Посмотрел чуть большие ТФ....и получается полный алес....М15...Н1..Н4...
На таких не будет красоты?

Re: Счетчик тренда

Добавлено: 11 май 2021, 07:16
BugsDigger
Трудно сказать. В каждом случае нужно подбирать чувствительность (параметр Zero) и вообще оценивать применимость такого слежения за направлением тренда (ничего универсального на все случаи жизни нет).

Re: Счетчик тренда

Добавлено: 11 май 2021, 12:26
m4Dmitry
Согласен про универсальность :)