Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, onewithzachy,
Во-первых, я думаю, что у вас есть небольшая ошибка:
for(int cnt = OrdersTotal() -1 ; cnt >= 0; cnt--)
Вы должны добавить зеленую и жирную коррекцию.
Но я не понимаю, как следующая строка может нам помочь?
#include "..\libraries\stdlib.mq4"
Спасибо, Y.
Вы правы с подсчетом, однако, если мы напишем так, как я написал, OrderSelect() вернет false, а цикл for продолжит следующий подсчет.
Это включение выведет ошибку в этом коде ...
... чтобы мы знали, почему ваш советник не закрывает ордера :(.
Вы также можете написать этот include следующим образом ...
#include <stdlib.mqh>
Пример есть в папке скриптов MetaEditor под названием trade.mq4.
Я полагаю, вы знаете, куда поместить include, верно? Поместите его поверх вашего советника (так же, как глобальную переменную или так же, как trade.mq4).
stdlib.mq4 находится в MetaEditor > Navigator Window (Ctrl + D) > вкладка files > папка libraries > stdlib.mq4.
Надеюсь, вы не возражаете, что я так подробно рассказал, потому что я не знаю, знаете ли вы уже или не знаете :)
Вы правы с подсчетом, однако, если мы напишем так, как я написал, OrderSelect() вернет false, и цикл for продолжит следующий подсчет.
Этот цикл выведет ошибку в этом коде...
... чтобы мы знали, почему ваш советник не закрывает ордера :(.
Вы также можете написать этот include следующим образом ...
Пример есть в папке скриптов MetaEditor под названием trade.mq4.
Я полагаю, вы знаете, куда поместить include, верно? Поместите его поверх вашего советника (так же, как глобальную переменную или так же, как trade.mq4).
stdlib.mq4 находится в MetaEditor > Navigator Window (Ctrl + D) > вкладка files > папка libraries > stdlib.mq4.
Надеюсь, вы не возражаете, что я так подробно рассказал, потому что я не знаю, знаете ли вы уже или не знаете :)
Спасибо, onewithzachy,
Я сделал так, как вы посоветовали, и жду правильной оценки. Я буду обновлять.
Спасибо, onewithzachy,
Я сделал, как вы посоветовали, и жду правильной оценки. Я буду обновлять.
Mmm...., я не большой поклонник обратного тестирования, однако, RaptorUK предложил в другой теме(нажмите здесь), что мы можем отладить наш код, используя обратное тестирование.
Советник многопарный, поэтому бэктестинг невозможен.
В любом случае, я могу получить соответствующую ситуацию очень быстро. Я уже получил результаты. Я буду обновлять.
Спасибо
Советник является многопарным, поэтому бэктестинг невозможен.
Спасибо, Раптор,
Я заметил, что ORDERSELECT является bool переменной, и иногда MT4 не удается
сделать это. Из-за этого onewithzachy рекомендовал сделать это:
for(int cnt=0; cnt<OrdersTotal(); cnt++)
{
if(OrderSelect (cnt,SELECT_BY_POS,MODE_TRADES) == true &&
OrderSymbol()==Pair &&
OrderType()==OP_BUY)
{
// код для закрытия
}
}
Мой вопрос: если ORDERSELECT ложный, как я могу сделать LOOP "cnt" снова, без пропусков...?
Надеюсь, вы меня поняли.
Y.
Спасибо, Раптор,
Я заметил, что ORDERSELECT является bool переменной, и иногда MT4 не удается
сделать это. Из-за этого onewithzachy рекомендовал сделать это:
for(int cnt=0; cnt<OrdersTotal(); cnt++ )
Мой вопрос: если ORDERSELECT ложный, как я могу сделать LOOP "cnt" снова, без пропусков...?
Надеюсь, вы меня поняли.
Y.
Если вы закрываете ордера, вы ДОЛЖНЫ вести обратный отсчет... НЕ вверх.
Извините, Raptor, я просто сделал Copy_paste из предыдущего сообщения, но я изменил его в своем коде.
В любом случае, есть ли у вас идеи по поводу моего предварительного вопроса?
Извините, Raptor, я просто сделал Copy_paste из предыдущего сообщения, но я изменил его в своем коде.
В любом случае, есть ли у вас какие-нибудь идеи по поводу моего предварительного вопроса?
Покажите свой код, и я смогу высказать свое мнение.
Rap, Это 4016 строк кода....
В любом случае, мой вопрос технический. Когда-то я изучал FORTRAN, и там у вас были номера для нужных строк кода, так что вы могли сделать
"GO to 120", и код снова переходил к этой строке.
Здесь, если Orderselect равен FALSE, как советник может вернуться к строке кода: for(int cnt=OrdersTotal(); cnt > 0; cnt-- )
????