Пишу код для того чтобы в моем советнике не открывалось ордеров больше 5шт допустим, никак не могу записать это в коде.
Вот что смог написать только. Если кто может поделитесь что не так делаю.
Вот для ордеров, а это для позиций. Можно использовать функцией, а можно просто выдернуть нужный код.
После этого проверять количество, и если больше пяти - ничего не делаем
что-то делаем
}
{
int cnt=0;
//----
for(int pos=OrdersTotal()-1;pos>=0;pos--)
if(OrderSelect(pos,SELECT_BY_POS)==true)
if(OrderMagicNumber()==Magic)
if(OrderSymbol()==_Symbol)
if(OrderType()==order_type
|| order_type==-1)
cnt++;
//----
return(cnt);
}
Вот для ордеров, а это для позиций. Можно использовать функцией, а можно просто выдернуть нужный код.
После этого проверять количество, и если больше пяти - ничего не делаем
что-то делаем
}
спасибо, буду пробовать.
А как написть условие ничего чтобы если условие соблюдается не делал советник?
спасибо, буду пробовать.
А как написть условие ничего чтобы если условие соблюдается не делал советник?
Ну каким нибудь return или else
Например так, но вариантов много:
extern int MaxOrders = 3;
void start() {
// учет ордеров _______________
double buy_orders = 0;
double sell_orders = 0;
for(i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {
if(OrderType()==OP_BUY) {buy_orders++;}
if(OrderType()==OP_SELL) {sell_orders++; }
}
//------------------|
if (buy_orders<MaxOrders) // в рынке максимум 3 ордера бай может быть
SendOrder(OP_BUY, -, -, -, -, -, -, Blue);
if (sell_orders<MaxOrders) // И в рынке максимум 3 ордера селл может быть
SendOrder(OP_SELL, -, -, -, -, -, -, Red);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//<<<<<<<<<<<<<<<<<<<<< ИЛИ <<<<<<<<<<<<<<<<<<<<<<<<<<<
extern int MaxOrders = 3;
void start() {
// учет ордеров _______________
double Orders = 0;
for(i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {
Orders++;
}
//---------- в рынке только 3 ордера максимум может быть------------//
if (Orders<MaxOrders)
SendOrder(OP_BUY, -, -, -, -, -, -, Blue);
if (Orders<MaxOrders)
SendOrder(OP_SELL, -, -, -, -, -, -, Red);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пишу код для того чтобы в моем советнике не открывалось ордеров больше 5шт допустим, никак не могу записать это в коде.
Вот что смог написать только. Если кто может поделитесь что не так делаю.
// Блок определения кол-ва ордеров разного типа
for(int i=OrdersTotal(); i<=5; i++)
if(OrderSelect(i,SELECT_BY_POS))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==Magik)
{
if(OrderType()==OP_BUY);
if(OrderType()==OP_SELL);
}
}