Обсуждение статьи "Кластерный анализ (Часть I): Использование наклона индикаторных линий"

 

Опубликована статья Кластерный анализ (часть I): Использование наклона индикаторных линий:

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

Я использую индикатор HalfTrend от MetaQuotes (приложен к статье). Он часто находится во флэте:

HalfTrend EURUSD M15 во флэте


Возникает вопрос, есть ли какие-то пороговые значения, указывающие на флэт и тренд (не важно, бычий или медвежий). Понятно, что если линия индикатора расположена горизонтально, то рынок флэтовый. Но до какой высоты наклона изменения остаются незначительными и рынок по-прежнему считается флэтовым, и с какой высоты можно говорить о тренде? Представим, что советник видит только одно число, в котором сосредоточена вся картина графика, но не общая картина, как мы видим на скриншоте выше. Эта проблема решается с помощью кластерного анализа. Но прежде чем перейти к нему, сначала рассмотрим изменения, внесенные в индикатор.

Автор: Carl Schreiber

 

Спасибо за статью и файлы, Карл.

Не могли бы вы еще раз проверить файл MQ5, поскольку при попытке компиляции возникают многочисленные ошибки.

 
EricForex:

Спасибо за статью и файлы Карл.

Не могли бы вы еще раз проверить файл MQ5, поскольку при попытке компиляции возникают многочисленные ошибки.

Здесь он компилируется без проблем.

Пожалуйста, покажите, почему и на что жалуется компилятор.

 
Carl Schreiber:

Здесь он компилируется без проблем.

Пожалуйста, покажите, почему и на что жалуется компилятор.


Спасибо, Карл. Проблема была на моей стороне, я обновил MT5 и теперь все в порядке.

 

Привет, Карл,


Мне очень интересна ваша работа. Я рассматривал подход к анализу наклонов индикатора, но этот кажется намного лучше, поэтому я буду внимательно следить за вашими статьями.

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

С нетерпением жду вашей следующей статьи.

 
CapeCoddah:

Привет, Карл,


Мне очень интересна ваша работа. Я рассматривал подход к анализу наклонов индикатора, но этот кажется намного лучше, поэтому я буду внимательно следить за вашими статьями.

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

С нетерпением жду вашей следующей статьи.

?

Разве вы не видели заголовок:

GBPUSD PERIOD_D1 HalfTrd 2          ID                Cluster      Num. (tot  %)          µ   (mult*µ)            σ (Range %)           min -          max

, за которым следуют строки с цифрами:

GBPUSD PERIOD_D1 HalfTrd 2      100100      learn 100% all[9]      7266 (100.0%)      217.6   (1.00*µ)       1800.0   (1.21%)           0.0 -     148850.0
 
Наверное статьи модерацию не проходят.
Перевод низкого качества.
 
input uint Amplitude=10;
uint CorrelationDefination, CorrelationDefination2;
int OnInit()
  {
//---
    CorrelationDefination=iCustom(NULL,Period(),"half-trend-analysingTrend",10,false,false,false,false,false,false,false,1,PRICE_CLOSE);
    CorrelationDefination2=iCustom(NULL,Period(),"half-trend-analysingTrend",10,false,false,false,false,false,false,false,1,PRICE_CLOSE);
//-
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Функция деинициализации эксперта|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Функция экспертного тика|
//+------------------------------------------------------------------+
void OnTick()
  {
//--- 
   double short_period[];
   double long_period[];
   ArraySetAsSeries(short_period,true);
   ArraySetAsSeries(long_period,true);
   CopyBuffer(CorrelationDefination,1,0,3,short_period);
   CopyBuffer(CorrelationDefination2,1,0,3,long_period);
   double shortValue0=short_period[0];
   double longValue0=long_period[0];
   double shortValue1=short_period[1];
   double longValue1=long_period[1];
   Comment("shortValue0: ",shortValue0," shortValue1 ",shortValue1,"\n",
           "longValue0: ",longValue0," longValue1 ",longValue1);
  }

Привет Карл, я не могу вспомнить его как кастомный индикатор, я прилагаю код. Работает только с баффером DOWN (shortValue)

 
SergioTForex:

Привет Карл, я не могу вспомнить это как кастомный индикатор, я прилагаю код. Работает только с баффером DOWN (shortValue)

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

Можете ли вы запустить его на графике?

 
Это часть советника, которая записывает значения индикатора. в визуальном режиме он считывает только красные (короткие) значения, но не записывает длинные значения, см. прикрепленные изображения
Файлы:
value_long.jpg  348 kb
value_short.jpg  364 kb
 
SergioTForex:
это часть советника, которая записывает значения индикатора. в визуальном режиме он считывает только красные (короткие) значения, но не записывает длинные, см. прикрепленные изображения
Если бы вы внимательно посмотрели на индикатор, то поняли бы, что все время только один из UP и DN имеет действительные значения, а другой установлен в 0. Посмотрите в OnInit индикатора.