Перейти к содержанию

[open source] [Советник] Новостной советник "SHF-NT"


Рекомендуемые сообщения

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано (изменено)
Название: SHF-NT
Год выпуска: 2015
Версия: 2.0
Таймфрейм: M1
Время торговли: круглосуточно
Валютная пара: Любые
Сайт: Сайта нет, автор я.
Описание:
Работает по известной стратегии для новостей (подробно можно набрать в поисковике "стратегия торговля на новостях"): перед событием устанавливаются 2 отложенных стоповых ордера на покупку и продажу на определенном расстоянии от цены. Расчет на то, что при резком движении откроется ордер в нужном направлении и цена пройдет дальше на импульсе от новостей.
В данном роботе есть дополнительные возможности:
- Можно сделать отложенные ордера на статичными, а "подвижными", т.е. они будут медленно следовать за ценой, пока не произойдёт резкий рывок цены и не сработает ордер в сторону рывка цены.
- Можно везти лог- файл тиков цены, например, смотреть движение цены каждые 2-5 тиков, чтобы иметь возможность посмотреть, как скакала цена и в дальнейшем оптимизировать параметры под конкретные события/новости.

Описание параметров
BaseLot : Базовый лот ордеров;
Lotdecimal : Кол-во десятичных знаков в лоте;
SecondLotK: Коэффициент для лота второго ордера. Можно открывать ордера с разными лотами;
TradeOn : Разрешить или нет торговлю. Если требуется только записать лог-файл с тиками (см далее) без открытия ордеров, можно выставить false;
TakeP, MaxSL : Тейк профит и стоп-лосс. Все пункты здесь «новые».
BreakEvenLevel: уровень в пунктах, при котором ордер будет переведен в безубыток;

sFileName : Имя файла расписания. Робот из этого файла берёт расписание событий, по которым он будет активироваться . Файл по сути текстовый, должен располагаться в папке «папка терминала\MQL4\Files» и далее следует еще папка робота, указанная в параметре «lDirectoryName» . Например, если

lDirectoryName=”Data”, подпапка для файлов робота.Местонахождение файла расписания и лог-фалов. «папка терминала\MQL4\Files\Data».
В случае, если запуск происходит из тестера стратегий, папка, в которой ищется файл будет такой :
«папка терминала\tester\Files\Data». Т.е. при тестах и «боевом» режиме файлы событий лежат в разных папках! Это так у программистов «Metatrader» задумано.
Содержимое в строке файла расписания пишется в таком формате "Символ; yyyy.mm.dd hh:mi"
пример строки с событием : «EUROUSD; 2015.02.22 15:30» На все другие строки, не начинающиеся с названия символа валюты, робот не реагирует, поэтому можно писать свои пояснения. Также в одном файле расписания могут быть собраны все расписания для разных валют, чтобы не создавать для этого робота разных файлов для разных валют. Всё можно разместить в одном.
Пример файла расписаний:
EURUSD;2015.04.29 15:30
GBPUSD;2015.04.29 15:30
EURUSD;2015.05.25 16:30

StartActiveSecBefore : за сколько секунд до события робот перейдёт в активное состояние;
Если установлен параметр записи лог-файла –с этого момента начнёт писаться лог-файл тиков.
ActivePeriodSec: период активности по текущему событию. В период активности, если выставлено указание пишет лог-файл с тиками. Слишком большое время выставлять не желательно, забивает память компьютера логом тиков. Больше 20 минут нет смысла. По истечению этого срока перейдёт в неактивное состояние и в зависимости от расписания, будет ждать следующего события;
Если остался торговаться ордер не закрытый - робот его уже никак не отслеживает.
Send_pendord_Before_Event_Sec: За сколько секунд до события начинать выставлять ордера. На реале проверено - меньше 10 секунд нежелательно, у брокера могут быть «тормоза» и проблемы с выставлением ордеров. Я практиковал где-то секунд 30-20.
Dist_pendord_Price_Buy; Dist_pendord_Price_Sell: дистанция в пунктах отложенных ордеров от тек. Цены.
OrdState – принцип работы с отл. Ордерами. Static – ордера выставлены и не больше не двигаются. Если Moving – то периодически, по истечению времени, указанного в FreezTimeMovingOrdSec ордера передвигаться на расстояние Dist_pendord_Price_ от уже текущей ситуации на рынке. Практикуется такая стратегия, когда вышла новость и ожидается резкий скачок в нужную нам сторону , поэтому ордера «двигаются» за ценой, но при скачке не успевают двинуться и срабатывает нужный ордер. Не всегда такая стратегия срабатывает. Иногда за резким скачком бывает отскок и можно словить наоборот СЛ. Вообщем, тут на выбор 2 варианта действий.
CloseMirrorOrdAfterTrig – закрывать ли противположный ордер, когда сработал один из ордеров. В любом случае при переходе в неактивное состояние все отложенные ордера снимутся.
TrailingStart, TrailingStop, TrailingStep – стандартный трал.

"Сервис ===========================";
CountMin – За какое количество минут хранить в оперативной памяти информации. Осталось пока с прошлой версии. Пока не трогать.
NumTicks - Младший Тф указанный в количестве тиков. В роботе реализован подсчет изменения цены как, в таймфрейме, только отсчитывается таймфрейм не в единицах времени, а в тиках. За каждое кол-во тиков записывается на сколько цена сходила вверх и вниз. Затем, это можно записать в файл и проанализировать.
CountMTF- Сколько данных этих младших ТФ хранить в оперативной памяти DispMTF- можно показывать данные по изменению цен. ТФ на экране.

WriteLog: писать или нет лог файл с тиками и изменением цены. Формат файла «csv» -7 столбцов:
1Время сервера, 2- время локальное на компьютере,3 -Bid текущий, Up- сколько пунктов прошла цена вверх предыдущего установленного количества тиков , Down- сколько пунктов прошла цена вниз с предыдущего установленного количества тиков , ticks – через сколько тиков делать замер (параметр NumTicks), Spred -текущий спрэд брокера.

lFileName - Начальная часть имени файла лога. Потом к имени прибавляется символ валюты, число месяца, номер месяца, час и минута старта расписания. Например, имя лога может иметь вид "SHFTNT2-EURUSD-25-5-15-25.csv" – это значит лог-файл евро, 25 мая, в 15-25 минут стартовал .
lDirectoryName- имя подкаталога для файлов расписания и лог-файлов робота.

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

От себя : Я только изучаю процесс торговли на новостях.
Но кое-какие выводы есть:
-Новости все подряд брать не надо. Надо только самые волатильные.
Лучше брать самые волатильные , например, в пятницу выходят «нонки».
- Брокер и тип счета не всякий подходит для новостей. Спред на волатильных новостях может расширяться раз в 5.
Хороший вариант, например счет с фиксированным спредом. Или вообще, есть счета с нулевым спредом, но с комиссией - по сути это тоже фикс. спред.
Анализ лог-файлов от разных брокеров поможет правильно подобрать брокера и счет.

SHF-NT-v2.mq4

Изменено пользователем Pavel888
  • Лайк 18
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано

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

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано


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


встроить FFcal нужно обязательно - не удобно создавать каждый раз текстовый файл!
  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано


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


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


встроить FFcal нужно обязательно - не удобно создавать каждый раз текстовый файл!


master_ice, скажите, тут рыба-то есть в новостях, стоит "заморачиваться" дальше?
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано



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


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


встроить FFcal нужно обязательно - не удобно создавать каждый раз текстовый файл!


master_ice, скажите, тут рыба-то есть в новостях, стоит "заморачиваться" дальше?

Рыба есть всегда! Тут дело в оснастке и мастерстве рыбака! l-)
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано


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


Это другая крайность - бот начнет срабатывать на новости, которые стоит пропускать.
Такие боты есть, вряд ли стоит делать еще одного.

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

Тогда пользователь смог бы удалить из файла строки с нежелательными новостями и, с минимальными трудозатратами, пользоваться вашим ботом.
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано (изменено)



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


Это другая крайность - бот начнет срабатывать на новости, которые стоит пропускать.
Такие боты есть, вряд ли стоит делать еще одного.

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

Тогда пользователь смог бы удалить из файла строки с нежелательными новостями и, с минимальными трудозатратами, пользоваться вашим ботом.


тогда лучше новости выводить в виде панельки на экран, нажал на новость - она торгуется на данной паре

Добавлено: 03-06-2015 10:03:43


master_ice, скажите, тут рыба-то есть в новостях, стоит "заморачиваться" дальше?



я не мастерайс, конечно, но не зря же в условиях торговли на центовиках, да и на обычных счетах некоторых ДЦ, черным по белому написано - запрещена торговля на новостях и скальпинг ;) Изменено пользователем odin343
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано

Верно! Забыл указать, что нужен еще подходящий водоем (ДЦ) для удачной рыбалки! К счастью такие места еще есть! l-)

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано
odin343, Думаю, что это если и надо, то в последнюю очередь.
Хотя тоже решение - но сложное и только для онлайн торгов лично.

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

Автоматизация же создания файла новостей с возможность выкачивания истории новостей за предыдущие 2-3 года позволит создать бескомпромиссно качественный советник - даже лучший в мире.
Ну а чё - мы ж не пальцем деланные!... :d
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[open source] [Советник] Новостной советник "SHF-NT" Опубликовано


Не совсем понятен параметр SecondLotK. Когда открывается второй ордер ?


Оба отложенных ордера выставляются одновременно - один на бай, другой на селл.
При срабатывании одного из них, второй может быть автоматически удален или не удален. По желанию. Указывается в настройках в параметре "CloseMirrorOrdAfterTrig".

SecondLotK- это коэффициент-множитель для второго лота.
Чтобы была возможность выставлять для ордеров разные лоты.
Например:
если базовый лот= 0,5, а SecondLotK=0,8 , тогда:
Ордер на бай будет выставлен с лотом 0,5.
Ордер на селл будет выставлен 0,5*0,8 = с лотом 0,4 .
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • 3 months later...
[open source] [Советник] Новостной советник "SHF-NT" Опубликовано

Хотелось бы подвести некоторые итоги по этому проекту.

Я его для себя пока (на текущий момент) отложил.

Вообще цель проекта была поизучать особенности сверхвысокочастотной торговли, то как это доступно через МетаТрейдер.
Поскольку есть брокеры с якобы неизменяемым спредом, была идея половить новости.
Вообщем, обнаружил для себя (может кому-то еще пригодиться) пару особенностей:

1. Оказалось у них (на счетах постоянным спредом) на новостях тоже стоит защита от слишком шустрых трейдеров.

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

Например.
Цена перед новостью 1,4990 . Отложка стоит на бай на 1,5000.
В этот момент спред расширяется от нормального раз в 20 и может быть например 60 пунктов.
Идёт движение куда надо и брокер открывает мой ордер не по 1,5000, а по 1,5060 и пишут - мол "сорри, геп. "
Движение кончается, разворачивается и мы имеем не прибыль пунктов в 50, а иногда и убыток.
Звонил в техсуппорт, спрашивал, зачем вы мне ордер этот вообще открыли, если цена его пролетела аж на 50 пунктов - положено, говорят, открыть и всё.
Вообщем, тут "брокеры" явно обманывают.
Причем были случаи, отлавливал в логах от них тики цен,которые позволяли бы им открыть мой ордер по более-менее приличной цене - всё равно, открывали намного хуже.

2. Просто личное наблюдение (статистику точную не собирал).
Перед одной и той же новостью (мониторил нон-фармы) в разных случаях за пол-минуты до выхода спред расширяется по разному.
Может расширится немного, раз в 5 всего, а может и раз в 20. И заметил, чем меньше расширение, тем в последствии меньше движение. Т.е. есть прямая зависимость: размер спреда перед новостью может выступать в роли индикатора, какое движение на новости ожидается.
Логичное предположение такого поведения у меня есть, но не буду вдаваться в подробности.

3. Ну и остались наработки кода по работе с событиями, отслеживание силы движение цены и т.п.

  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...