Переход позиций через 0:00 при работе банком. Как идентифицировать? Нужна помощь зала. - страница 7
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну, вощем, ни кто, ни куда не тыкнул.
Пришлось изобретать самому.
Итак.
В 23:50, если эксперт работает по open или close, перехожу на обработку каждого тика.
Если эксперт работает по тикам, то никуда переходить не нужно.))))
При первом проходящем тике после 23:50 принудительно закрываю позицию.
(Пытался сделать закрытие не в 23:50, а по позже, но нарвался на случай, когда поставил закрытие на 23:56, а от 23:56 до 00:00 не пришло ни одного тика.
Включился rollover и дальше всё пошло прахом!... На всякий раз взял с запасом 23:50 - уж за 10 минут хоть один тик, да и придет!)
При этом запоминаю все параметры позиции - была позиция buy или sell, стоплосс, тейкпрофит и проч....
До 00:00 делаю запрет на открытие позиций.
После 00:00 на первом проходящем тике принудительно открываю позицию в том же направлении, что и была, со всеми атрибутами закрытой в 23:00 позиции.
Таким образом обхожу rollover.
Как правило теряю поболе чем на rollover, но зато имею нормальное продолжение позиции.
Другого придумать не смог....
Единственная заморочка в пятницу, поскольку в понедельник рынок открывается в 01:00.
Но решил не открывать позицию ночью в понедельник, т.к. часто происходят разные "катаклизмы" - гепы, развороты и прочая хрень.
В пятницу, просто, закрываю позицию и всё. Аналогично поступаю и в разные нерабочие праздники.
PS. Считаю отсутствие передачи данных позиции при rollover жульничеством. Буду разбираться через АФД. Еслив чё, можно и Центробанк жалобу накатать.
А они там форексников не сильно жалуют.
Сохраняется только направление и размер лота. Больше ничего.
что возвращает?
PositionGetInteger(POSITION_IDENTIFIER), как и положено, возвращает номер тикета.
Новый номер тикета, который возник в результате rollover, а не той позиции, которая была до rollover....
А вот после rollover, в новой позиции, оказывается m_position.Magic()=0. Соответственно в эксперте ничего не работает....
Наверное, как-то можно запихнуть Magic через модификацию в новую позицию и туда же запихнуть всё остальное от старой позиции.
Но я сделал, как написал выше. Но еще подумаю на эту тему.
Бесит, что ПСБ со своей платформой так жульничает.
И, насколько я понял, не они одни...
Удивляет молчание трейдеров! Все, что ли, торгуют только интрадей или пипсуют?
Ну, не идти же торговать в какую-нибудь кухню, типа "альпарей", когда есть лицензированные российские брокеры....Попробовал вставить в OnTick конструкцию
if(m_position.Magic() == 0) m_trade.SetExpertMagicNumber( EA_Magic );
Конструкция не работает.
Похоже на открытой позиции Magic не изменить никак....
Так что, то что я сделал и описал выше, похоже единственный вариант.
Попробовал вставить в OnTick конструкцию
if(m_position.Magic() == 0) m_trade.SetExpertMagicNumber( EA_Magic );
Конструкция не работает.
Похоже на открытой позиции Magic не изменить никак....
Так что, то что я сделал и описал выше, похоже единственный вариант.
Для организации повторного старта после сбоев пишем всю необходимую информацию в отдельный файл (ну не люблю я глобальные переменные терминала).
А если эксперт работает на разных машинах, то файл с собой таскать?
А если эксперт работает на разных машинах, то файл с собой таскать?
Ftp, cloud - как вариант.
Зачем все эти заморочки, если есть Magic? В большинстве случаев его хватает за глаза. По крайней мере, мне удавалось упаковывать в него:
Зачем все эти заморочки, если есть Magic? В большинстве случаев его хватает за глаза. По крайней мере, мне удавалось упаковывать в него:
Вот Вы сами и ответили - с ограничениями, которые как раз в этой ветке и обсуждаются. Плюсы обертки:
Вся радость в том, что при проверке, проверяется рыночное состояние позиции и корректируются поля класса, при этом мы не перебираем позиции, обработчик торговых функций - метод класса. А как восстанавливаться после сбоев - так никто не запрещает и магик использовать, просто, при такой реализации можно и в бинарник спокойно всю историю запаковывать, формат только разработать.
По поводу работы роботов с общими ордерами на разных рабочих местах - а смысл? Кроме головняков с синхронизацией ничего больше на ум не приходит. Прикинь - на одном рабочем месте робот отдает команду на закрытие позиции, а на другом робот принимает торговое решение, исходя из того, что конкретно эта позиция открыта, как это засинхронизировать?