Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А есть ли в языке mql5 возможность отследить состояние открытой позиции, что к примеру ее сейчас закрывают?
...Но тут приходит следующий тик, повторяются все вышеперечисленные шаги, выбор позиции сделается, объем возьмется и поставится ЕЩЕ ОДНА позиция в направлении закрытия.
Что можно сделать, чтоб такого избежать?
Ничего не надо делать. Пока текущий тик не обработан функцией OnTick(), все вновь пришедшие тики пропускаются.
Что происходит с позицией в реальном времени, можно отследить, используя функцию обработки торговых событий OnTrade().
Ничего не надо делать. Пока текущий тик не обработан функцией OnTick(), все вновь пришедшие тики пропускаются.
Что происходит с позицией в реальном времени, можно отследить, используя функцию обработки торговых событий OnTrade().
Если б не асинхронность выполнения запроса, все было бы хорошо. А так, по приходу тика закрыл позицию, по приходу следующего они еще в списке, и как понять - открыты они, открываются или закрываются? Обрабатывать торговые события? Имхо, не должна быть базовая операция настолько замороченной..
Идеально, при попытки закрытия позиции, она приобретает статус "Закрывается" или "обрабатывается" или еще какой, по которому можно определить, что в данный момент она в процессе какого-то действия, тогда ее можно с чистой совестью оставить в покое.
А сейчас - перевороши кучу истории, пойми, что да как происходило, и не факт что все правильно будет, и это на каждом тике..
Если б не асинхронность выполнения запроса, все было бы хорошо. А так, по приходу тика закрыл позицию, по приходу следующего они еще в списке, и как понять - открыты они, открываются или закрываются? Обрабатывать торговые события? Имхо, не должна быть базовая операция настолько замороченной..
Идеально, при попытки закрытия позиции, она приобретает статус "Закрывается" или "обрабатывается" или еще какой, по которому можно определить, что в данный момент она в процессе какого-то действия, тогда ее можно с чистой совестью оставить в покое.
А сейчас - перевороши кучу истории, пойми, что да как происходило, и не факт что все правильно будет, и это на каждом тике..
А что.. Кто-т скажет, что НьюБар - эт не событие???)))))))))
ОнНьюс - пришли новости - бот должен с ними ознакомиться.. Официально.. А не тыркать чрез WinAPI по-левому..
1.НьюБар - Событие, которое можно реализовать самостоятельно. Скорей всего это и посоветуют. Я вон как-то по поводу Коннекта обращался, ответ был прост - Реализовывать следует самостоятельно.
Проблем нет - реализовал, да так увлекся что сейчас почти все все что мне нужно через таймер отслеживаю (уже порядка 30 событий есть). Когда закончу пользователь любой из интересующих меня параметров не сможет изменить, так чтобы эксперт об этом не узнал.
2. ОнНьюс - Идея в общем понятная, можно было бы присоединится. Хотя разработчики скорей всего укажут на наличие News.wav.
Хотя вот я вот давно добиваюсь от разработчиков расширения функционала языка за счет возможности работы с календарем экономических новостей и прочем ФА. Думаете сделают все как надо? Сомневаюсь я что-то.
Вот и заявку уж послал в какой раз по этому поводу, надежда ведь пока жива. Приятно будет если эксперт самостоятельно выполнит определенную работу...
Если б не асинхронность выполнения запроса, все было бы хорошо. А так, по приходу тика закрыл позицию, по приходу следующего они еще в списке, и как понять - открыты они, открываются или закрываются? Обрабатывать торговые события? Имхо, не должна быть базовая операция настолько замороченной..
Идеально, при попытки закрытия позиции, она приобретает статус "Закрывается" или "обрабатывается" или еще какой, по которому можно определить, что в данный момент она в процессе какого-то действия, тогда ее можно с чистой совестью оставить в покое.
А сейчас - перевороши кучу истории, пойми, что да как происходило, и не факт что все правильно будет, и это на каждом тике..
Да и сейчас это с легкостью делается, если конечно УМЕЛО все делать. Разработчики обещали переписать OnTrade(), добавить туда необходимые параметры. если сделают будет еще проще обрабатывать.
Никто не мешает обрабатывать подобные ситуации на месте, в OnTick() или OnTime() - по месту проведения торговой операции; либо в OnTrade(), если необходимо отловить действия пользователя или торговые операции не контролируемые на прямую из кода.
1.НьюБар - Событие, которое можно реализовать самостоятельно. Скорей всего это и посоветуют. Я вон как-то по поводу Коннекта обращался, ответ был прост - Реализовывать следует самостоятельно.
...Немного не дообъяснил, как я вижу OnNewBar..))
OnNewBar(ulong Param), где Param - побитово заполняется 1 в позициях таймфреймов с новым баром.. - Не все ж чарты обновляются одновременно по количеству баров..
Например ..
...00001 - обновилась только минутка
...00111 - обновились только минутка, 2 и 3.. ну и тд..
Чисто, идея - но, думаю, полезная была бы штука.. Хотя..?;)
Немного не дообъяснил, как я вижу OnNewBar..))
OnNewBar(ulong Param), где Param - побитово заполняется 1 в позициях таймфреймов с новым баром.. - Не все ж чарты обновляются одновременно по количеству баров..
Например ..
...00001 - обновилась только минутка
...00111 - обновились только минутка, 2 и 3.. ну и тд..
Чисто, идея - но, думаю, полезная была бы штука.. Хотя..?;)
На счет параметра нужно подумать. А стоит его так делать (может проще ТФ туда пихнуть в виде ENUM_TIMEFRAMES)?
По крайней мере я что-то вроде этого хотел замутить, но потом отказался...
PS
Забыл сказать, OnNewBar я хотел замутить у класса Чарт, над которым сейчас и тружусь усердно (пока правда туда упаковываю стандартные вещи + свои ПРИЯТНЫЕ мелочи).
Только не спрашивайте меня чем это мне стандартный CChart не угодил... :)
кому нужно отслеживать появление нового бара, посмотрите мой код. может пригодиться. я пробовал различные варианты - этот способ самый надежный
https://www.mql5.com/ru/code/107
кому нужно отслеживать появление нового бара, посмотрите мой код. может пригодиться. я пробовал различные варианты - этот способ самый надежный
https://www.mql5.com/ru/code/107
А чем плох вариант с запоминанием и сравнением времени открытия последнего бара по символу-периоду SERIES_LASTBAR_DATE ? Намного проще , чем Ваш вариант и индикатор не нужен.
К тому же , для мультивалютного эксперта надо определять новый бар для каждого символа, значит, надо индикатор для всех символов инициализировать.
кому нужно отслеживать появление нового бара, посмотрите мой код. может пригодиться. я пробовал различные варианты - этот способ самый надежный
https://www.mql5.com/ru/code/107
И опять - код.. код.. Код - это хорошо.. но это ещё и - тактики, циклики.. ;)
Ну неужто в чарт не приходит мессидж о создании нового бара?? Ни в жисть не поверю..)))
А ивент из него слепить - проблемно? а переменную предопределённую хотя бы??
И вообще - события обрабатывать проще, чем наворачивать горы кода.. Да к тому же - с ошибками (ПРОГРАММ же БЕЗ ОШИБОК - НЕ БЫВАЕТ!!!)))))