Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1402
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте,
Я пытаюсь сделать очень простой советник, который сравнивает две цены закрытия и на основе этого открывает ордер на покупку или продажу.
На первом ордере все идет хорошо, но как только условие переключается с продажи на покупку, он выставляет сразу несколько ордеров.
m_trade - это объект Ctrade.
Вы забыли, что время 'startTime' должно быть сброшено.
Вы забыли, что время 'startTime' должно быть сброшено.
Спасибо, Владимир, я постараюсь исправить это, основываясь на вашей подсказке.
Тем не менее, я все еще удивлен. Потому что в операторе if для входа в сделку мы проверяем наличие существующего размещения ордера того же типа. Если это так, то ордер не должен быть размещен. Поэтому я подумал, что с помощью этого оператора можно одновременно ввести только 1 тип ордера.
Является ли эта мысль неверной?
Спасибо, Владимир, я попробую исправить это, основываясь на вашей подсказке.
Тем не менее, я все еще удивлен. Потому что в операторе if для входа в сделку мы проверяем наличие существующего размещения ордера того же типа. Если это так, то ордер не должен быть размещен. Поэтому я подумал, что с помощью этого оператора можно одновременно ввести только 1 тип ордера.
Является ли эта мысль неверной?
Вы никак не контролируете ОРДЕРЫ, вы проверяете номер и тип ПОЗИЦИИ в коде. Кроме того - вы неправильно работаете с ПОЗИЦИЯМИ (ошибка в использовании 'PositionSelect(_Symbol)', если тип вашего счета - хеджирование). В вашем алгоритме есть серьезные ошибки проектирования.
Что вы должны сделать:
1. Работать ИСКЛЮЧИТЕЛЬНО в момент рождения нового бара. Если нового бара нет - ничего не делайте, не совершайте лишних движений.
2. Этот пункт будет раскрыт после выполнения пункта 1.
Здравствуйте. Не подскажите Comment в void OnTick() может замедлять работу советника. Поставил в int OnInit() намного быстрее работает.
Да, в МТ5 он значительно замедляет работу.
В OnInit он отрабатывает только 1 раз при инициализации и больше не работает.
Вы говорите о функции Comment()?
Если да, то это очевидно. В OnInit() комментарий будет обновляться только один раз, а в OnTick() комментарий может обновляться при каждом тике.
Решение состоит в том, чтобы обновлять комментарий только тогда, когда это необходимо. Если он статический, то обновлять его только в OnInit() и очищать в OnDeinit(), а если динамический, то в OnTick() обновлять комментарий только тогда, когда его нужно изменить.
EDIT: Это сообщение было первоначально сделано на английском форуме.
всем доброго времени суток.
у меня вопрос
как составить запрос к sqlite что выбрать строку по тикету.
структура бд такая:
symbol-text
ticket - text
pirce- real
s_l - real
t_p - real
нужно получить всю строку по ticket в структуру