MQL4 - automated forex trading   /  

Форум

Одновременная торговля одним экспертом на нескольких парах.

К списку тем Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
50
CTPAYC 27.04.2006 21:24 
Здррасте.
Что нужно знать и на что обращать внимание, для того, чтобы торговать на одном счёте, одним экспертом, запущеным на нескольких парах.
Например эксперт открывает только одну позицию посредством проверки if(OrdersTotal()<1). Это значит, что он откроет только одну позицию на ВСЕ пары?
Как корректно использовать мейджики для такой торговли?
Спасибо.

Увеличьте эффективность групповой работы

Поставьте TeamWox и увеличьте эффективность групповой работы в вашей компании. TeamWox позволяет хранить всю рабочую информацию в одном месте: письма, документы, файлы, платежи и история сообщений в чате. Так решается проблема сохранности данных и удобной групповой работы с ними.


avatar
8628
Integer 27.04.2006 21:32 
мейджики нужны если на одном символе несколько совтников, а если на символ по одному, то достаточно сравнивать Symbol() и OrderSymbol(). Ну и каждый советник должен свои ордера считать - если Symbol()==OrderSymbol() и если мейджики используются то приподсчете ордеров и их проверять.

avatar
50
CTPAYC 27.04.2006 21:35 
ок... как насчёт OrdersTotal()? Как бы так, чтобы ограничивался одним ордером на пару, а не одним ордером вообще?

avatar
14054
komposter 27.04.2006 22:04 
CTPAYC:
ок... как насчёт OrdersTotal()? Как бы так, чтобы ограничивался одним ордером на пару, а не одним ордером вообще?
Ответ - выше =)
В цикле проверять все ордера, и если есть ордер с OrderSymbol() == Symbol(), считать что открытая позиция есть. Иначе - считать, что нету.
Примерно так:
int _OrdersTotal = OrdersTotal(), _GetLastError = 0; for ( int z = _OrdersTotal - 1; z >= 0; z -- ) { if ( !OrderSelect( z, SELECT_BY_POS ) ) { _GetLastError = GetLastError(); Print( "OrderSelect( ", z, ", SELECT_BY_POS ) - Error #", _GetLastError ); continue; } if ( OrderSymbol() == Symbol() ) { return(-1); } }

avatar
50
CTPAYC 02.05.2006 19:32 

Концепция торговли одним экспертом на разных парах во имя снижения рисков себя не оправдала, ибо в подавляющем большинстве случаев они движутся параллельно :о(

Если надо торговать одним экспертом на одной паре, но на разных тайм-фреймах? Мейджики? Или можно что-нибудь другое посравнивать?


avatar
1272
RickD 04.05.2006 00:48 

Все просто.

Symbol() - разделяет торгуемые символы.

Для дополнительного разделения ордеров в рамках одного или нескольких экспертов можно использовать Magic.

Так что таймфрейм можно просто вписывать вместо параметра Magic.

Тогда узнать, есть ли такой ордер с таким символом и относящийся к такому то таймфрейму можно так

int GetOrder(string symbol, int period) {
  int cnt = OrdersTotal();  for (int i=0; i < cnt; i++) {
    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if (OrderSymbol() != symbol) continue; if (OrderMagicNumber() != period) continue;
    return (OrderSymbol());
  }
  return (-1); }


К списку тем  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий