Как узнать, что отложенный ордер перешёл в состояние позиции? - страница 2

 
Viktar Dzemikhau:

Дело не в провайдере. У меня обычно всё стабильно. Но вот свет может отрубиться. Это как-бы уже сопутствующий риск. Хотя.. нужно проверять. Может и не будет косяка.

По поводу самого стабильного и единственного варианта для 4 я думаю так:

1. При выставлении отложенного ордера всегда записывать их тикет в массив с типом ордера.

2. На каждом тике сверяем, все ли присутствующие отложенные ордер и открытые позиции присутствуют в рынке. Если какого-то нет.. значит он удалён. Удаляем этот тике из массива.

3. На каждом тике проверяем тип соответствующий каждому тикету. Если у какого-то ордера (смотрим по его тикету в массиве) тип изменился с отложеного на рыночный, значит ордер стал отложенным. Значит сработало событие.

Это же самый стабильный способ. Верно? Но вот не самый удобный. Вот это как-бы мне не нравится. Мне нравится красивый чёткий и краткий код, без лишних строк. А здесь вместо несколько строк, получается их пачка... ((

По поводу отключения электричества, ну... для этого есть бесперебойники. А если отключат на долго, ничего не поможет.

А об удобности, это как диалог о цветах фломастеров. Кому-то нравится зелёный, как доллары. Другой говорит зелёный как стены в психушке. Кому-то нравится голубой, как небо. А третий говорит что этот цвет испоганили... эти...

 
Alexey Viktorov:

По поводу отключения электричества, ну... для этого есть бесперебойники. А если отключат на долго, ничего не поможет.

А об удобности, это как диалог о цветах фломастеров. Кому-то нравится зелёный, как доллары. Другой говорит зелёный как стены в психушке. Кому-то нравится голубой, как небо. А третий говорит что этот цвет испоганили... эти...

У меня есть иногда прерывания инета на 1-3 секунды, и это на протяжении нескольких лет. Сменять из-за этого провайдера нет никакого желания.

 
Vitaly Muzichenko:

У меня есть иногда прерывания инета на 1-3 секунды, и это на протяжении нескольких лет. Сменять из-за этого провайдера нет никакого желания.

Такое наблюдается ещё по причине некачественного роутера, или сетевухи. Может есть смысл проверить?

 
Alexey Viktorov:

Такое наблюдается ещё по причине некачественного роутера, или сетевухи. Может есть смысл проверить?

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

 
Alexey Viktorov:

А вот ваших аргументов ЗА ваш способ решения проблемы никто так и не увидел. Одни только минусы варианта который для вас неприемлем.

У меня не аргументы, а конкретный алгоритм https://www.mql5.com/ru/forum/271581/page3#comment_8350596
 
Alexey Viktorov:

в mql5 ничего лучше OnTradeTransaction() не придумаешь.

Узнать тип ордера, что породил позицию, можно всегда через HistoryOrderGetInteger.

Вроде, это лучше OnTrade*.
 
Dmitry Fedoseev:

Можно и красивее, и надежней, и удобней, и проще.

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

Ну я примерно такой вариант и описался выше. На самом деле, это касается не только 4-ки и на 5-ку применять будет не лишних. По крайне мере, от различных факторов случайных можно уберечься..

Alexey Viktorov:

Конечно аргументировано... особенно с учётом того, что в маркете я как-бы попутно. Ничего не подал ещё и не переживаю об этом. Как говорится: "Нежили богато, нехрен начинать." Да и бесплатных продуктов, у меня в маркете, больше чем платных.

На самом деле, не важно. В маркете или не в маркете. Если продавать конченых сов, отзывы будут соответствующие. Поэтому этот аргумент логичный. Я в маркет вообще не сунусь. Желания нет, да и писать так как им нужно не хочется. Использовать dll, как я понял нельзя, закрытые библиотеки нельзя использовать. А продавать все свои нваработки в виде совы, это как-бы дело не благодарное, и не окупит месяцы пахалова.

Alexey Viktorov:

А вот ваших аргументов ЗА ваш способ решения проблемы никто так и не увидел. Одни только минусы варианта который для вас неприемлем.

Тоже верно. Чтобы сказать, что какой-то способ не вариантовый. нужно с чем-то сравнить. Иначе это лишь сплетни.

Alexey Viktorov:

Решение как в mql4 вроде-бы надёжней, на случай прерывания связи с сервером. Но если ордеров и позиций будет много, то тормоз будет приличный. В некоторых моментах возможен и пропуск тика. Так-что этот диалог равносилен диалогу о вкусах фломастеров, на цвет разные, а на вкус все одинаковые.

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

 
Alexey Viktorov:

По поводу отключения электричества, ну... для этого есть бесперебойники. А если отключат на долго, ничего не поможет.

А об удобности, это как диалог о цветах фломастеров. Кому-то нравится зелёный, как доллары. Другой говорит зелёный как стены в психушке. Кому-то нравится голубой, как небо. А третий говорит что этот цвет испоганили... эти...

Бесперебойник у компа, а модем у входа в квартиру. Там тоже бесперебойник ставить дополнительный? Модем может получать новый айпишник. Это ещё, хотя бы, минута. Бывает у оператора связи косяк. Может быть у ДЦ что-то. Это теоритически. Но такое может быть. Тем более, отправка асихнронных запросов не гарантирована. Даже ничего не предъявишь. Если разработчикам по барабану этот момент изначально, то ничего здесь не поделаешь. Можно подумать на мкл будут торговать в асинхронном режиме. Скорости не те.. Этим можно было принебречь. Или доп. интерфейс добавить. Даже типа 1-ый сервер ассинхронный режим, 2-ой сервер - синхроный и т.д. Варианты есть. Но разработчики посчитали, что все важно получить что-то без гарантии. Мне нужна гарантия. Поэтому сегодня напишу модуль для этого. Раньше не было времени и желания. Жара нынче не детская.
 
fxsaber:

Узнать тип ордера, что породил позицию, можно всегда через HistoryOrderGetInteger.

Вроде, это лучше OnTrade*.
Это для 5-ки, а мы в ветке 4-ки. Да и не особо нужно это узнавать. Если сделки. Если она отработала, значит все данные есть. Если не отработала, значит не отработала..) Всё просто.
 
Viktar Dzemikhau:
Бесперебойник у компа, а модем у входа в квартиру. Там тоже бесперебойник ставить дополнительный? Модем может получать новый айпишник. Это ещё, хотя бы, минута. Бывает у оператора связи косяк. Может быть у ДЦ что-то. Это теоритически. Но такое может быть. Тем более, отправка асихнронных запросов не гарантирована. Даже ничего не предъявишь. Если разработчикам по барабану этот момент изначально, то ничего здесь не поделаешь. Можно подумать на мкл будут торговать в асинхронном режиме. Скорости не те.. Этим можно было принебречь. Или доп. интерфейс добавить. Даже типа 1-ый сервер ассинхронный режим, 2-ой сервер - синхроный и т.д. Варианты есть. Но разработчики посчитали, что все важно получить что-то без гарантии. Мне нужна гарантия. Поэтому сегодня напишу модуль для этого. Раньше не было времени и желания. Жара нынче не детская.

Вот опять перечисления минусов МТ и прочих проблем. Вы лучше покажите терминал который при прерывании связи на минуту и больше всё отработает как вы хотите.

Ну ведь не идиоты работают в MQ тем-более на руководящих должностях. Вы думаете они об этом не думали никогда? Видимо нет возможности всё это учесть и всё предугадать. Либо затраты на решение некоторых проблем несоизмеримы с пользой.

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

Причина обращения: