Скачать MetaTrader 5

Мультиваютный эксперт

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
myworkrunet
20
myworkrunet  
Всем доброе время суток! Подскажите пожалуйста, как сделать чтобы в советники условие if(OrdersTotal()<1) проверялось только по определённой валютной паре, допустим EURUSD? Никак не могу разобраться...
PapaYozh
3768
PapaYozh  
myforexwork:
Всем доброе время суток! Подскажите пожалуйста, как сделать чтобы в советники условие if(OrdersTotal()<1) проверялось только по определённой валютной паре, допустим EURUSD? Никак не могу разобраться...


Никак.

Надо перебирать открытые ордера и проверять OrderSymbol()

myworkrunet
20
myworkrunet  
PapaYozh:


Никак.

Надо перебирать открытые ордера и проверять OrderSymbol()

Благодарю за столь быстрый ответ:)

for(int i= OrdersTotal()-1; i>= 0 ; i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES)

if(OrderSymbol() == Symbol())

Что то типа того? Помогите разобраться, что дальше? Т.е. мне надо, чтобы была проверка есть ли открытый ордер по данному символу, если нет, то разрешить открывать ордер.

PapaYozh
3768
PapaYozh  
myforexwork:

Благодарю за столь быстрый ответ:)

for(int i= OrdersTotal()-1; i>= 0 ; i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES)

if(OrderSymbol() == Symbol())

Что то типа того? Помогите разобраться, что дальше? Т.е. мне надо, чтобы была проверка есть ли открытый ордер по данному символу, если нет, то разрешить открывать ордер.


bool fl=false;
for( int i= OrdersTotal()-1; i>=0; i-- )
{
  if ( OrderSelect(i, SELECT_BY_POS, MODE_TRADES) )
    if( OrderSymbol() == Symbol() )
    {
      fl=true;
      break;
    }
}

if ( !fl )
{ // нет ни открытых, ни отложенных по текущему символу ордеров
  // ...
}
myworkrunet
20
myworkrunet  
PapaYozh Спасибо! Сейчас попробую:)
myworkrunet
20
myworkrunet  
Ммм..Теперь возник ещё один вопрос... Возможно ли открывать сделки с одной программы по нескольким валютным парам?
Yury Reshetov
13471
Yury Reshetov  
myforexwork:
Ммм..Теперь возник ещё один вопрос... Возможно ли открывать сделки с одной программы по нескольким валютным парам?
Возможно, но не в тестере.
myworkrunet
20
myworkrunet  
Reshetov:
Возможно, но не в тестере.

Т.е. если в тестере выдаёт ошибку unknown symbol name AUDUSD допустим, можно не обращать внимание, если код верный, по сути сделки открываться будут? Спасибо.
Leonid Borsky
2382
Leonid Borsky  

myforexwork:
Всем доброе время суток! Подскажите пожалуйста, как сделать чтобы в советники условие if(OrdersTotal()<1) проверялось только по определённой валютной паре, допустим EURUSD? Никак не могу разобраться...

... Возможно ли открывать сделки с одной программы по нескольким валютным парам?


Всё же можно. Без всяких if(OrdersTotal()<1)

А Используя, к примеру функции И.Кима https://www.mql5.com/ru/forum/131859

Напр. https://www.mql5.com/ru/forum/131859/page3#434221 (располагаем код этой функции вне функции СТАРТ):

А далее, по каждой паре для открытия позиций в коде сначала задаем условие:

if (NumberOfPositions(EURUSD,OP_SELL,MagicNumber)<1 ) {//если нет поз.селл EURUSD

открываем ........

Leonid Borsky
2382
Leonid Borsky  
myforexwork:

Т.е. если в тестере выдаёт ошибку unknown symbol name AUDUSD допустим, можно не обращать внимание, если код верный, по сути сделки открываться будут? Спасибо.

Да - в тестере МТ4 будет открываться только текущий, заданный символ. Но в онлайне - при правильно написанном коде - все валютные пары, предусмотренные кодом советника.
myworkrunet
20
myworkrunet  
leonid553:

Да - в тестере МТ4 будет открываться только текущий, заданный символ. Но в онлайне - при правильно написанном коде - все валютные пары, предусмотренные кодом советника.

Спасибо большое за помощь leonid553! Полезная информация! Буду разбираться:)
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий