Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 827
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте! Помогите пожалуйста с модулем сигналов на закрытие позиций. Что я не так делаю?
Ваш файл - это модуль СИГНАЛОВ. В системе эксперта он встраивается так же как и модуль СИГНАЛОВ ПОЛЬЗОВАТЕЛЬСКОГО индикатора. Другими словами сигналы генерируемые Вашим модулем имеют ВЕС и может случится так, что этого веса не хватит для срабатывания сигнала.
Нужно подумать, как лучше делать закрытие применительно в Вашем случае. Возможно это нужно делать не в модуле сигналов
Ваш файл - это модуль СИГНАЛОВ. В системе эксперта он встраивается так же как и модуль СИГНАЛОВ ПОЛЬЗОВАТЕЛЬСКОГО индикатора. Другими словами сигналы генерируемые Вашим модулем имеют ВЕС и может случится так, что этого веса не хватит для срабатывания сигнала.
Нужно подумать, как лучше делать закрытие применительно в Вашем случае. Возможно это нужно делать не в модуле сигналов
Хотелось бы в виде модуля сигналов, что бы через генератор советников собирать можно было. В момент, когда должен срабатывать данный модуль, LongCondition() и ShortCondition() во втором модуле советника возвращают нулевые значения - то есть вес=0, я правильно понимаю? Соответственно вес сигнала данного модуля должен перевесить, но он не срабатывает. В CheckCloseLong() и CheckCloseShort() я вставил строки Print("-------------"); и Print(time_GMT_DST()); которые, при нормальной работе модуля, должны делать соответствующие записи в журнал при поступлении каждого тика, я правильно понимаю? Записи не делаются, CheckCloseLong() и CheckCloseShort() не вызываются. В чем подвох?
Я конечно топорно объясняю, но я только учусьХотелось бы в виде модуля сигналов, что бы через генератор советников собирать можно было. В момент, когда должен срабатывать данный модуль, LongCondition() и ShortCondition() во втором модуле советника возвращают нулевые значения - то есть вес=0, я правильно понимаю? Соответственно вес сигнала данного модуля должен перевесить, но он не срабатывает. В CheckCloseLong() и CheckCloseShort() я вставил строки Print("-------------"); и Print(time_GMT_DST()); которые, при нормальной работе модуля, должны делать соответствующие записи в журнал при поступлении каждого тика, я правильно понимаю? Записи не делаются, CheckCloseLong() и CheckCloseShort() не вызываются. В чем подвох?
Я конечно топорно объясняю, но я только учусьИспользуйте методы
вместо своих CheckCloseLong и CheckCloseShort.
Спасибо.
Здравствуйте, подскажите, как сделать счетчик убыточных сделок?
Советник анализирует последнюю сделку на истории - если она убыточна, то добавляет +1 к переменной, которая и будет являться количеством подряд убыточных сделок.
Как только прибыльная сделка наступает - переменную нужно обнулить.
Здравствуйте, подскажите, как сделать счетчик убыточных сделок?
Советник анализирует последнюю сделку на истории - если она убыточна, то добавляет +1 к переменной, которая и будет являться количеством подряд убыточных сделок.
Как только прибыльная сделка наступает - переменную нужно обнулить.
Можно отказаться от работы с торговой историей и работать только в OnTradeTransaction() - там ловить сделку с типом "OUT" - то есть это и будет закрытие позиции. Как только такая сделка нашлась - определяем была она прибыльной или убыточной. Соответственно счётчик "losses" сбрасываем или увеличиваем.
А проверку в торговой истории делать в OnInit() - один раз при старте советника.Всем привет,
Не подскажите как можно программно очистить журнал экспертов перед выводом в него информацию :?
Только через Win API?
Спасибо!
Всем привет,
Не подскажите как можно программно очистить журнал экспертов перед выводом в него информацию :?
Только через Win API?
Спасибо!
/
/
Пример в коде Stop Loss Take Profit: размер лота хранится (перезаписывается, увеличивается и сбрасывается в минимум) в переменной "ExtLot" объявленной на глобальном программном уровне (в шапке). В OnTradeTransaction() отлавливается сделки с типом "выход из рынка" и проверяется как была закрыта сделка - по Тейк Профит или по Стоп Лосс:
Если по Стоп Лосс то удваиваем лот, если по Тейк Профит - то сбрасываем размер лота в минимальное значение.
Примечание: в самом советнике немного некорректно выполняется расчёт Стоп Лосс и Тейк Профит - но скоро переопубликуется код.