Индикаторы тренда для советников. - страница 5

 
Petros Shatakhtsyan:

Самый лучший и самый быстрый и точный индикатор, это наш мозг, который мгновенно обрабатывает визуальные графики.

Тот, который не умеет руками торговать, он никогда не сможет разработать прибыльного советника.

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

В форексе таки вещи не проходят. Он не предсказуем, как футбольная игра.

Мозги да. Они реально круче компа, но хотелось бы на этой ветке обсудить трендовые индюки, а не мозги. 

А так согласен. Ручками научился торговать и сумел свой  подход алгоритмировать - написал прибыльную сову (один из путей).  

 
Aleksey Ivanov:

Мозги да. Они реально круче компа, но хотелось бы на этой ветке обсудить трендовые индюки, а не мозги. 

А так согласен. Ручками научился торговать и сумел свой  подход алгоритмировать - написал прибыльную сову (один из путей).  

Вам же ответил уже, никакой индикатор неспособен определить текущий тренд. А прошедший никому не нужен.

 
Alexey Volchanskiy:

Вешаете его по безубытку и будет счастье. Как правильно заметил Petros, начало и конец определить невозможно.

Тогда попробуйте прорыв канала, это хоть что-то дает.

Да это я хорошо понимаю. Хотелось бы мнения  по трендовым индюкам здесь позитивное услышать, а оно пока негативное (может в этом, правда, и есть истина).
 
Aleksey Ivanov:

Господа!  На просторах интернета  можно найти тысячи индикаторов, что используются для  идентификации тренда.

           Вопрос  у меня к активным разработчикам  советников, что  изучили  эту проблему на  практике:  «Какие  индикаторы, действительно, на Ваш взгляд,  перспективно  использовать в советниках для уверенного  определения начала тренда

            Для советников желательно, на мой взгляд,  обсуждать  (на предмет достоинств и недостатков) индикаторы со шкалами, допустим, сила тренда  изменяется от –1  до  1.  

Сложность идентификации тренда в том, что граница между флэтом и трендом - это предмет нечёткой логики.

Частично этот вопрос рассмотрен в статье "Как снизить риски трейдера" https://www.mql5.com/ru/articles/4233

Как снизить риски трейдера
Как снизить риски трейдера
  • www.mql5.com
В первую очередь, эта статья пригодится начинающим трейдерам и аналитикам, которые работают над созданием собственной торговой системы. Надеюсь, что многие вопросы будут интересны и опытным участникам рынка. Это, например, классификация видов риска, использование свечного анализа для определения зон перекупленности/перепроданности, взаимосвязь...
 
Petros Shatakhtsyan:

Самый лучший и самый быстрый и точный индикатор, это наш мозг, который мгновенно обрабатывает визуальные графики.

Тот, который не умеет руками торговать, он никогда не сможет разработать прибыльного советника.

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

В форексе таки вещи не проходят. Он не предсказуем, как футбольная игра.

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

 
Aleksey Ivanov:
Да это я хорошо понимаю. Хотелось бы мнения  по трендовым индюкам здесь позитивное услышать, а оно пока негативное (может в этом, правда, и есть истина).

Позитив так позитив....

Индикатор тренда линия?

Торгуйте, вот он (допустим правильный):

Сколько раз для советника сигнал менялся?

 
Petros Shatakhtsyan:

Вам же ответил уже, никакой индикатор неспособен определить текущий тренд. А прошедший никому не нужен.

Ваше мнение я понял. Спасибо. Хотелось бы и иные мнения услышать.

 
Aleksandr Masterskikh:

Сложность идентификации тренда в том, что граница между флэтом и трендом - это предмет нечёткой логики.

Частично этот вопрос рассмотрен в статье "Как снизить риски трейдера" https://www.mql5.com/ru/articles/4233

Спасибо. Статью попробую изучить. А есть выжимки из Вашего  аппарата в виде индюка? 
 
Aleksey Ivanov:
Вот - по делу. Одного индюкана  уже сочинили. Сварить его (написать код) - дело пяти мин. Давайте и дальше по сути.
//+------------------------------------------------------------------+
//|                                                      MAScale.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property description "Scale of moving average"
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   1
//--- plot MASC
#property indicator_label1  "MASC"
#property indicator_type1   DRAW_COLOR_HISTOGRAM
#property indicator_color1  clrRoyalBlue,clrOrangeRed,clrDarkGray
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- input parameters
input uint                 InpPeriod         =  14;            // Period
input ENUM_APPLIED_PRICE   InpAppliedPrice   =  PRICE_CLOSE;   // MA Applied price
input ENUM_MA_METHOD       InpMethod         =  MODE_EMA;      // MA method
input ENUM_APPLIED_PRICE   InpByPrice        =  PRICE_CLOSE;   // Distance from:
//--- indicator buffers
double         BufferMASC[];
double         BufferColors[];
double         BufferMA[];
double         BufferMA1[];
double         BufferATR[];
//--- global variables
int            period;
int            handle_ma;
int            handle_ma1;
int            handle_atr;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- set global variables
   period=int(InpPeriod<1 ? 1 : InpPeriod);
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferMASC,INDICATOR_DATA);
   SetIndexBuffer(1,BufferColors,INDICATOR_COLOR_INDEX);
   SetIndexBuffer(2,BufferATR,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,BufferMA1,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,BufferMA,INDICATOR_CALCULATIONS);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,"Scale of moving average ("+(string)period+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(BufferMASC,true);
   ArraySetAsSeries(BufferColors,true);
   ArraySetAsSeries(BufferATR,true);
   ArraySetAsSeries(BufferMA1,true);
   ArraySetAsSeries(BufferMA,true);
//--- create MA's handles
   ResetLastError();
   handle_ma1=iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,InpByPrice);
   if(handle_ma1==INVALID_HANDLE)
     {
      Print("The iMA(1) by ",EnumToString(InpByPrice)," object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_ma=iMA(NULL,PERIOD_CURRENT,period,0,InpMethod,InpAppliedPrice);
   if(handle_ma==INVALID_HANDLE)
     {
      Print("The iMA(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_atr=iATR(NULL,PERIOD_CURRENT,period);
   if(handle_atr==INVALID_HANDLE)
     {
      Print("The iATR(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- Проверка и расчёт количества просчитываемых баров
   if(rates_total<fmax(period,4)) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferMASC,EMPTY_VALUE);
      ArrayInitialize(BufferATR,0);
      ArrayInitialize(BufferMA,0);
     }
//--- Подготовка данных
   int count=(limit>1 ? rates_total : 1),copied=0;
   copied=CopyBuffer(handle_ma,0,0,count,BufferMA);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_ma1,0,0,count,BufferMA1);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_atr,0,0,count,BufferATR);
   if(copied!=count) return 0;

//--- Расчёт индикатора
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      BufferMASC[i]=(BufferATR[i]!=0 ? (BufferMA1[i]-BufferMA[i])/BufferATR[i] : 0);
      BufferColors[i]=(BufferMASC[i]>BufferMASC[i+1] ? 0 : BufferMASC[i]<BufferMASC[i+1] ? 1 : 2);
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Aleksey Ivanov:

Господа!  На просторах интернета  можно найти тысячи индикаторов, что используются для  идентификации тренда.

           Вопрос  у меня к активным разработчикам  советников, что  изучили  эту проблему на  практике:  «Какие  индикаторы, действительно, на Ваш взгляд,  перспективно  использовать в советниках для уверенного  определения начала тренда

            Для советников желательно, на мой взгляд,  обсуждать  (на предмет достоинств и недостатков) индикаторы со шкалами, допустим, сила тренда  изменяется от –1  до  1.  

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

Причина обращения: