Примерно. Но если будешь закрывать позиции, то лучше делать на уменьшение цикл.
Не только закрывать, но и модифицировать.. Вариант на уменьшение
for(int i=OrdersTotal()-1;i>=0;i--)//Цикл по всем ордерам,..{//отражённым в терминалеif(OrderSelect(i,SELECT_BY_POS)==true){if(OrderSymbol()==Symbol()){if(OrderType()==OP_BUY){...}else{...}}}}//Конец тела цикла
Или так:
int start(){int i;for(i=OrdersTotal()-1;i>=0;i--){if(CheckOrder(i)){...// обработка ордера}}bool CheckOrder(int lnPos){if(!OrderSelect(lnPos,SELECT_BY_POS))return(false);if(!(OrderSymbol()==Symbol()))return(false);return(true);}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Примерно. Но если будешь закрывать позиции, то лучше делать на уменьшение цикл.
Не только закрывать, но и модифицировать.. Вариант на уменьшение
Или так:
Вопрос закрыт?
Последний вариант с логической функцией интересен.. Правильно или нет?
MagicNumber убрал, т.к. ТФ не меняю..
помогите скодом, хочу нанесколько пар ...если так то открывает до бесконечности.если с ОрдерсТотал то одну на весь терминал.
for (int i=1; i<=OrdersTotal(); i++) //Цикл по всем ордерам,..
{ //отражённым в терминале
if(OrderSelect(i-1,SELECT_BY_POS)==true)//Если есть следующий
{
if(OrderSymbol()==Symbol())
{
}
}
}
if (OrderType()==OP_BUY)
// total=OrdersTotal();
// if(total<1)
//--- check for long position (BUY) possibility
// if(MaPrevious>MaPrevious1&&open1>close1&& MacdCurrent<0
// && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious )
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point ,Ask+TakeProfit*Point,"macd sample",Magic,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
}
else
Print("Error opening BUY order : ",GetLastError());
return;
}
//--- check for short position (SELL) possibility
if(MaPrevious<MaPrevious6)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"macd sample",Magic,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice());
}
else
Print("Error opening SELL order : ",GetLastError());
}
{
//----
}
//--- exit from the "no opened orders" block
return;