Ищем закономерности - страница 185

 
Serqey Nikitin:
Прежде чем возражать, желательно ЭТО посмотреть и оценить...

Си Час.

[Удален]  
Serqey Nikitin:
Прежде чем возражать, желательно ЭТО посмотреть и оценить...
Зачем, проще лепить годами, все что в голову взбредёт и норм
 

А кому то тут и лепить нечем. Пустота в башке.

Остается только огрызаться на всех

 
Алексей Тарабанов:

Итак, начинаем разговор о тренде. Тренд - тенденция изменения цены. В отличие от флета - однонаправленная. Так вот, начать, думаю, стоит с того что тренда не существует, рынок всегда имеет колебательный характер. 

Тогда о чём говорим? Говорим об участках однонаправленного движения на колебательном графике. Если график - синусоида (мечта радиста), то однонаправленным движение будет ровно в течение одного полупериода. Период измеряется временем. Опять время, опять iPulsar? Да, именно так. 

Когда я задаю вопрос: какой тренд (куда идём), то сначала я должен ответить на вопрос: на каком горизонте? Тренды бывают часовые, дневные, недельные, годовые; всякие (не путать с таймфреймами, которые тоже всякие бывают). Кстати, о таймфреймах: легко определить годовой тренд на минутках, но невозможно определить дневной тренд на неделях. Котельников доказал. 

Вывод: сначала я определяю интервал торговли (интрадей, неделя, ...). После ловлю тренд на этом интервале, ну а уже потом оттопыриваюсь. Пока всё. 

Я очень рад, что проклюнулась дискуссия. Рад участию в ней как тех, кто со мною согласен, так и тех, кто не согласен. Давайте, попытаемся продолжить. 

Зимой 95/96 года меня впервые знакомили в Forex. Я отказался участвовать в сей афере, поскольку не понимал, какие у меня плюсы, чем я лучше других и что позволит мне сделать их деньги своими. 

Сегодня я делюсь тем, что понимаю. Тайну из этого делать бессмысленно,- даже если все участники этого и солидарных форумов ринутся торговать по одной очень хорошей системе, то рынок этого не почувствует. 

Вернёмся к трендам. 

Прежде, чем торговать по тренду, неплохо бы оценить: а стоит ли оно того. Оценить поможет зигзаг. Давайте попробуем построить зигзаг для месячного, недельного, суточного тренда. Именно для тренда, а не по неким техническим параметрам. Для этого используем тот же кривой фрактал - слева 119 баров, а справа - 1. 119 потому, что в неделе 120 часов, а зарплату трейдерам платят раз в неделю. Вот результат: 


Это был недельный тренд и фото моей внучки, которое я так и не сумел удалить. Случайно добавил. Другие тренды пробуйте сами, я на пару дней слиняю. 

Вот код: 

/*    Soft Fractals ZigZag Indicator - индикатор строит зигзаг по фракталам 

   с произвольными размерами правого и левого крыльев. */

#property strict
#property copyright "Copyright 2012, Тарабанов А.В."
#property link      "alextar@bk.ru"
#property indicator_chart_window                   // Индикатор в главном окне
// Индикаторные буферы
#property indicator_buffers 4
#property indicator_width1 2                       // Толщина зигзага
#property indicator_color1 Blue                    // Цвет зигзага
#property indicator_color3 Green                   // Нижние вершины
#property indicator_width3 1
#property indicator_color4 Red                     // Верхние вершины
#property indicator_width4 1
double Min[]   , Max[],                            // Изломы зигзага
       Bottom[], Top[];                            // Вершины
// Константы
#define Version "iSFZZ"                            // Версия
#define Zero    0.00000001                         // Точность определения нуля
// Глобальные переменные
double      LastBottom , LastTop;                  // Предыдущие значения
int         iLastBottom, iLastTop;                 //    и их бары
datetime    tLastBottom, tLastTop;                 // Время предыдущих значений
bool        LastIsTop  , LastIsBottom;             // Предыдущий пик/впадина
extern bool ОтображатьВершины   =true;
extern int  БаровЛевееВершины   =119,
            БаровПравееВершины  =1,
            СимволНижнейВершины =161,
            СимволВерхнейВершины=161;
//+------------------------------------------------------------------+
int init(){
   int DrawFractals=DRAW_NONE;
   if( ОтображатьВершины ) DrawFractals=DRAW_ARROW;
   // Атрибуты буферов
   SetIndexLabel(0,"Max");
   SetIndexBuffer(0,Max);
   SetIndexStyle(0,DRAW_ZIGZAG);
   SetIndexEmptyValue(0,0);
   SetIndexLabel(1,"Min");
   SetIndexBuffer(1,Min);
   SetIndexStyle(1,DRAW_ZIGZAG);
   SetIndexEmptyValue(1,0);
   SetIndexLabel(2,"Bottom");
   SetIndexBuffer(2,Bottom);
   SetIndexStyle(2,DrawFractals);
   SetIndexArrow(2,СимволНижнейВершины);
   SetIndexEmptyValue(2,0);
   SetIndexLabel(3,"Top");
   SetIndexBuffer(3,Top);
   SetIndexStyle(3,DrawFractals);
   SetIndexArrow(3,СимволВерхнейВершины);
   SetIndexEmptyValue(3,0);
   if( БаровЛевееВершины <1 ) БаровЛевееВершины=1; // Контроль значений
   if( БаровПравееВершины <1 ) БаровПравееВершины=1;
   LastBottom  =0;                                 // Инициализация
   LastTop     =0;
   iLastBottom =0;
   iLastTop    =0;
   tLastBottom =0;
   tLastTop    =0;
   LastIsTop   =false;
   LastIsBottom=false;
   return(0);
}
//+------------------------------------------------------------------+
int start(){
   int i, History=Bars-1, BarsLost=History-IndicatorCounted();
   if( BarsLost<History ){
      if( BarsLost<1 ) return(0);                  // Не повторять на том-же баре
      i=BarsLost+БаровПравееВершины;               // Число баров пересчета
   }
   else i=History-БаровЛевееВершины;               // Просмотр на всей истории
   double C[];
   int dim=ArrayResize(C,БаровЛевееВершины+1+БаровПравееВершины), j;
   if( tLastTop>0 ) iLastTop=iBarShift(NULL,0,tLastTop);
   if( tLastBottom>0 ) iLastBottom=iBarShift(NULL,0,tLastBottom);
   while( i>БаровПравееВершины ){                  // Перебор слева направо
      j=0;                                         // Поиск нижнего фрактала
      Bottom[i]=0;
      while( j < dim ){
         C[j]=Low[j+i-БаровПравееВершины];
         j++;
      }
      if( C[БаровПравееВершины+1]-C[БаровПравееВершины]>-Zero
       && C[БаровПравееВершины-1]-C[БаровПравееВершины]>-Zero ){
         Bottom[i]=C[БаровПравееВершины];          // Локальный минимум
         j=1;
         while ( j < dim ){
            if( ( j<БаровПравееВершины && Bottom[i]-C[j-1]>Zero )
             || ( j>БаровПравееВершины && Bottom[i]-C[j]  >Zero ) ) {
               Bottom[i]=0;                        // Нет фрактала
               break;
            }
            j++;
      }  }
      j=0;             // Поиск верхнего фрактала
      Top[i]=0;
      while( j<dim ){
         C[j]=High[j+i-БаровПравееВершины];
         j++;
      }
      if( C[БаровПравееВершины]-C[БаровПравееВершины+1]>-Zero
       && C[БаровПравееВершины]-C[БаровПравееВершины-1]>-Zero ){
         Top[i]=C[БаровПравееВершины];             // Локальный максимум
         j=1;
         while ( j < dim ){
            if( ( j<БаровПравееВершины && C[j-1]-Top[i]>Zero )
             || ( j>БаровПравееВершины && C[j]  -Top[i]>Zero ) ) {
               Top[i]=0;                           // Нет фрактала
               break;
            }
            j++;
      }  }
      if( Top[i]>Zero ){                           // Выбор вершины зигзага
         if( Bottom[i]>Zero ){                     // Top и Bottom
            if( LastIsTop || LastIsBottom ){       // Не начало зигзага
               Min[i]     =Bottom[i];              // Вертикальное колено
               Max[i]     =Top[i];
               LastBottom =Bottom[i];              // Запомнить Top и Bottom
               iLastBottom=i;
               LastTop    =Top[i];
               iLastTop   =i;
         }  }
         else{                                     // Top
            if( !LastIsTop ){                      // LastIsBottom, или
               Max[i]      =Top[i];                //    начало зигзага
               LastIsTop   =true;
               LastIsBottom=false; 
               LastTop     =Top[i];                // Запомнить Top
               iLastTop    =i;
            }
            else{                                  // LastIsTop
               if( Top[i]-LastTop>-Zero ){         // Перерисовка
                  Max[iLastTop]=0;
                  Max[i]       =Top[i];
                  LastTop      =Top[i];            // Запомнить Top
                  iLastTop     =i;
      }  }  }  }
      else{
         if( Bottom[i]>Zero ){                     // Bottom
            if( !LastIsBottom ){                   // LastIsTop, или
               Min[i]      =Bottom[i];             //    начало зигзага
               LastIsTop   =false;
               LastIsBottom=true; 
               LastBottom  =Bottom[i];             // Запомнить Bottom
               iLastBottom =i;
            }
            else{                                  // LastIsBottom
               if( LastBottom-Bottom[i]>-Zero ){   // Перерисовка
                  Min[iLastBottom]=0;
                  Min[i]          =Bottom[i];
                  LastBottom      =Bottom[i];      // Запомнить Bottom
                  iLastBottom     =i;
      }   }  }  }
      i--;
   }
   if( iLastTop>0 ) tLastTop=Time[iLastTop];       // Время крайних изломов
   if( iLastBottom>0 ) tLastBottom=Time[iLastBottom];
   return(0);
}

 
Алексей Тарабанов:

Прежде, чем торговать по тренду, неплохо бы оценить: а стоит ли оно того. Оценить поможет зигзаг. Давайте попробуем построить зигзаг для месячного, недельного, суточного тренда. Именно для тренда, а не по неким техническим параметрам. Для этого используем тот же кривой фрактал - слева 119 баров, а справа - 1. 119 потому, что в неделе 120 часов, а зарплату трейдерам платят раз в неделю. Вот результат: 

По поводу неправильно вставленного кода сейчас будет ругаться модератор.

По поводу функционала, принцип и формула расчёта фракталa и зигзагa это рисование уже по свершившемуся событию и никак не помогает в определении направления тренда, если речь вообще об этом :) Или опять чего то намудрили?

 
VVT:

По поводу неправильно вставленного когда сейчас будет ругаться модератор.

По поводу функционала, принцип и формула расчёта фракталa и зигзагa это рисование уже по свершившемуся событию и никак не помогает в определении направлении тренда, если речь вообще об этом :) Или опять чего то намудрили?

Просто, опять - всему своё время. Поупражняйтесь с зигзагом, поймите его размерность. Если получится - станем на этом деньги зарабатывать. ) 

 
Алексей Тарабанов:

Просто, опять - всему своё время. Поупражняйтесь с зигзагом, поймите его размерность. Если получится - станем на этом деньги зарабатывать. ) 

Пробовал, не помогает зарабатывать, поэтому то и говорю

 
VVT:

Пробовал, не помогает зарабатывать, поэтому то и говорю

Дык, Вы с этим зигзагом попробуйте на истории. Он - совсем другой. 

 
Алексей Тарабанов:

Дык, Вы с этим зигзагом попробуйте на истории. Он - совсем другой. 

На истории всё очень красиво, проблемы начинаются когда начинаешь торговать на реале

 
VVT:

На истории всё очень красиво, проблемы начинаются когда начинаешь торговать на реале

Мы пока не торгуем.