Repetitive patterns and other patterns - page 23

 
St.Vitaliy:

I was struggling with myself as well, I kept looking at different movements, which was so cool to earn money here.

But then I saw that I had earned my quarterly salary in two weeks and thought "fuck the moment".

You need to look at the account statements and add filters, signals, markets just to make the account grow better. Not because the movements are beautiful and I haven't tried to make money on them.

Is the TS automated?
 
Heroix:
Is the TS automated?
Yes, but the testing was done in excel, on diaries. 10 instruments, different periods.
 

EURUSD continues its descent inside the channel. The upper limit of the channel has been determined. Now going to the lower boundary. The target is 1.262.

 
gpwr:

EURUSD continues its descent inside the channel. The upper limit of the channel has been determined. Now going to the lower boundary. The target is 1.262.

Where's the stop?
 
St.Vitaliy:
Where is the stop?

Stop will not be needed this time :)

for the sake of the experiment - let it be at 1.2788 (current 1.2758)

 
It's a little short, add a figure up.
 
gpwr:

I'm curious too. I have reread your posts, but I don't understand much. What is the essence of the strategy? We build channels at different timeframes and different quotes, then we extrapolate the bounds into the future and obtain a lot of possible bounds on the current bar?

I have been struggling for a week with automatic zigzag channel construction. There is a lot of manual adjustments and exceptions. I decided to leave the zigzag and try to build channels by LWMA. Of all the wizards, LWMA gives the most straight segments. Here's an example:

Here is LWMA with period 150 shifted by 50 bars. By the way, does anyone know the group delay of LWMA? This filter should have a non-linear phase, but you could probably use a zero frequency delay. Before I start outputting, maybe someone already knows the answer. Was thinking of approximating the LWMA with straight segments, but the angle would have to be corrected and that's the catch. If you know where the beginning of each channel is (e.g. by curves of some smooth waveform), you can also use linear regression (the same LWMA) on segments of a given length, i.e. the LWMA period will adapt to the beginning of the current channel. Here is a comparison of LWMA (red) and a smooth waveform (blue):

Any other ideas?

There are ideas and there is an implementation. A couple of years ago someone (Sergeev, I think) started a thread on the Quartet forum called "Channel, what are you?". There I voiced this idea, and it has already been implemented. The essence is very simple:

1. A channel on its own has no meaning, it is interesting only as a child object of a trend, therefore it would be reasonable to chart it when the trend is detected.

2. First, we create the channel axis, then draw its borders. The beginning of the channel - the moment of the first touch by the price on its axis, and the end - the last (last) touch.

3. The channel is shown as a ray while the price is inside it, and as soon as the price leaves the channel, the channel is shown as a line.

Screenshot (real time, Eurodollar, clock):

The downtrend, is thickened at the moment of detection, the channel axis is parallel to the bottom with a long dotted line, and the borders are higher and lower with a short dotted line (the price is now testing the upper one).

 

Editing the post isn't working for some reason. :(

It's not the clock, it's the M30

 

In general, it's a very interesting thread, but there are already three topics in it:

1. Pattern recognition

2. Construction of channels

3. stock market instruments

I will not say anything about the third part (I would separate it in a separate branch), but there is an idea and a little realization of the first one.)

You can try to detect similar sections by their signatures, for example formed based on a simple indicator (in the trailer). I don't think I've seen any analogues.

/* iPulsar  Отображает количество периодов размером Scale(по умолчанию - дней), 
            на протяжении которых не были пробиты текущие значения High и Low. 
            Условно, характеризует "силу" тестируемых уровней.
            Использует фильтр уровня горизонта ретроспективы. При горизонте, 
            меньшем заданного числа периодов Scale, значение индикатора 
            не отображается.  */
#property   copyright "Copyright 2012, Тарабанов А.В."
#property   link      "alextar@bk.ru"
#property   indicator_separate_window  // Атрибуты индикатора
#property   indicator_buffers 2
#property   indicator_color1 Magenta   // Атрибуты буферов
#property   indicator_width1 2
#property   indicator_color2 Teal
#property   indicator_width2 2
#define     Version  "iPulsar_v1"      // Константы
#define     Zero     0.00000001
double         HP[],    LP[],          // Буферы
               Periods;                // Глобальные переменные
extern double  Filter      =0;         // Не отображать меньшие, чем ...
extern int     Scale       =1440,      // Размерность шкалы
               ScaleDigits =0;         // Точность отображаемых значений
//+------------------------------------------------------------------+
int init(){
   IndicatorShortName(Version);        // Атрибуты индикатора
   IndicatorDigits(ScaleDigits);
   SetIndexLabel(0,"High");            // Атрибуты буферов
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,HP);
   SetIndexEmptyValue(0,0);
   SetIndexLabel(1,"Low");
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,LP);
   SetIndexEmptyValue(1,0);
   if( Scale==0 ) Scale=Period();      // Контроль внешних переменных
   if( Scale<0  ) Scale=-Scale;
   if( ScaleDigits<0 ) ScaleDigits=-ScaleDigits;
   Periods=Scale/Period();             // Инициализация глобальных переменных
   return(0);
}
//+------------------------------------------------------------------+
int start(){
   double f=Filter*Periods, H, L, HB, LB;
   bool HD, LD;                        // Флаги обнаружения пробоев
   int i, k, History=Bars-1;
   int j=History-IndicatorCounted();   // Рассматриваемые бары
   while( j>=0 ){
      H=High[j];
      L=Low[j];
      HD=false;
      LD=false;
      HB=0;                            // Число баров до пробоя High
      LB=0;                            // Число баров до пробоя Low
      i=j;
      while( i<History ){              // Поиск пробоев
         if(  HD && LD ) break;        // Пробои найдены
         i++;
         k=i-j-1;                      // Текущая глубина поиска
         if( !HD && High[i]-H>Zero ){
            HD=true;                   // Пробой High
            if( k-f>-Zero ) HB=k;      // Фильтрация
         }
         if( !LD && L-Low[i]>Zero ){
            LD=true;                   // Пробой Low
            if( k-f>-Zero ) LB=k;      // Фильтрация
      }  }
      // Контроль обнаружения пробоев:
      if( !HD ) HB=History-j-2;
      if( !LD ) LB=History-j-2;
      // Приведение к заданной шкале и отображение:
      HP[j]= NormalizeDouble(HB/Periods,ScaleDigits);
      LP[j]=-NormalizeDouble(LB/Periods,ScaleDigits);
      j--;
   }
   return(0);
}
Построение каналов - взгляд изнутри и снаружи
Построение каналов - взгляд изнутри и снаружи
  • 2010.11.30
  • Dmitriy Skub
  • www.mql5.com
Наверное, не будет преувеличением сказать, что после скользящих средних каналы - самый популярный инструмент для анализа рыночной ситуации и принятия торговых решений. Не углубляясь во множество существующих стратегий использования каналов и их составных элементов, мы здесь рассмотрим математические основы и практическую реализацию индикатора, строящего канал, заданный тремя экстремумами на экране терминала.