Как сделать тех анализ метатрейд5
Графики котировок, технический и фундаментальный анализ
Самым важным при торговле на финансовых рынках, конечно, является принятие правильных решений о входе и выходе из рынка. Когда стоит торговать, а когда лучше остаться в стороне и дождаться более благоприятных условий? На этот вопрос помогут ответить аналитические инструменты торговой платформы.
Существует огромное множество походов к анализу рыночной ситуации и основанных на них торговых стратегий. Всех их можно разделить на две большие категории: технический и фундаментальный анализ.
Графики котировок и технический анализ
Суть технического анализа заключается в изучении графиков цен финансовых инструментов при помощи технических индикаторов и аналитических объектов. Графики в платформе имеют множество настроек, и любой трейдер может адаптировать их под свои требования. Для каждого графика доступен 21 временной период — от минутного до месячного.
Настраивайте вид графиков как угодно: просмотривайте бары, свечи или линию, меняйте любые цвета.
Для каждого графика доступен 21 временной период.
Открывайте до 100 графиков одновременно.
Используйте 38 встроенных технических индикатора, а также неограниченное количество кастомных, доступных в Маркете и Библиотеке.
В вашем распоряжении 44 аналитических объекта: Фибоначчи, Ганн, каналы и многое другое.
Для анализа цен на графиках в торговой платформе доступно множество инструментов: 38 технических индикаторов и 44 графических объекта. При этом инструментарий не ограничивается только встроенными объектами. В Библиотеке можно скачать огромное количество бесплатных программ в виде исходных кодов. А в магазине приложений Маркет представлены тысячи готовых к использованию продуктов для технического анализа и автоматической торговли.
Фундаментальный анализ
Смысл фундаментального анализа заключается в постоянном мониторинге и изучении различных экономических и производственных показателей, которые могут оказывать влияние на котировки конкретного финансового инструмента.
Например, на стоимость акций какой-либо компании серьезно влияют публикации годовых отчетов, новости о заключение нового контракта, вступление в силу регулирующего закона и так далее. Чтобы держать руку на пульсе необходимо постоянно анализировать подобную информацию.
Прямо в платформе можно оперативно получать различные финансовые новости от мировых информационных агентств. Это позволяет быть в курсе событий и принимать адекватные, своевременные торговые решения.
Читайте финансовые новости от мировых информационных агентств прямо в тороговой плафторме. Это позволяет быть в курсе событий и принимать адекватные, своевременные торговые решения.
Анализируйте макроэкономические события при помощи календаря. Оценивайте и развитие экономики, чтобы предсказать тенденцию движения цен.
Помимо новостей в торговой платформе доступен экономический календарь. В нем публикуется макроэкономические показатели — некие параметры, описывающие состояние страны, для которой они рассчитываются. Они характеризуют развитие экономики, указывают на экономический рост или упадок. Основываясь на них, можно предсказать тенденцию движения цен.
Технический анализ в MetaTrader 5
Предугадайте движение рынка, чтобы совершить сделку
Технический анализ — неотъемлемая часть успешной торговли на Форексе, фондовой бирже, а также фьючерсами. С его помощью можно выявить различные тенденции, определить уровни поддержки/сопротивления, построить прогноз динамики котировок акций и валют и многое другое. Иными словами, технический анализ позволяет «заглянуть в будущее» и использовать это преимущество для получения прибыли.
Технический анализ в MetaTrader 5:
Суть анализа заключается в изучении графиков финансовых инструментов при помощи технических индикаторов и графических объектов. В MetaTrader 5 встроен солидный набор самых необходимых аналитических инструментов: 38 индикаторов и 44 объекта. Всех их можно комбинировать и получать более детальные прогнозы.
Технические индикаторы
Наиважнейший инструмент в техническом анализе — технический индикатор. Он работает автоматически и выявляет различные закономерности в динамике котировок акций, валют и других финансовых инструментов. На основании этих данных можно сделать предположение о дальнейшем движении цен и скорректировать свою торговую стратегию.
За время существования торговли на финансовых рынках было разработано большое количество различных технических индикаторов. В MetaTrader 5 встроены наиболее известные и востребованные из них. Для удобства все они объединены в группы: трендовые индикаторы, осцилляторы, индикаторы объема и инструменты Билла Вильямса.
У большинства технических индикаторов имеются различные настройки, которые позволяют адаптировать его под конкретные задачи. Контролю поддаются как аналитические параметры, так и внешний вид. Например, можно изменить период расчета Скользящей Средней, а также изменить цвет, толщину и тип ее линии.
Индикаторы могут располагаться как на самом графике котировок, так и в специальных подокнах со своей шкалой значений. При этом имеется возможность накладывать одни инструменты на другие. Например, на DeMarker можно наложить Moving Average и таким образом получить линию усредненных значений.
В общем, MetaTrader 5 предлагает вам серьезный арсенал для полноценной аналитики. Однако встроенный инструментарий — это только начало. Маркет и Библиотеки содержат тысячи технических индикаторов и делают ваши аналитические возможности безграничными. Качайте бесплатно, покупайте или арендуйте — прямо в платформе вам доступны инструменты для технического анализа любой сложности!
Если вам нужен технический индикатор с определенными характеристиками, вы можете написать его самостоятельно. Для этого в MetaTrader 5 имеются все необходимые инструменты, а на сайте MQL5.com опубликовано много полезной информации. А если у вас нет времени самому заниматься разработкой, то можно поручить эту задачу опытным программистам за разумную плату.
Аналитические объекты
В MetaTrader 5 есть 44 аналитических объекта: инструменты Ганна, Фибоначчи, Эллиотта, геометрические фигуры, различные каналы и циклы и многое другое. В отличие от технических индикаторов, их необходимо накладывать вручную.
Управление аналитическими объектами интуитивно понятно и не вызовет проблем. Для использования инструмента необходимо лишь указать несколько контрольных точек, по которым он строится. При этом на экране появится требуемый аналитический объект.
Аналитические инструменты можно накладывать не только на график котировок, но и на окна индикаторов
Как и у технических индикаторов, у аналитических объектов можно контролировать расчетные параметры и настройки отображения. Например, для линий Фибоначчи можно задать собственные уровни и изменить цвета отображения.
Встроенные инструменты MetaTrader 5 покрывают большинство ваших потребностей. А с использованием среды разработки MQL5 и дополнительных сервисов аналитические возможности торговой платформы становятся безграничными. Убедитесь в этом сами!
Использование технических индикаторов
Технический индикатор — наиважнейший инструмент технического анализа. На основании сигналов технических индикаторов принимаются решения относительно того, как и когда совершать сделки. Суть их заключается в математическом преобразовании цены и/или объемов финансового инструмента для прогнозирования будущих изменений цен. При этом появляется возможность выявить различные особенности и закономерности в динамике цен, которые не видны невооруженным глазом.
Типы индикаторов #
В соответствии с функциональными свойствами можно выделить два типа индикаторов: трендовые индикаторы и осцилляторы. Трендовые индикаторы помогают выделять движение цены в одном направлении и определять моменты разворота тенденций синхронно или с опозданием. Осцилляторы позволяют определять поворотные моменты с опережением или синхронно.
В отдельную категорию выделены индикаторы, в расчетах которых учитываются объемы. Для рынка Форекс под объемами подразумеваются количество тиков (изменений цены), прошедших за временной интервал. Для биржевых инструментов под объемами подразумеваются объемы совершаемых сделок (в контрактах или в денежном выражении).
Еще одна категория — индикаторы Билла Вильямса. Они выделены в отдельную группу, так как являются составной частью торговой системы, описанной в его книгах.
Описанные выше категории представляют собой индикаторы, встроенные в торговую платформу. Всего таких индикаторов 38. Помимо них существует еще множество пользовательских технических индикаторов. В Библиотеке можно скачать огромное количество бесплатных программ в виде исходных кодов. А в магазине приложений Маркет представлены тысячи готовых к использованию продуктов для технического анализа и автоматической торговли.
Для удобства использования все индикаторы разделены на группы в окне «Навигатор».
Как наложить индикатор на график #
Технический индикатор может строиться в создаваемом отдельном окне индикатора с собственной вертикальной шкалой (например, MACD) или накладываться прямо на график цен (например, Moving Average).
Как изменить настройки наложенного индикатора #
После наложения индикатора все его настройки можно изменять. В окне «Список индикаторов» выделите индикатор и нажмите «Свойства» или воспользуйтесь контекстным меню индикатора на графике.
Используйте контекстное меню для управления индикаторами:
Подведя курсор к линии, символу или краю столбца гистограммы индикатора, можно определить точное значение данного индикатора в этой точке.
Как настроить внешний вид индикатора #
Торговая платформа позволяет гибко настраивать внешний вид индикаторов. Настроить параметры индикатора можно сразу при его наложении на график или позже в любой другой момент. Внешний вид индикатора настраивается на вкладке «Параметры»:
В поле «Стиль» задается цвет линии индикатора, ее вид и толщина.
Для индикаторов Ichimoku Kinko Hyo, Alligator и пользовательских индикаторов можно отдельно настраивать отрисовку различных элементов. На вкладке «Цвета» можно указать цвет, толщину и тип линий.
Как выбрать данные для построения индикатора #
Индикаторы можно строить не только от ценовых данных и их производных (Median Price, Typical Price, Weighted Close), но и от других индикаторов. Например, можно построить индикатор Moving Average от Awesome Oscillator и тем самым получить в дополнение к AO сигнальную линию. Для этого сначала постройте индикатор AO, а затем наложите MA на AO и в его настройках в поле «Применить к» выберите «Previous Indicator’s Data» (наложить индикатор на данные предыдущего индикатора). Если выбрать «First Indicator’s Data», MA будет строиться на основании данных самого первого индикатора, которым не обязательно является AO.
Всего поддерживается девять вариантов построения индикаторов:
Как настроить дополнительные уровни индикаторов #
Для некоторых индикаторов можно задать отрисовку дополнительных уровней. На вкладке «Уровни» нажмите кнопку «Добавить» и внесите в таблицу значение уровня (в пунктах) и описание уровня (необязательно).
Ниже можно задать стиль отображения данных уровней: цвет, тип и толщину линий. Для редактирования уровней нажмите «Правка» или дважды щелкните на соответствующем поле.
Для индикаторов, накладывающихся на график цен, уровни отрисовываются путем суммирования значений индикатора и заданного уровня. Для индикаторов, строящихся в отдельном подокне, уровни прочерчиваются горизонтальными линиями через указанное значение на вертикальной шкале.
Настройки отображения индикатора #
На вкладке «Отображение» можно выбрать таймфреймы (периоды) для отображения индикатора. Это бывает полезным, если индикатор предназначен для использования только на определенных таймфреймах.
При помощи опции «Показывать в Окне данных» контролируется отображение информации об индикаторах в «Окне данных».
Блог компании MetaQuotes Software | Как в MetaTrader 5 быстро разработать и отладить торговую стратегию: тиковый анализатор
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода.
В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и выхода зачастую требуются годы ручной торговли. Но с помощью MetaTrader 5 вы можете быстро проверить любую подобную стратегию на реальной истории.
Торговая идея на тиках
Прежде всего, нам необходимо создать индикатор, который будет строить тиковые графики — то есть графики, на которых можно увидеть каждое изменение цены.
Один из первых таких индикаторов вы можете найти в Библиотеке — https://www.mql5.com/ru/code/89. В отличие от обычных, на тиковых графиках при поступлении нового тика необходимо весь график смещать назад.
За основу проверяемой идеи возьмем ряд изменений цены между двумя последовательными тиками, это будет примерно такая последовательность в пунктах:
Закон нормального распределения гласит, что 99 % изменений цены между двумя тиками укладывается в пределах 3-х сигм. Мы попробуем в режиме реального времени вычислять на каждом тике среднеквадратичное отклонение и помечать резкие скачки цены значками красного и синего цвета.
Таким образом мы попытаемся визуально выбрать стратегию для использования таких резких выбросов — торговать в направлении изменения или же использовать «возврат к среднему». Как видите, идея совсем простая, и наверняка по этому пути прошло большинство любителей математики.
Создаем тиковый индикатор
В MetaEditor запускаем Мастер MQL, задаем имя и два входных параметра:
Далее отмечаем «Индикатор в отдельном окне» и указываем 2 графических построения, которые будут отображать информацию в подокне: линия для тиков и цветные стрелки для сигналов о появлении резких изменений цены.
Внесем в полученную заготовку изменения, которые отмечены желтым
Теперь осталось добавить код в предопределенный обработчик поступающих тиков OnCalculate(). При первом вызове функции явно обнулим значения в индикаторных буферах, а также для удобства установим для них признак таймсерии — таким образом индексация у них будет справа налево.
Это позволит обращаться к самому свежему значению индикаторного буфера по индексу ноль, то есть в TickPriceBuffer[0] будет храниться значение последнего тика.
Кроме того, основную обработку тиков мы вынесем в отдельную функцию ApplyTick():
Функция ApplyTick() пока производит самые простые действия — сдвигает все значения буфера на одну позицию вглубь истории и пишет в TickPriceBuffer[0] последний тик. Запускаем индикатор под отладкой и наблюдаем некоторое время.
Видим, что цена Bid, по которой строится Close текущей свечи, очень часто остается неизменной, и поэтому график рисуется кусками «плато». Немного подправим код, чтобы получать только «пилу» — так глазу более понятно.
Итак, первую версию индикатора мы создали, теперь у нас не бывает нулевых приращений цены.
Добавляем вспомогательный буфер и расчет среднеквадратичного отклонения
Для вычисления отклонения нам необходим дополнительный массив, который будет хранить приращения цены на каждом тике. В качестве такого массива добавим еще один индикаторный буфер и добавим соответствующий код в нужных местах:
Теперь мы готовы вычислить среднеквадратичное отклонение. Сначала напишем функцию getStdDev(), которая делает все вычисления«в лоб», пробегая по всем элементам массива столько циклов, сколько нужно.
Затем там же допишем блок, который отвечает за выставление сигналов на тиковом графике — установку кружков красного и синего цвета
Нажимаем кнопку F5 (Начало отладки/продолжение выполнения) и наблюдаем в терминале MetaTrader 5, как работает наш индикатор.
Теперь пришло время заняться отладкой кода, которая позволит выявить ошибки и ускорить работу программы.
Профилировка кода для ускорения работы
Для программ, работающих в режиме реального времени, критически важна скорость выполнения. Среда разработки MetaEditor позволяет удобно и быстро оценивать затраты времени на выполнение тех или иных участков программы.
Для этого необходимо запустить профилирование кода и дать поработать программе некоторое время. Для профилировки индикатора будет достаточно минуты.
Как видите, большая часть времени (95.21%) ушла на отработку функции ApplyTick(), которая была вызвана 41 раз из функции OnCalculate(). Сама же OnCalculate() вызывалась 143 раза, но только в 41 случае цена в пришедшем тике отличалась от цены предыдущего.
При этом в самой функции ApplyTick() большую часть времени заняли вызовы функции ArrayCopy(), которые выполняют только вспомогательные действия и не производят вычислений, ради которых и был задуман данный индикатор. Вычисление среднеквадратичного отклонения на 111 строке кода заняло только 0.57% общего времени выполнения программы.
Постараемся уменьшить непроизводительные затраты, для этого попробуем копировать не все элементы массивов (TickPriceBuffer и т.д), а только 200 последних. Ведь нам на графике достаточно будет видеть 200 последних значений, к тому же количество тиков за одну торговую сессию может достигать десятков и сотен тысяч.
Просматривать их все нет необходимости. Поэтому введем входной параметр shift=200, который задает количество сдвигаемых значений. Добавьте в код строки, выделенные желтым:
Запускаем заново профилировку и видим новый результат — время на копирование массивов упало в в сотни или тысячи раз, теперь основное время занимает вызов StdDev(), которая отвечает за вычисление среднеквадратичного отклонения.
Таким образом, мы ускорили работу функции ApplyTick() на несколько порядков, что даст нам существенную экономию при оптимизации стратегии и при работе программы в режиме реального времени. Ведь вычислительных ресурсов никогда не бывает слишком много.
Аналитическая оптимизация кода
Иногда даже оптимально написанный код можно заставить работать еще быстрее. В данном случае вычисление среднеквадратичного отклонения можно ускорить, если немного переписать формулу.
Таким образом, мы можем просто вычислять квадрат суммы и сумму квадратов приращений цены — это позволит нам выполнять меньше математических операций на каждом тике. На каждом тике мы просто отнимаем выпадающий элемент массива и добавляем входящий элемент массива в переменные, содержащие суммы.
Создадим новую функцию getStdDevOptimized(), в которой применим уже знакомый метод сдвига значений массива внутри себя.
Добавим в функцию ApplyTick() вычисление среднеквадратичного отклонения вторым способом через функцию getStdDevOptimized() и вновь запустим профилировку.
Видно, что новая функция getStdDevOptimized() требует в два раза меньше времени — 4.56%, чем лобовой обсчет в getStdDev() — 9.54%. Она выполняется даже быстрее, чем встроенная функция PrintFormat(), которая использовала 4.74% времени работы программы.
Таким образом, использование оптимального способа вычисления дает еще больший выигрыш по скорости работы программы. Рекомендуем также посмотреть статью 3 метода ускорения индикаторов на примере линейной регрессии.
Кстати, о вызове стандартных функций — в данном индикаторе мы получаем цену из таймсерии close[], которая строится по ценам Bid. Есть еще два способа получить эту цену — с помощью функций SymbolInfoDouble() и SymbolInfoTick(). Добавим эти вызовы в код и снова сделаем профилировку.
Как видите, здесь тоже есть разница по скорости работы. И это понятно, так как чтение готовой цены из close[] не требует затрат по сравнению с вызовом универсальных функций.
Отладка на реальных тиках в тестере
При написании индикаторов и торговых роботов нельзя предусмотреть все возможные ситуации, которые могут случиться при онлайн-работе. К счастью, MetaEditor позволяет проводить отладку и на исторических данных.
Просто запустите отладку в режиме визуального тестирования, и вы сможете проверить вашу программу на заданном интервале истории. Вы сможете ускорять, останавливать и прокручивать тестирование до нужной даты.
Важно: в окне Отладка укажите режим моделирования «Каждый тик на основе реальных тиков«. Это позволит использовать для отладки реальные записанные котировки, которые хранит у себя торговый сервер. При первом запуске тестирования они автоматически загрузятся на ваш компьютер.
Если эти параметры не заданы в MetaEditor, то при в виузальном режиме тестирования будут использоваться текущие настройки тестера. Укажите в них режим «Каждый тик на основе реальных тиков».
Мы видим, что на тиковом графике появляются странные разрывы. Значит, в алгоритме допущена какая-то ошибка. Неизвестно, сколько времени ушло бы на её проявление при тестировании в реальном времени. В данном случае по выводам в Журнал визуального тестирования видно, что странные разрывы возникают в момент появления нового бара.
Точно! — мы забыли, что при переходе на новый бар размер индикаторных буферов автоматически увеличивается на 1. Внесём исправление в код:
Запустим визуальное тестирование и поставим точку остановки, чтобы поймать момент открытия нового бара. Добавим наблюдаемые значения и убедимся, что всё сделали правильно: количество баров на графике увеличилось на единицу, тиковый объем текущего бара равен 1 — это самый первый тик нового бара.
Ну вот, мы провели оптимизацию кода, исправили ошибки, замерили время выполнения различных функций, теперь индикатор готов к работе. Можно запускать визуальное тестирование и наблюдать, что происходит после появления сигналов на тиковом графике. Можно что-то еще улучшить в коде индикатора?
Перфекционист от кодинга скажет — да! Мы еще не попробовали использовать кольцевой буфер для ускорения работы. Желающие могут проверить сами — дает ли это прирост производительности?
MetaEditor — это готовая лаборатория для разработки торговых стратегий
Для написания автоматической торговой системы важно иметь не только удобную среду разработки и мощный язык программирования, но и дополнительные инструменты для отладки и калибровки программы. В этой статье мы показали как:
Разработка индикатора, показывающего торговые сигналы, зачастую является первым необходимым шагом для написания торгового робота. Визуализация помогает выработать торговые правила либо отвергнуть идею еще до начала работы над проектом.
Пользуйтесь всеми возможностями среды разработки MetaEditor для создания эффективных торговых роботов!