int cbd()
{
double oct=0, a = allprofit()*10;
int j=-1;
for(int i=OrdersTotal()-1;i>=0;i--){
if(a > profit*lot) {
if(OrderType() != OP_BUY || OrderType() != OP_SELL) continue;
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
if(OrderSymbol()!=Symbol())continue;
{
if (oct>OrderProfit()) { oct=OrderProfit(); j=i;}
if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES))
{
if(OrderType() == OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
}
else if (OrderType() == OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
}
}}}}}
return(0);
}
- Помощь в кодировании
- Написание советника помогите разобратся с функциями я только начинаю.
- Как закрыть первый ордер ?
А ошибок никаких?
И зачем два раза OrderSelect?
Ошибок нет.
Второй select для того чтобы
выбирать по наименьшему profit'у
liza:
Возможно это условие if(a > profit*lot) всегда ложно
Ошибок нет.
Второй select для того чтобы
выбирать по наименьшему profit'у
Похоже, что выражение всегда continue.
if(OrderType() != OP_BUY || OrderType() != OP_SELL) continue;
Нет, у меня приутствуют ордера по рынку
Сделайте, так
if(OrderType() == OP_BUY || OrderType() == OP_SELL) {
... остальной код
}
Не работает!
Просто бред како1-то!!!
liza:
Не работает!
Просто бред како1-то!!!
int cbd() { double oct=0, a = allprofit()*10; int j=-1; for(int i=OrdersTotal()-1;i>=0;i--){ if(a > profit*lot) { if(OrderType() != OP_BUY || OrderType() != OP_SELL) continue; <-- А с какими ордерами Вы работаете в этом месте, если Вы выбор ордера делаете ниже ? { <-- Это к чему относится ? Просто интересно зачем ? if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue; <-- Это первый выбор, а до этого с какими ордерами Вы работали ? if(OrderSymbol()!=Symbol())continue; { <-- А Это к чему относится ? Просто интересно зачем ? if (oct>OrderProfit()) { oct=OrderProfit(); j=i;} if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) <-- Чему будет равно j, если условие выше не сработает ? { if(OrderType() == OP_BUY) { OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); } else if (OrderType() == OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); } }}}}} return(0); }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь