Диалог автора. Александр Смирнов. - страница 5

 
Prival:

ASmirnoff 25.01.2008 11:08


Для меня важны ваши ответы на следующие вопросы: 1. Чей алгоритм лучше: мой или Джурика? Насколько лучше? 2. Есть ли у вас алгоритм Джурика? 3. Чем они отличаются?

Очень рад, что Вы появились на этом форуме. И хотел бы помочь в исследовании. К сожалению не могу утверждать, что вот тут ('Эффективные алгоритмы усреднения с минимальным лагом и их использование в индикаторах') это те «истинные» алгоритмы Джурика. Но думаю можно использовать и их, да и любой другой. Готов предложить для сравнения некоторые свои фильтры, но об этом ниже.


Мое предложение следующее. Если нам нужно сравнить 2 индикатора, и ответить на вопрос какой лучше. Первое необходимо определиться с критериями. Если их несколько, можно осуществить свертку. Главное не просто философское утверждение, что один индикатор лучше другого, а именно точное математическое доказательство этого. Плюс как вы точно задали вопрос на сколько лучше ?


Поэтому хотелось бы на первом этапе определиться со следующими понятиями (беру недостатки МА из вашей статьи)

  1. Временная задержка усреднения. Где в какой момент времени будем её считать и как ? Определиться что нужно интерполяция или экстраполяция ? Или будем проводить сравнение там и там ?
  2. Относительно высокая колеблемость … Далее в статье эффект Слуцкого-Юла это явление Гиббса или это что то другое ? (файл поясняющий явление Гиббса прилагаю). Если это что то принципиально другое, хотел бы почитать, у кого есть материал прошу поделиться.
  3. Раскройте пожалуйста понятие «влияние линейных частотных искажений».
  4. «Линеаризация нелинейных ценовых трендов путем выделения этих трендов с определенным смещением».

Что вы понимаете под трендом, пожалуйста формулу. Что вы понимаете под нелинейным ценовым трендом, то же желательно формулу + что относительно чего смещается и как, чем выделяется.


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


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

Можно синтезировать различные входные сигналы, допустим такие же, как использует Джурик для демонстрации превосходства своего индикатора. (http://www.jurikres.com/catalog/ms_ama.htm#top). Главное определиться какие.

На конечном этапе исследования готов выложить синтетику (искусственный ценовой ряд) который по своим параметрам АЧХ, ФЧХ и АКФ совпадает с ценовым рядом любой выбранной вами валюты на участке допустим неделя. Вот тут, что то подобное мы делали 'Теория случайных потоков и FOREX'. Сравнивали фильтр Калмана и Баттерворта.


Вы в статье говорите про АЧХ и ФЧХ какого то стационарного режима и какие то оригинальные критерии.

Если вам удалось добиться какого то установившегося режима плюс АЧХ и ФЧХ сигнала стационарна, готов приложить все свои знания ЦОС и синтезировать близкий к оптимальному цифровой фильтр. По Байесу думаю не получиться, т.к. нужна достаточная полнота априорных данных (что редко бывает), но по критерию максимального правдоподобия или идеального наблюдателя, думаю смогу сделать. Нужно только будет определиться, что является сигналом (хотябы в АЧХ) и что является шумом.

Вообще, мне даже не нужен сам алгоритм Джурика. Нужен отрезок ценового графика 50-100 баров и выходной продукт на выходе истинного алгоритма Джурика. Далее будут найдены оценки отсчетов импульсной характеристики и синтезирован сам искомый алгоритм.

 
Integer:
ASmirnoff:

...чьи статьи в "ВС" вызывают ваш огромный интерес


Это значит вы автор того самого "Кандидат в Коммандос", которым мы зачитывались находясь на службе в "ВС"?:-)

1. Чей алгоритм лучше: мой или Джурика? Насколько лучше?

Свет мой зеркальце скажи, да всю правду расскажи...


2. Есть ли у вас алгоритм Джурика?

3. Чем они отличаются?


Александр, интересные вопросы, после так громко звучащего названия статьи. Если вы занимаетесь этим делом, почему бы вам не взять и не разобрать код Джурика и не понять алгоритм, раз уж вы в этой теме по науке?

В ТАР сегодня так много воды и мало квалифицированных обьяснений, что эти статьи вызывают интерес. Корреляционный анализ алгоритмов индикаторов показал, что по-настоящему оригинальные и независимые друг от друга примерно 10-15%. Джурик на своем "детище" делает деньги. Я вам предложил свои идеи бесплатно. Наверно, за это надо просто поблагодарить.
 
ASmirnoff:
Neutron:

Да, всегда пожалуйста!

Наискосок пробежал взглядом статью. Уверен, что я просто не понял автора!

У том месте, где говорится об возникновении групповой задержки (ГЗ) при использовании алгоритма сглаживания, автор предлагает рецепт "избавления" от последней с помощью обратного прогона. .. Это что шутка? Известно, что для казуальных (работающих на правом конце ВР) систем ГЗ неустранима в принципе. Но, конечно, если ВР определён и мы планируем работать с ним в в середине ряда (не на правом краю), то можно, как советует автор, избавится от запаздывания путём повторного усреднения с теми же параметрами в обратном направлении. Но, почему автор умалчивает, что при таком алгоритме усреднения, неизбежно появится перерисовка на последнем баре. Он про это забыл или не знает? Или что ещё?

Вот цитата из статьи:

" Таким образом, с помощью рассматриваемого вы-ше предложения удается частично скомпенсировать временную задержку m/2 (устранить первый недоста-ток традиционного скользящего усреднения). . .. И второй негативный эффект устраняют... И третий, и четвертый. ..

Использование предложенного ал-горитма усреднения существенно уменьшает и линейные частотные искажения.. "

Идея компенсации групповой задержки принадлежит не мне, а американским ученым. Однако, она "работала" вне реального масштаба времени. Ну, например, в радиоастрономии. Мое достижение в том, что удалось предложить практически алгоритм в виде синтетической скользящей средней. Коллега, нужно изучать "материальную часть" перед тем, как начинать псевдонаучный спор.


Прежде чем ещё раз послать меня к мат...части, ответьте на прямой вопрос: в чём вы, "коллега", видите практическую ценность вашего алгоритма для анализа финансовых временных рядов, если он предполагает постоянное перерисовывание правого края кривой усреднения? Того самого края, на котором мы (трейдеры, МТС) должны принимать решение!

И, пожалуйста, не апеллируйте к американцам, астронавтам и т. п., все они решали эту проблему применительно к своей задаче и я не сомневаюсь, что решили её, в отличии от вас, на "отлично". И ещё, если напустить ваш алгоритм на интегрированный случайный шум, он так же великолепно его сгладит. Что, теперь вы будете утверждать, что можете предсказывать будущее там, где это невозможно в принципе? Надеюсь, что нет, потому что, если посмотреть на правый край кривой, то видно, как он сильно (по сравнению с остальным участком сглаживания) отличается от экспериментальных точек. И только изрядно поколбасившись (примерно m/2 точек), занимает "почтенное" положение. Только вот нам от этого не жарко, не холодно. Другими словами я хочу сказать, что всё ваше стройное здание (почти отсутствие ФЗ, ГЗ, низкая "колебимость", и т.п.) стоит на фундаменте (возможность применения обратного прогона), который вы похоже высосали из пальца, и который не применим к анализу рыночных рядов.

Господа! Я тот самый Александр Смирнов, чьи статьи в "ВС" вызывают ваш огромный интерес. Я ученый, но в прошлом практик-трейдер. Очень хорошо владею ТАР. Математик-прикладник.
:-)
 
ASmirnoff:Алгоритм на "ИЗИ" корректный, но программист, который его реализовывал не имеет опыта работы на этом языке. Критерием истины является практика. Этот алгоритм вне зависимости от величины окна усреднения обеспечивает задержку продукта усреднения на 1 бар.

Это очень хорошо, что задержка всего лишь на 1 бар. А возможно это как-то увидеть воочию? Где можно взять готовый индикатор?
 
LeoV, это надо видеть в динамике. Сколь угодно гладкая кривая с прекрасной импульсной характеристикой ничего не стоит (в применении к нашим задачам), если она перерисовывается.
 
Mathemat:
LeoV, это надо видеть в динамике. Сколь угодно гладкая кривая с прекрасной импульсной характеристикой ничего не стоит (в применении к нашим задачам), если она перерисовывается.

А она что, перерисовывается? Ну тогда это никак не применить к нашим задачам. Алгоритм SSA(гусеница) - тоже хороший алгоритм но, к сожалению, перерисовывает......
 

А возможно это как-то увидеть воочию? Где можно взять готовый индикатор?


пробую перевести с иази:


//+------------------------------------------------------------------+
//|                                                   SmirnoffMA.mq4 |
//+------------------------------------------------------------------+
#property copyright "Smirnoff moving average"
#property link      "www.spekulant.ru"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
//---- input parameters
extern int per=4;   // должна быть кратна 4!(4,8,12,и т.д.)
//---- buffers
double ExtMapBuffer1[];
//----
int n;
double alf=0.0,q1[],q2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   //
   alf=2.0/(per/2+1);
   n=per-1;
   ArrayResize(q1,per); ArrayResize(q2,per);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   if(counted_bars < 0)    return(-1);
   if(per%4!=0)            return(-1);
   int lm = Bars - counted_bars + 1; 
   //----
   for(int shift=0; shift<lm; shift++)
      {q1[0]=Close[shift];
       for(int j=1; j<per; j++) q1[j]=q1[j-1]+alf*(Close[shift+j]-q1[j-1]);
       for(int s=1; s<per/2; s++)
          {for(j=0; j<per; j++) q2[j]=q1[n-j];
           q1[0]=q2[0];
           for(j=1; j<per; j++) q1[j]=q1[j-1]+alf*(q2[j]-q1[j-1]);
          }
       ExtMapBuffer1[shift]=q1[n];
      }
   //----
   return(0);
  }
//+------------------------------------------------------------------+
Файлы:
 
zigan:пробую перевести с иази:

Так этот индикатор перерисовывает или нет?
 
нет.
 

Александр! Так оно и должно выглядеть? Синим - то, что сделал zigan по Вашему алгоритму, морским цветом - JMA из Code Base. У обеих параметр равен 12.

Вот еще картинка - когда параметр равен 4 у обеих кривых:

Выводы (если алгоритм zigan транслировал верно):

1. Ваша кривая "колючее".

2. При увеличении параметра у Вашей кривой - недохлест, т.е. сильные движения Джурик отрабатывает получше.