Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ок, если у Вас такое видение, но буду Вас переубеждать.
Вы не путайте интерфейс и остальные потоки в процессе. Это такое видение у МС, я только излагаю, как могу))
Вы не путайте интерфейс и остальные потоки в процессе. Это такое видение у МС, я только излагаю, как могу))
Дмитрий, привыкли MQLлить, и сами все путаете, я вообще интерфейса не касался :)
MSDN
https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-sleep
Ясно написано
" Suspends the execution of the current thread until the time-out interval elapses. " - приостанавливает текущий поток
Я приостанавливаю поток до поступления события, которое не важно где произошло, эвенты специально созданы для управления и синхронизации потоков.
Но если Вам "милее" Sleep() - пользуйтесь на здоровье им.Всем спасибо.
"Допилил" все же Классику под Квик (значительно меньше на нем финансовые издержки)
Результат, пока, совсем маленький (были потери из-за отладки на реале, в Джуниоре невозможно было отлаживать), но теперь, все работает как хотелось.
Даже в отладке, зарплата получилась совсем не плохая :)
А я не сказал, что вешает процессор, я писал "вешает процесс"...
Допустим, мы сказали Sleep(10), а команда пришла через 1 единицу, т.е 9 единиц времени мы просто теряем.
Насколько я понимаю, Sleep() надо вызывать тогда, когда процесс должен быть приостановлен. Как ж можно одновременно "приостановить" и при этом "не вешать" процесс???
Sleep() - это правильный штатный способ приостановить выполнение текущего процесса (как правило, для того, чтобы остальные процессы успели что-то сделать). Как может за это время прийти команда для этого процесса? Для выполнения команды он не должен быть остановлен, а должен ожидать выполнения команды, и должен быть готовым к ее выполнению.
Мне кажется, что ваш спор возник именно потому, что Sleep() применяется не по делу. Если процесс выполнил все команды, и ждёт очередную - ему Sleep() не нужен, он и так в ожидании.
Если же мы должны немедленно обработать какое-то событие - для этого Sleep() не годится.
А вобще, чтобы понять, разумно ли применение Sleep() - надо глядеть на конкретный кусок кода.
Насколько я понимаю, Sleep() надо вызывать тогда, когда процесс должен быть приостановлен. Как ж можно одновременно "приостановить" и при этом "не вешать" процесс???
Sleep() - это правильный штатный способ приостановить выполнение текущего процесса (как правило, для того, чтобы остальные процессы успели что-то сделать). Как может за это время прийти команда для этого процесса? Для выполнения команды он не должен быть остановлен, а должен ожидать выполнения команды, и должен быть готовым к ее выполнению.
Мне кажется, что ваш спор возник именно потому, что Sleep() применяется не по делу. Если процесс выполнил все команды, и ждёт очередную - ему Sleep() не нужен, он и так в ожидании.
Если же мы должны немедленно обработать какое-то событие - для этого Sleep() не годится.
А вобще, чтобы понять, разумно ли применение Sleep() - надо глядеть на конкретный кусок кода.
Разница между Sleep и Event заключается в том, что Sleep останавливает трэд на определенное время, тогда как Event ждет какого-то события (как водопроводный кран).
Применяя Event, Вы точно уверены, что трэд не будет "стоять" лишнее время.
В MQl нет Event
Кусок кода без Event здесь https://www.mql5.com/ru/forum/434155/page3#comment_42564782
Я добавил Event
Всем спасибо.
"Допилил" все же Классику под Квик (значительно меньше на нем финансовые издержки)
Результат, пока, совсем маленький (были потери из-за отладки на реале, в Джуниоре невозможно было отлаживать), но теперь, все работает как хотелось.
Даже в отладке, зарплата получилась совсем не плохая :)
Здравствуйте. Как это на классическом арбитраже у вас получилось 5 процентов за месяц?
Здравствуйте. Как это на классическом арбитраже у вас получилось 5 процентов за месяц?
Я не объясняю как я лично торгую, только общие принципы.
Если бы я не занимался отладкой программы (что привело к просадкам), то было бы в 1,5-2 раза больше
Я не объясняю как я лично торгую, только общие принципы.
Таки да, но всегда думал, что прибыль примерно = ставке цб. Здесь же за месяц 5 проц. Подумал может не верно понял доходность.
Таки да, но всегда думал, что прибыль примерно = ставке цб. Здесь же за месяц 5 проц. Подумал может не верно понял доходность.
Нет, правильно поняли, именно 5,32% за месяц.
Добавлено
Руками и близко к этому проценту не заработаешь.
Разница между Sleep и Event заключается в том, что Sleep останавливает трэд на определенное время, тогда как Event ждет какого-то события (как водопроводный кран).
Применяя Event, Вы точно уверены, что трэд не будет "стоять" лишнее время.
В MQl нет Event
Кусок кода с Event здесь https://www.mql5.com/ru/forum/434155/page3#comment_42564782
Я добавил Event
у меня эта реализация что-бы не попасть на открытие 2 одинаковой позиции, таймаут что-бы позиция появилась в МТ,
проверка как видно идет только по определенному символу в массиве, по остальным символам продолжается работа
--
вообще много всего обновляется именно после отправки ордера, это очень удобно для периодических расчетов, не тормозит расчеты, не нужно грузить таймерами или новом баре или вообще на каждом тике...