Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1208
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да без разницы. У меня возникло подозрение в разнице, потому что я при выставлении ордеров и позиций присваивал им "коменты" для позиций свои, для ордеров свои. В результате когда ордер переходит в позицию он наследует коментарий ордера.
Потом при проверке позиций через комментарии возникла путаница... комментарии то у них разные получились. Ну это я поправил.
У Вас в коде, я вообще не нашёл или не понял, как закрываются позиции для условия сработал SELL_LIMIT. по Эквити.
Вроде бы выполнено проверка на возможность закрытие всех позиций и установлен по ней флаг
но в блоке CloseAllPositions();
отсутствует что то типа.
По которому нужно закрыть все позиции для случая - сработал сработал SELL_LIMIT
Возможно у Вас это же m_account.Equity()>= m_account.Balance()+15 реализовано как то иначе?
Или оно у Вас действительно не выполняется? Быть может из-за того что я не так объяснил что такое усреднение в моём понимании.
Я уже выше обратил Ваше внимание - отложенные ордера вообще не причём. Не может быть у отложенного ордера прибыль. От слова "совсем". Пока это не проясните, дальше двигаться нельзя.
Добавлено: я показал пример решения для двух случаев:
Я уже выше обратил Ваше внимание - отложенные ордера вообще не причём. Не может быть у отложенного ордера прибыль. От слова "совсем". Пока это не проясните, дальше двигаться нельзя
Владимир. Ну конечно у отложенного ордера не может быть прибыли. Речь о прибыли конечно об открытых позициях.
Только есть разница в том как были открыты эти позиции. Метод закрытия для них нам нужен разный.
Если вторая позиция открылась от отл. ордера SELL_STOP, то одна из них должна быть закрыта, та у которой профит позиции больше. Это у Вас получилось и работает.
Если вторая позиция открылась от отл. ордера SELL_LIMIT, то они обе должны быть закрыты по Эквити (m_account.Equity()>= m_account.Balance()+15) Если SL одной из них не сработает раньше.
Добавлено.
я показал пример решения для двух случаев:
Вроде бы всё нормально по второму условию. Но почему то у меня у меня на втором условии открывает вторую позицию и закрывает её сразу близко к 0 -1,2.
Быть может я не там указываю суммарную прибыль?
InpProfitTarget = 15; Если здесь, то это не срабатывает.
Владимир. Ну конечно у отложенного ордера не может быть прибыли. Речь о прибыли конечно об открытых позициях.
Только есть разница в том как были открыты эти позиции. Метод закрытия для них нам нужен разный.
Если вторая позиция открылась от отл. ордера SELL_STOP, то одна из них должна быть закрыта, та у которой профит позиции больше. Это у Вас получилось и работает.
Если вторая позиция открылась от отл. ордера SELL_LIMIT, то они обе должны быть закрыты по Эквити (m_account.Equity()>= m_account.Balance()+15) Если SL одной из них не сработает раньше.
Извините:
я показал пример решения для двух случаев:
Дальше пожалуйста сами хоть что то сделайте.
Извините:
я показал пример решения для двух случаев:
Дальше пожалуйста сами хоть что то сделайте.
Спасибо за помощь Владимир, я пытаюсь.
2.Имеем более двух позиций - если их суммарная прибыль больше заданной - закрываем все позиции.
Но мне было нужно не это, а двух и более позиций, где вторая из них была открыта через срабатывание SELL_LIMIT.
Всё равно спасибо за терпение и труд. Решу я конечно, как нибудь по своему, помучаюсь и решу)))
Добрый вечер,ребята, чтоб не плодить темы - вопрос такой - выставлен скриптом отложенный стоп-ордер с вполне определенным тейком и стопом, он не исполняется, а в комментах прописывается [illiquidity] - как бороться - зациклить скрипт до исполнения,установить бОльшее проскальзывание, или прописать количество повторных запросов или что ? Или ткните носом тему где рыть.
Рыть надо всегда в документации
ORDER_TIME_GTC
Ордер будет находится в очереди до тех пор, пока не будет снят
Рыть надо всегда в документации
ORDER_TIME_GTC
Ордер будет находится в очереди до тех пор, пока не будет снят
Вот спасибо, наверное это самое оно
Добрый вечер!
Есть 1 открытая позиция.
Советник закрывает позицию методом PositionClose();
Принтуется результат ResultRetcode= 10009. Code description: done at 0.00
Ниже по коду расположена проверка if(PositionSelect(_Symbol)), которая блин успешно проходится.
Т.е. между выполнением PositionClose() и исчезновением открытой позиции проходит некоторое время за которое программа успевает свернуть не туда.
Как грамотно разрешить данное обстоятельство?
Почему приходится каждый раз перезапускать терминал после тестирования для запуска нового теста?
Все объекты удаляю. Файлы закрываю. Вот лог при остановке тестирования:
А в следующий раз уже не запускается - приходится закрывать терминал и открывать снова. Билд 2361.