Здравствуйте... не могу найти свою ошибку... может у кого то получится. Огромное спасибо.
Цель просто - закрывать все рыночные ордера при достижении нового плюсового значения евити с шагом в степ.
К примеру по значению еквити 5000 когда доходит до 5001 все закрывается и теперь следующее закрытие будет при значении еквити 5002, а потом при 5003.
Спасибо.
Должно быть сложно ? Или просто тоже пойдет?
Если эквити - баланс > степ Закрываем
Должно быть сложно ? Или просто тоже пойдет?
Если эквити - баланс > 1 закрываем
Может тут true надо а не false?
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) //true??? { //if (OrderSymbol() != Symbol()) continue; if(OrderType()==OP_BUYSTOP ) bool a = OrderDelete (OrderTicket(),CLR_NONE); if(OrderType()==OP_SELLSTOP) bool b = OrderDelete (OrderTicket(),CLR_NONE); if(OrderType()==OP_BUYLIMIT ) bool c = OrderDelete (OrderTicket(),CLR_NONE); if(OrderType()==OP_SELLLIMIT) bool d = OrderDelete (OrderTicket(),CLR_NONE); }
Должно быть сложно ? Или просто тоже пойдет?
Если эквити - баланс > степ Закрываем
Спасибо.
Фишка в том что каждый раз нужно стартовать от пред идущего значения еквити который получился после закрытия все ордеров.
Так не подойдет
Спасибо.
Фишка в том что каждый раз нужно стартовать от пред идущего значения еквити который получился после закрытия все ордеров.
Так не подойдет
Может тут true надо а не false?
После закрытия всех ордеров эквити равен балансу
Если Вы о bool a =
То это для компиляции без предупреждений, так как, данные функции должны быть проверены в процессе исполнения.
Если Вы о bool a =
То это для компиляции без предупреждений, так как, данные функции должны быть проверены в процессе исполнения.
Ну с булом ок, но как насчет того, что весь этот цикл бессмысленный, он просто ничего не делает... Т.е. если ордер не выбран, мы пытаемся его удалить, а как удалить то, чего нет?
for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) { //if (OrderSymbol() != Symbol()) continue; if(OrderType()==OP_BUYSTOP ) bool a = OrderDelete (OrderTicket(),CLR_NONE); if(OrderType()==OP_SELLSTOP) bool b = OrderDelete (OrderTicket(),CLR_NONE); if(OrderType()==OP_BUYLIMIT ) bool c = OrderDelete (OrderTicket(),CLR_NONE); if(OrderType()==OP_SELLLIMIT) bool d = OrderDelete (OrderTicket(),CLR_NONE); } }
Ну с булом ок, но как насчет того, что весь этот цикл бессмысленный, он просто ничего не делает... Т.е. если ордер не выбран, мы пытаемся его удалить, а как удалить то, чего нет?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте... не могу найти свою ошибку... может у кого то получится. Огромное спасибо.
Цель просто - закрывать все рыночные ордера при достижении нового плюсового значения евити с шагом в степ.
К примеру по значению еквити 5000 когда доходит до 5001 все закрывается и теперь следующее закрытие будет при значении еквити 5002, а потом при 5003.
Спасибо.