Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Будут меня многие снова хаять, но остаюсь при своём мнении. Да, я эмоционально высказывался выше, прошу простить, если кого задел...
Зайду издалека.
Представьте себе советский магазин перед открытием, пусть в 9:00 утра. Стоит куча народу, толкается перед входом, жаждет дефицита. Какой-нибудь грузчик, который откроет дверь магазина изнутри ровно в 9:00, рискует быть придавленным входящей толпой. Толпа наконец-то запущена в магазин, и в первые минуты в магазине царит суета, если не сказать хаос. Шум, брань. Бывает, какой-нибудь блатной оказывается в первых рядах покупателей. Тут толпа ещё больше раззадоривает себя и шумит...
Так вот. Сейчас трейдер сидит перед монитором, не видит никакой толпы, всё тихо перед открытием "магазина". Чувство суеты и хаоса его, как советского покупателя, не беспокоят. Но это не отменяет ситуации, когда стартует система биржи, и появляется всплеск заявок. Принцип узкого горлышка не пропадает и остаётся в силе.
Вопрос. Как вы думаете, брокер запускает своих покупателей в магазин случайным образом или по какому-то алгоритму? Мне кажется, что приоритет отдаётся крупным покупателям. С них брокер больше получит в качестве вознаграждения. Ну и вопрос репутации брокера. Недовольство большого покупателя опаснее недовольства мелкого. Т.е. я предполагаю, что заявки крупных клиентов исполняются быстрее на открытии.
Вопрос. Как вы думаете, брокер не понимает, что страдает мелкий покупатель "магазина"? Думаю, конечно понимает. Мы же коллективно выяснили, что "там" не идиоты. Что делать тогда брокеру? Ну наверное как-то минимизировать недовольство мелкого покупателя. А как именно? Отменить заявку нельзя, тогда мелочь скажет: "Как я, многоуважаемый, пусть и небольшой, трейдер, получил от брокера от ворот поворот?" Наверное можно просто придержать заявки мелочёвки в очереди заявок, пока блатные отоварятся... Ну или принять главные заявки – купить или продать, а модификацию попридержать…
А теперь представьте, что на бирже таких брокеров много: суеты в начале сессии ещё больше, чем в одном советском магазине.
Вот такие мысли.
P.S. Все совпадения в моём тексте случайны и носят иллюстративный характер.
Очень много "воды" от того, что Вы не знаете, как устроен шлюз ФОРТС.
Есть ограничения по логину, т.е я могу послать только 30 транзакций в секунду.
Раньше, у Отрывашки было 3 сервера МТ5, а сейчас - 8, а задержки не уменьшились,
а громадно увеличились, но юзеров МТ5 на ФОРТС не стало больше!
Это и будет доказательством, что события не было.
Не будет!
Всё, что делает пользователь - не доказательство, только логи терминала будут являтся доказательством!
Не будет!
Всё, что делает пользователь - не доказательство, только логи терминала будут являтся доказательством!
Но логирование пользователем всех событий в OnTradeTransaction() поможет понять причины.
Но логирование пользователем всех событий в OnTradeTransaction() поможет понять причины.
Прикольно...
У меня 4000 транзакций в день, каждая транзакция минимум 5-6 раз "дёргает" OnTradeTransaction
Кто будет разбираться в этих "портянках" :) Ведь к ним нужны логи и терминала к тому же, плюс логи Сервера МТ5.
Добавлено
Всё работало прекрасно до выхода нового билда.
Да и сейчас работает, но иногда происходят сбои на Серверах Брокера.
Добавлено
При установке, мофицикации и удалении ордера я ему присваиваю состояние (state) и засекаю время установки.
Вот здесь
А в OntradeTransaction этот флаг (ORD_DO_SET) сбрасывается
Таймер (1 сек) проверяет состояние этого ордера, если в OnTradeTransaction ничего не пришло.
И засекает новое время, логируя
Перед тем, как вывести лог, эта функция проверяет что же случилось с ордером
Добавлено
Дело в том, что ещё в позапрошлом году OnTradeTransaction стало ГАРАНТИРОВАННЫМ! :)
скажем так. если событие приходит в терминал, оно гарантированно помещается как OnTradeTransaction в очередь событий. это не означает его гарантированную обработку советником.
вопрос вот по этому:
Длина очереди транзакций составляет 1024 элемента. В случае, если OnTradeTransaction() будет обрабатывать очередную транзакцию слишком долго, старые транзакции в очереди могут быть вытеснены более новыми.
и по очереди событий самого советника. сколько их там может быть и есть ли вытеснение. (если цитата не про советники)
скажем так. если событие приходит в терминал, оно гарантированно помещается как OnTradeTransaction в очередь событий. это не означает его гарантированную обработку советником.
вопрос вот по этому:
и по очереди событий самого советника. сколько их там может быть и есть ли вытеснение. (если цитата не про советники)
Как Вы думаете, это долго?
Как Вы думаете, это долго?
если в очереди событий советника может быть только одно событие OnTradeTransaction (как у таймера) то скорость вашего кода неважна.
если нет, в зависимости от того синхронно или асинхронно вы работаете с ордерами.если в очереди событий советника может быть только одно событие OnTradeTransaction (как у таймера) то скорость вашего кода неважна.
если нет, в зависимости от того синхронно или асинхронно вы работаете с ордерами.Ассинхронно, но их одновременно может быть не более 30
Кстати, а вот ещё (а с 10-10 до 14-00 почему-то всё отлично работало)
2018.02.28 14:07:59.505 Trades 'xxxxx': cancel order #84736275 buy limit 3.00 LKOH-9.18 at 37312 2018.02.28 14:08:09.071 Trades 'xxxxx': accepted cancel order #84736275 buy limit 3.00 LKOH-9.18 at 37312 2018.02.28 14:08:09.107 Trades 'xxxxx': cancel #84736275 buy limit 3.00 LKOH-9.18 at market done in 9602.694 ms 2018.02.28 14:00:32.653 trader (FEES-3.18,M1) CheckTradingTime: Сейчас 2018.02.28 14:00, если есть необходимость, можно закрыть терминал. 2018.02.28 14:08:00.522 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL 2018.02.28 14:08:01.543 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL 2018.02.28 14:08:02.553 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL 2018.02.28 14:08:03.565 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL 2018.02.28 14:08:04.593 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL 2018.02.28 14:08:05.625 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL 2018.02.28 14:08:06.654 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL 2018.02.28 14:08:07.667 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL 2018.02.28 14:08:08.680 trader (LKOH-6.18,M1) ProcessOrders: Билет buy ордера = 84736275 Cост. ордера = ORD_DO_CANCEL
Но здесь дождались ответа сервера :)
А вот Вам не кажется странным, что последний раз я писал здесь
Это апрель 2017 г., вышел новый билд 1571
И, сейчас 1755, только тогда было 2 секунды, а сейчас....
Чего же я тогда молчал столько (а к советникам даже не прикосался ) аж целых 9 месяцев!
Добавлено
Кол-во инструментов на ФОРТС не изменилось, Открывашка добавила 5 новых серверов МТ5,
объёмы торгов уменьшились, а проблема не только осталась, но и "выросла".
Да и сам терминал не отправит более 60 ордеров в секунду