Скачать MetaTrader 5

Сравнительный анализ 30 индикаторов и осцилляторов

19 марта 2008, 13:17
Александр
13
1 895

Введение

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

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

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


Советник

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

В программе анализируются следующие индикаторы и осцилляторы:
  1. Acceleration/Deceleration — АС
  2. Accumulation/Distribution - A/D
  3. Alligator & Fractals
  4. Gator Oscillator
  5. Average Directional Movement Index - ADX
  6. Average True Range - ATR
  7. Awesome Oscillator
  8. Bears Power
  9. Bollinger Bands
  10. Bulls Power
  11. Commodity Channel Index
  12. DeMarker
  13. Envelopes
  14. Force Index
  15. Ichimoku Kinko Hyo (1)
  16. Ichimoku Kinko Hyo (2)
  17. Ichimoku Kinko Hyo (3)
  18. Money Flow Index – MFI
  19. Moving Average
  20. MACD (1)
  21. MACD (2)
  22. Moving Average of Oscillator (Гистограмма MACD) (1)
  23. Moving Average of Oscillator (Гистограмма MACD) (2)
  24. Parabolic SAR
  25. RSI
  26. RVI
  27. Standard Deviation
  28. Stochastic Oscillator (1)
  29. Stochastic Oscillator (2)
  30. Williams Percent Range

Для реализации поставленной цели на ценовой график наносится цифровая матрица, состоящая из чисел «-1», «0», «1». Каждая строка матрицы отводится определенному индикатору или осциллятору. Столбцы матрицы формируются в каждый момент времени (согласно выбранному периоду графика). Появление «-1» в определенной строке матрицы свидетельствует о наличии сигнала на продажу от конкретного индикатора (осциллятора); появление «1» - о наличии сигнала на покупку; появление «0» - об отсутствии сигналов от индикатора. Результат работы программы показан на Рис. 1



На Рис 2 показана интерпретация работы индикатора RVI в программную матрицу. В строку 26 (она отведена рассматриваемому индикатору) вносится «1», когда основная линия поднимается выше сигнальной (индикатор рекомендует покупать); «-1» - при нахождении сигнальной линии выше основной (продажа). Исходя из специфики индикатора, значение «0» в данной строке места не имеет.



В силу специфики индикаторов и осцилляторов, в матрице наглядно прослеживаются 2 группы показателей: значимые постоянно, соответствующие флаги которых (значения в матрице) не обращаются в ноль (например, ADX) и значимые точечно, флаги которых обращаются в ноль и подают сигнал только в конкретные моменты времени (например, Parabolic SAR). Рис. 3 демонстрирует описанное различие.



Анализ полученной информации и последующее формирование пакета индикаторов рекомендуется производить следующим образом. Изначально следует выбрать отрезок графика, на котором имеет место тренд. Затем ограничивается период возможных сделок. Началом такого периода может быть флэт перед выбранным трендом или зарождение тренда; окончание периода – последний момент времени, когда сделка еще будет выгодной. Таким образом отсекаются преждевременные и запаздывающие показания индикаторов. На Рис. 4 такой период ограничен салатовыми линиями. Далее внутри выбранного временного периода производится анализ показаний индикаторов (осцилляторов): выбираются индикаторы, предсказавшие тренд верно и отсеиваются индикаторы, подавшие ложный сигнал. Далее пакет выбранных индикаторов (осцилляторов) может быть расширен или сужен путем проведения аналогичного анализа на других промежутках времени, в результате чего должен быть сформирован окончательный пакет показателей.



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

Таким образом, совместно анализируя поведение цены и сигналы, подаваемые каждым конкретным индикатором (осциллятором), представляется возможным выбрать наиболее эффективные из них для последующего формирования пакета индикаторов.


Алгоритм

На первом этапе производится определение значений «флагов» (-1, 0, 1) для каждого из индикаторов (осцилляторов). Исходя из того, что один индикатор (например, MACD) подает сигналы различными способами (схождение/расхождение, пересечение нулевой линии и т.д.), в коде программы отдельно для каждого из 30 показателей описан принцип его определения. Например, анализ осциллятора «Williams Percent Range» реализован следующим образом:

//30. Williams Percent Range
//Покупка: пересечение -80 снизу вверх
//Продажа: пересечение -20 сверху вниз
if (iWPR(NULL,piwpr,piwprbar,1)<-80&&iWPR(NULL,piwpr,piwprbar,0)>=-80)
{f30=1;}
if (iWPR(NULL,piwpr,piwprbar,1)>-20&&iWPR(NULL,piwpr,piwprbar,0)<=-20)
{f30=-1;}

Затем из полученных числовых значений флагов формируются уникальные объекты типа «Текст» (с целью предотвращения дублирования имен объектов используется текущее значение времени) и выводятся на экран.

timeident=TimeCurrent(); //Время для формирования уникального имени объекта
for (i=0;i<=29;i++) //Цикл вывода значенй на экран
 
//Формирование уникальных имен объектов
{ident=DoubleToStr(30-i,0)+"   "+DoubleToStr(timeident,0); 
 
//Создание объектов, указание их местоположений
ObjectCreate(ident,OBJ_TEXT,0,timeident,WindowPriceMin()+Point*5*(i+1));
 
info=DoubleToStr(f[30-i],0); //Формирование текстовой строки для вывода
ObjectSetText(ident,info,6,"Arial", Black);} //Описание формата вывода и сам вывод

Для проверки сформированных портфелей показателей в программе предусмотрен «Блок обработки стратегии и установки Главного Флага». В данный блок прописываются условия, при которых Советник должен совершать покупку (Главный Флаг равен 1) или продажу (Главный Флаг равен -1). Если описанные условия не выполняются, Главный Флаг остается равным нулю и сделок не совершается. Также присутствует блок закрытия позиций (закомментирован).

if(f8==1&&f21==1) //Набор условий, при выполнении которых происходит покупка
flag=1;
if(f8==-1&&f21==-1) //Набор условий, при выполнении которых происходит продажа
flag=-1;

Параметры каждого из индикаторов (осцилляторов) описаны в виде переменных, что допускает их автоматическую оптимизацию (изначально параметры приняты в соответствии с общепринятыми).


Заключение

Представленный советник, как было указано ранее, не является готовой механической торговой системой. Основная его задача – проведение сравнительного анализа индикаторов и осцилляторов для последующего формирования пакета показателей. Советник наглядно представляет подаваемые индикаторами сигналы, не загромождая рабочий стол трейдера, делает анализ удобным.

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

Прикрепленные файлы |
Matrix.mq4 (33.11 KB)
Последние комментарии | Перейти к обсуждению на форуме трейдеров (13)
Олег
Олег | 6 сен 2008 в 18:53
Идея замечательная! только почему-то советник не отображает матрицу в терминале :-( а при визуальном тестировании появляются какие-то баги... версия терминала последняя
f1-forum
f1-forum | 3 май 2009 в 16:04
Сильно! Думаю если довести все это до ума можно чтонибудь прибыльное сотворить.
Volodymyr Dvornyk
Volodymyr Dvornyk | 19 дек 2009 в 09:41
Идея хорошая, только в терминале ничего не отображается. Нельзя ли показать на пальцах, как запускать этот индюк?
baal79
baal79 | 4 янв 2011 в 19:59

Интересный анализатор!

Сделал мелкие доработки.

Визуализации не хватает нормальной. 1. Чтоб показания видно было в строке №531 лучше не 5 или 20, а 30-50 поставить. Вообще вывел это в отдельную внешнюю переменную windows_size.

2. Шрифт текста у автора по умолчанию чёрный. У кого стоит стандартный фон чёрного цвета (и по умолчанию такой в тестере) можно изменить "Black" на White в строке:

ObjectSetText(ident,info,6,"Arial", Black); //Описание формата вывода и сам вывод

3. Сделал показ названий индикаторов при наведении мышки на строки матрицы.

4. + Возможность вкл/выкл каждого индикатора в тестере ("Свойства эксперта"). Индикатор №3 Aligator не выкл., его настройки использует другой индикатор.

baal79
baal79 | 5 янв 2011 в 15:28
incognitos: 3. Сделал показ названий индикаторов при наведении мышки на строки матрицы.
Но от такой реализации (слишком много длинных текстовых объектов в окне) вскоре терминал перегружается и тормозит. Поэтому небольшие участки истории лучше анализировать.
Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота

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

Охота за трендами Охота за трендами

В статье описан алгоритм наращивания объёма прибыльной сделки и представлена его реализация посредством MQL.

Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота (Продолжение) Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота (Продолжение)

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

Консультант-советник трейдера на основе расширенного анализа MACD Консультант-советник трейдера на основе расширенного анализа MACD

Скрипт консультант-советник трейдера по принятию решения об открытии позиций на основании расширенного анализа состояния MACD по трем последним барам в реальном времени торгов на любом периоде, и для проведения анализа на истории.