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


Никак.

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

myworkrunet
20
myworkrunet 2012.07.19 04:51  
PapaYozh:


Никак.

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

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

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

if(OrderSymbol() == Symbol())

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

PapaYozh
3768
PapaYozh 2012.07.19 04:56  
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 2012.07.19 05:09  
PapaYozh Спасибо! Сейчас попробую:)
myworkrunet
20
myworkrunet 2012.07.19 18:39  
Ммм..Теперь возник ещё один вопрос... Возможно ли открывать сделки с одной программы по нескольким валютным парам?
Yury Reshetov
13496
Yury Reshetov 2012.07.19 18:46  
myforexwork:
Ммм..Теперь возник ещё один вопрос... Возможно ли открывать сделки с одной программы по нескольким валютным парам?
Возможно, но не в тестере.
myworkrunet
20
myworkrunet 2012.07.19 18:56  
Reshetov:
Возможно, но не в тестере.

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

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
2374
Leonid Borsky 2012.07.19 19:39  
myforexwork:

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

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

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

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