Приветствую Вас Гость | Среда, 06.11.2024, 07:45 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Главная | Регистрация | Вход | RSS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Торговые роботыФОРЕКС
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Создай свой советник в МТ4Создай свой советник в
МТ4 Не секрет, что умение создавать свои эксперты и индикаторы, позволяет избежать серьезных ошибок. Тем не менее, не более 10% трейдеров умеют создать даже простейший эксперт. В то же время, современные торговые терминалы позволяют делать это все настолько просто, что научиться этому можно за один день. Данное руководство не претендует на широту и всеобъемлимость. Тем не менее, за пару часов вы научитесь писать довольно сложные эксперты, проверяющие на истории ваши любые торговые стратегии. Данный эксперт можно спокойно копировать в МетаEditor, а дальше добавлять в него уже нужные условия. //+------------------------------------------------------------------+ Здесь есть все, что может понадобиться для сознания советника. Вы можете спокойно копировать весь этот советник со всеми комментариями, изменить XXXXXXX, YYYYYYY, RRRRRRRRRRRR, ZZZZZZZZZZ на условия (о них ниже) и спокойно торговать. Условия Покупок/продаж. Для этого, обычно вызывают технические индикаторы и
дается простое задание покупать или продавать. Сильная сторона Метатрейдера это простой вызов технических индикаторов. Полный их список приводится в хелпе к терминалу. Приведу здесь только главные.
|
symbol | Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ. |
timeframe | Сдвиг относительно текущей позиции (количество периодов назад). |
period | Число периодов для вычисления. |
ma_shift | MA сдвиг. Смещение линии индикаторов относительно периода диаграммы. |
Ma_method | MA метод. Может быть любым из значений методов скользящего среднего (Moving Average). |
applied_price | Используемая цена. Может быть любой из ценовых констант. |
shift | Сдвиг относительно текущей позиции (количество периодов назад). |
То есть, условие покупки (продажи, закрытия) для условия "3-периодная выше 20-периодной" будет выглядеть так: iMA(NULL,0, 3,0, MODE_EMA,PRICE_OPEN,0) > iMA(NULL,0, 20,0, MODE_EMA,PRICE_OPEN,0)>
Стохастик:
double iStochastic(string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)
Расчет Stochastic Oscillator.
Параметры
symbol | Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ. |
timeframe | Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). |
%Kperiod | %K период линии. |
%Dperiod | %D период линии. |
slowing | Замедление значения. |
method | MA метод. Может быть любым из значений методов скользящего среднего (Moving Average). |
price_field | Параметр области цены. Может быть одной из следующих величин: 0 - Low/High или 1 - Open/Close. |
mode | Индекс линии индикатора. Может быть любым из значений идентификаторов линий индикаторов. |
shift | Сдвиг относительно текущей позиции (количество периодов назад). |
То есть, сигналом при то, когда Стохастик с
параметрам (4,8,7) больше своей средней, будет:
if(iStochastic(NULL,0,4,8,7,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0, 4,8,7,MODE_SMA,0,MODE_SIGNAL,0))
И так далее.
Все, что вам надо сделать для тестинга своих торговых систем, это скачать базу данных всех индикаторов ЗДЕСЬ.
И менять их параметры, вставляя вместо указанных строчек.
Отдельно хочется отметить, что, скажем, в Омеге убрано все то, что я комментировал и осталены только возможности вставлять условия (их четыре: покупка, продажа, закрытие покупки, закрытие продажи). И все. А потом из четырех условий, подбирая их разным образом, вы и собираете Торговую Стратегию.
Скрипты и советники различает всего одна, но существенная вещь. Советники обрабатываются каждый тик заново (также как и Индикаторы). Скрипты рисуются только один раз при добавлении на график и уже сами не меняются.
Поэтому, скрипты используют обычно для того, чтобы нарисовать какие-либо линии. Скажем, линии тренда, которые не надо менять постоянно.
Другими словами, здесь мало программирования и применение достаточно разнообразно. Более того, я еще не встречал особой нужды у учеников в особых скриптах.
Индикаторы, это то, что применяют ВСЕ. Благодаря их популярности, число их огромно. Здесь размещен архивный файл с 1500 индикаторами. Кстати, он еще раз доказывает то, что ни один индикатор не является панацеей от проигрыша.
Индикаторы очень разнообразны, но все сводятся к уже
сделанным, поэтому советую вам не создавать их с нуля, а просто изменять формулы
уже созданных.
1. Если была выставлена галочка "Ручное подтверждение вызовов", то при первом
обновлении цены появится диалог подтверждения - надо нажать Да.
2. Часовой
график Н1, на котором работает скрипт, должен быть активным (можно его свернуть,
но закрывать не надо).
3. При работающем скрипте нельзя изменять символы ни
в созданном нестандартном графике, ни в часовом графике, на котором работает
скрипт. Для создания нестандартных таймфреймов по нескольким символам необходимо
открывать базовый график каждого из них и повторять процедуру.
4. Для
генерации наиболее длинной истории создавайте нестандартные таймфреймы из
ближайшего меньшего стандартного таймфрейма (например, 10M из 5М, 12Н из 4Н).
13. Расшифровка статистических показателей МТ4.
Клиентский терминал MetaTrader4 позволяет генерировать детализированные
отчеты, в которые включаются история сделок, график изменений средневзвешенной
оценки активов (Equity), а также статистический блок, содержащий основные
показатели, которые могут быть использованы для анализа рисков по результатам
торговли.
Функция "Сохранить как детализированный отчет" доступна через
контекстное меню в закладке "История счета".
Расшифровка показателей:
Gross Profit - общая прибыль по сделкам с положительным результатам;
Gross Loss - общий убыток по сделкам с отрицательным результатом;
Total
Net Profit - разность между Gross Profit и Gross Loss;
Profit Factor -
фактор прибыльности, показывающий отношение Gross Profit\Gross Loss;
Expected Payoff - ожидание прибыли, результат деления чистой прибыли на
количество сделок;
Absolute Drawdown - просадка от начального баланса,
показывающая, насколько уменьшался баланс относительно первоначального значения;
Maximal Drawdown - денежная просадка, показывающая максимальную
зафиксированную просадку в денежном выражении (перепад между последним
максимумом и текущим минимумом); может превышать Absolute Drawdown, показывая
величину возможного убытка даже если торговля ведется положительно;
Relative
Drawdown - относительная просадка, показывает максимальную просадку в процентах
относительно начального депозита;
Total Trades - количество совершенных
сделок; чем больше этот показатель, тем достовернее все остальные;
Short
Positions (won%) - количество закрытых коротких позиций, в скобках - процент
прибыльных коротких позиций от их общего количества;
Long Positions (won%) -
количество закрытых длинных позиций, в скобках - процент прибыльных длинных
позиций от их общего количества;
Profit Trades (% of total) - общее
количество прибыльных сделок, в скобках - процент от общего числа сделок;
Loss Trades (% of total) - общее количество прибыльных сделок, в скобках -
процент от общего числа сделок;
Largest Profit Trade - сделка с максимальной
прибылью; экстремально прибыльные сделки могут быть нерепрезентативными (за
исключением трендовых торговых систем);
Largest Loss Trade - сделка с
максимальным убытком;
Average Profit Trade - средняя прибыль по сделке
(Gross Profit\Profit Trades);
Average Loss Trade - средний убыток по сделке
(Gross Loss\Loss Trades);
Maximum Consecutive Wins ($) - количество сделок в
самой длинной последовательности прибыльных сделок (в скобках - сумма прибыли по
этим сделкам);
Maximum Consecutive Losses ($) - количество сделок в самой
длинной последовательности убыточных сделок (в скобках - сумма убытка по этим
сделкам);
Maximal Consecutive Profit (count) - максимальная прибыль в
последовательности прибыльных сделок (в скобках - количество сделок в этой
последовательности);
Maximal Consecutive Profit (count) максимальный убыток
в последовательности убыточных сделок (в скобках - количество сделок в этой
последовательности);
Average Consecutive Wins - среднее величина
последовательности прибыльных сделок;
Average Consecutive Wins - средняя
величина последовательности убыточных сделок.
Если Вас не устраивают стандартные таймфреймы, Вы можете создать свой собственный с помощью встроенного скрипта period_converter.
Например, нам нужно получить 2-часовой график. Порядок действий:
1. Открываем Навигатор (CTRL+N) и перетаскиваем period_converter из списка
"Скрипты" на часовой график.
2. Открываем "Общие" свойства скрипта и
выставляем галочку "Разрешить импорт функций из DLL". Если Вы желаете, чтобы DLL
подключался автоматически при вызове графика, снимите галочку "Ручное
подтверждение вызовов".
3. Открываем "Входные параметры" скрипта и вводим
значение нового таймфрейма в единицах базового таймфрейма, в данном случае
ExtPeriodMultiplier=2
4. Нажимаем Ок. Скрипт создает новый файл истории,
сигнализируя об этом сообщением в закладке "Эксперты", например: 2007.11.21
13:32:14 period_converter USDJPY,H2: 1891 record(s) written
5. Открываем
меню Файл->Работать автономно, находим в списке "USDJPY, H2", нажимаем
Открыть.
6. Наслаждаемся результатом. Обновление графика в реальном времени
будет происходить в соответствии с созданным таймфреймом.
9. Особенности встроенных индикаторов.
Некоторые из встроенных индикаторов, приведенных в списке "Индикаторы" в меню
"Навигатор" (CTRL+N), обладают расширенной функциональностью:
- могут
прикрепляться к графику как в основное окно, так и в отдельное подокно и
совмещаться с другими индикаторами;
- могут использовать в качестве вводных
данных значения другого индикатора.
Это значительно расширяет возможности по
использованию индикаторов, не вынуждая пользователя осваивать программирование
на MQL4.
Индикаторы, совмещаемые в подокне:
Acceleration/Deceleration Oscillator
Accumulation/Distribution
Average Directional Movement Index
Average True Range
Awesome
Oscillator
Bears Power
Bulls Power
DeMarker
Force Index
Gator Oscillator
Market Facilitation Index
Money Flow Index
Moving Average Convergence/Divergence
Moving Average of Oscillator
On Balance Volume
Relative Vigor Index
Stochastic Oscillator
Volumes
Williams’ Percent Range
Индикаторы, совмещаемые в основном окне:
Alligator
Fractals
Ichimoku Kinko Hyo
Parabolic SAR
Индикаторы, совмещаемые в обоих окнах (со всеми вышеперечисленными):
Bollinger Bands
Commodity Channel Index
Envelopes
Momentum
Moving Average
Relative Strength Index
Standard Deviation
Индикаторы, поддерживающие расчет от значений другого индикатора:
Bollinger Bands
Commodity Channel Index
Envelopes
Momentum
Moving Average
Relative Strength Index
Standard Deviation
Для
расчета индикатора от значений другого индикатора необходимо указать в
"Параметрах" индикатора "Применить к":
Previous Indicator's Data -
использовать данные индикатора, который присоединен в главное окно или подокно
последним;
First Indicator's Data - использовать данные индикатора, который присоединен в главное окно или подокно первым.
Присоединение к основному окну графика индикаторов, по умолчанию открывающихся в подокне:
Индикаторы, открывающиеся в подокне, можно присоединить к графику, перетаскивая их на график с указанием в "Параметрах" значения "Применить к" First Indicator's Data. При отсутствии другого индикатора, открытого заранее, источником данных будет сам график. Индикаторы, к которым можно применить такой прием:
Commodity Channel Index
Momentum
Relative Strength Index
Standard
Deviation
10. Загрузка полной истории котировок.
Многим трейдерам требуется продолжительная история котировок для работы с тестером стратегий или для экспорта в другие программы анализа. Для загрузки полной истории котировок необходимо сделать следующее:
1. Увеличить максимальное количество баров в настройках графиков
(Сервис->Настройки->Графики, параметр "Макс.баров в истории") из расчета,
что один день равен 1440 минут.
2. Зайти в Сервис-->Архив котировок (F2),
выбрать интересующий инструмент, далее:
a) выбрать интересующий Вас
инструмент двойным щелчком левой кнопки мыши, нажать "Загрузить".
В
результате MetaTrader4 загружает историю минутных котировок из архива данных
компании-разработчика MetaQuotes Software Corp* и преобразует ее во все
таймфреймы.
б) выбрать интересующий Вас таймфрейм двойным щелчком мыши на
строчку таймфрейма в списке.
После этого будет загружена история по
выбранному таймфрейму.
*Примечание: архив котировок MetaQuotes один для всех пользователей МТ4, при этом следует учитывать, что содержащияся в нем история котировок может не полностью соответствовать данным Вашего ДЦ. Кроме того, в архиве могут отсутствовать данные по некоторым символам, котируемым Вашим ДЦ.
11. Экспорт графических построений с одного ПК на другой ПК (КПК, смартфон).
Возможно экспортировать графические построения (уровни, трендовые линии и пр.) из Метатрейдера, установленного на одном компьютере, на другой ПК, КПК, смартфон. Поскольку линейные объекты сохраняются в шаблонах, достаточно перенести tpl файл сохраненного шаблона из каталога MetaTrader4\templates в аналогичный каталог на другом устройстве.
МТ4 позволяет отслеживать суммарную экспозицию, профит-лосс и
средневзвешенную цену входа по всем позициям, открытым по тому или иному
символу, с помощью пользовательского индикатора iExposure, что особенно удобно
при наличии многочисленных позиций по разным инструментам.
Достаточно
набросить iExposure на график из списка "Пользовательские индикаторы" окна
"Навигатор" (CTRL+N).
В результате в окне графика появится таблица, в
которой будет отображаться в реальном времени суммарная экспозиция по каждому
символу, по которому имеются позиции.
Symbol - символ;
Deals - суммарное количество открытых позиций по
символу;
Buy lots - суммарный объем позиций на покупку по символу;
Buy
Price - средневзвешенная цена открытия позиций на покупку;
Sell Lots -
суммарный объем позиций на продажу по символу;
Sell Price - средневзвешенная
цена открытия позиций на продажу;
Net Lots - суммарная позиция по символу;
Profit - суммарный профит-лосс по символу.
Примечание:
Изменения
текущих позиций отображаются iExposure со следующим тиком соответствующего
символа.
6. Создание собственного шаблона по умолчанию.
1. Цветовую схему по умолчанию для графиков и индикаторов можно изменить,
создав собственную схему через меню Графики->Свойства->Общие (клавиша F8),
и сохранив эту схему через меню Графики->Шаблон->Сохранить шаблон,
сохранив эту схему под именем default.tpl
Сохраненный шаблон default.tpl
будет применяться ко всем вновь открываемым графикам.
2. Для изменения шаблона по умолчанию для графиков, открываемых автономно
(Файл->Открыть автономно), необходимо сохранить шаблон offline.tpl
3. Для
изменения шаблона по умолчанию для графиков, открываемых через "Тестер
стратегий" (CTRL+R), необходимо сохранить шаблон tester.tpl
В шаблонах
сохраняется:
-цветовая схема графика;
-масштаб графика, задаваемый опциями Zoom
In\Zoom Out;
-тип графика (свечи, бары, линия);
-прикрепленные
индикаторы и советники с их настройками;
-наличие\отсутствие строчки OHLC;
-разделители временных периодов;
-геометрические объекты (линии и т.п.).
7. Просмотр спецификаций контрактов.
Основные спецификации символов можно узнать непостредственно в терминале,
открыв свойства символа (правый щелчок на "Обзор
рынка"->"Символы"->выбираем символ->"Свойства").
В окне
спецификаций отображается:
-Спред (в пунктах);
-Точность (знаков после
точки);
-Уровень стопов (в пунктах, это минимальная дистанция установки
ордеров от текущей цены);
-Тип исполнения отложенных ордеров:
1) GTC -
действительные до отмены;
2) внутридневные, включая SL\TP;
3)
внутридневные, исключая SL\TP;
-Размер контракта (в базовых единицах);
-Способ вычисления прибыли:
1) Forex, CFD=[(close_price -
open_price)*contract_size*lots]
2) Futures=[(close_price -
open_price)*tick_price/tick_size*lots]
-Тип свопа:
1) в пунктах;
2)
в базовой валюте инструмента;
3) в процентах;
4) в расчетной валюте
маржи;
-Своп длинных позиций;
-Своп коротких позиций;
-Способ
вычисления маржи:
1) Forex=[lots*contract_size/leverage]
2)
CFD=[lots*contract_size*market_price*leverage]
3)
Futures=[lots*initial_margin]
-Хеджированная маржа (в базовых единицах);
-Начальная маржа и поддерживающая маржа (для фьючерсов, в USD).
8. Часто используемые индикаторы, советники и скрипты
можно добавить в "Избранное" через контекстное меню индикаторов в окне "Навигатор" (CTRL+N), а также назначить им горячие клавиши для быстрого набрасывания на график ("Установить горячую клавишу").
1. Быстрая навигация по графикам.
Строка быстрой навигации открывается нажатием клавиши Enter или пробел, а
также двойным щелчком мыши в левый нижний угол графика (на крайнюю дату).
Необходимо предварительно отключить автопрокрутку графика.
Форматы ввода:
1) время (часы:минуты), например: 13:30
2) дата,
например: 22.11.2007
3) дата и время, например: 22.11.2007 13:30
4)
символ, например: USDJPY
5) таймфрейм, например: M1
6) символ и
таймфрейм, например: USDJPY,M1
Для выполнения команды нажмите клавишу Enter, для отмены - Esc.
2. Отображение истории счета на графике.
Терминал позволяет отображать в наглядном виде закрытые позиции и удаленные
отложенные ордера на графиках путем простого перетаскивания их в окно графика из
"Истории счета".
При перетаскивании ордера на график другого символа график
переключается на символ ордера.
Если при перетаскивании удерживать клавишу
Shift, отобразятся все позиции во символу ордера, отображаемые в "Истории
счета".
3. Полезные команды:
CTRL+Z - отмена удаления объекта с графика;
CTRL+F - вызов объекта
"Перекрестие";
F12 - побарная прокрутка графика вперед.
F11 - выход в
полноэкранный режим;
F10 - вызов окна котировок; через команду "Всегда
сверху" в контекстном меню это окно закрепляется поверх всех окон, что позволяет
следить за котировками, работая в других приложениях.
Двойной щелчок левой
кнопкой мыши на поле заголовка окна "Термнал" минимизирует это окно до строки
состояния счета (баланс, прибыль, средства, свободно, уровень). Разворачивается
окно тем же способом.
4. Экранная линейка.
Вызовите "Перекрестие" (CTRL+F), выберите левой кнопкой мыши первую точку, и, не отпуская кнопку, переведите курсор ко второй точке. Цифровой измеритель около курсора покажет количество баров/расстояние в пипсах/цену бид в точке нахождения курсора.
Лучшие брокеры |
Поиск |
Журнал | ||||
|
Календарь | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Форма входа |
Статистика |
Наш выбор брокеров |
|
Форекс обзор |
VPS/VDS для ФОРЕКС |
ТОРГОВЫЕ СЕССИИ |
котировки |