Скачать MetaTrader 5

Проблема с экспертами на билде 201

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114283
Forex Trader  
Прочитал в описании к билду
2. Исправлено открытие ордеров экспертными советниками в режиме исполнения "Market execution";


Не знаю, с этим связаны, проблемы, или нет, но у меня все эксперты (включая стандартный пример MACD Sample) перестали открывать позиции. Т.е. вызов функции OrderSend(...) не отрабатывает, ордер не исполняется. Ранее все работало. Написал элементарный пример советника - то же не работает. Подскажите, плз, возможно появились какие-то дополнительные настройки, или формат вызова поменялся???

Вот, пример простого советника, который не работает (в настройках советнику торговать конечно же разрешено)
int orderNum;
int init()
  {
   orderNum = -1;
   return(0);
  }

int deinit()
  {
   return(0);
  }

int start()
  {
   if( orderNum < 0 )
     orderNum = OrderSend( OP_BUY, 1.00, Ask, 10, 0, 0, 0, 0, Red );
   else
     {
      OrderSelect( orderNum, SELECT_BY_TICKET, MODE_TRADES );
      OrderClose( OrderTicket(), OrderLots(), Bid, 10, Violet);
     }
   return(0);
  }



Буду благодарен любому совету.

Forex Trader
114283
Forex Trader  
Видимо просто неправильная запись команды OrderSend (пропущен первый параметр названия инструмента). Почитайте справку:

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
Основная функция, используемая для открытия позиции или установки отложенного ордера.
Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Замечания.
При открытии рыночного ордера (OP_SELL или OP_BUY) в качестве цены открытия могут использоваться только самые последние цены Bid (для продажи) или Ask (для покупки). Если операция проводится по финансовому инструменту, отличному от текущего, то для получения последних котировок по этому инструменту необходимо воспользоваться функцией MarketInfo() с параметром MODE_BID или MODE_ASK. Нельзя использовать расчетную либо ненормализованную цену. Если запрашиваемой цены открытия не было в ценовом потоке либо запрашиваемая цена не нормализована в соответствии с количеством знаков после десятичной точки, то будет сгенерирована ошибка 129 (ERR_INVALID_PRICE). Если запрашиваемая цена открытия сильно устарела, то независимо от значения параметра slippage будет сгенерирована ошибка 138 (ERR_REQUOTE). Если же запрашиваемая цена устарела, но ещё присутствует в ценовом потоке, то позиция открывается по текущей цене и только в том случае, если текущая цена попадает в диапазон price+-slippage.

Цены StopLoss и TakeProfit не могут располагаться слишком близко к рынку. Минимальное расстояние стопов в пунктах можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).

При установке отложенного ордера цена открытия не может быть слишком близкой к рынку. Минимальное расстояние отложенной цены от текущей рыночной цены в пунктах также можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае неправильной цены открытия отложенного ордера будет сгенерирована ошибка 130 (ERR_INVALID_STOPS).

На некоторых торговых серверах может быть установлен запрет на применение срока истечения отложенных ордеров. В этом случае при попытке задать ненулевое значение в параметре expiration будет сгенерирована ошибка 147 (ERR_TRADE_EXPIRATION_DENIED).

На некоторых торговых серверах может быть установлен лимит на общее количество открытых и отложенных ордеров. При превышении этого лимита новая позиция открыта не будет (отложенный ордер не будет установлен), и торговый сервер вернет ошибку 148 (ERR_TRADE_TOO_MANY_ORDERS).
Параметры:
symbol - Наименование финансового инструмента, с которым проводится торговая операция.
cmd - Торговая операция. Может быть любым из значений торговых операций.
volume - Количество лотов.
price - Цена открытия.
slippage - Максимально допустимое отклонение цены для рыночных ордеров (ордеров на покупку или продажу).
stoploss - Цена закрытия позиции при достижении уровня убыточности (0 в случае отсутствия уровня убыточности).
takeprofit - Цена закрытия позиции при достижении уровня прибыльности (0 в случае отсутствия уровня прибыльности).
comment - Текст комментария ордера. Последняя часть комментария может быть изменена торговым сервером.
magic - Магическое число ордера. Может использоваться как определяемый пользователем идентификатор.
expiration - Срок истечения отложенного ордера.
arrow_color - Цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике.

Пример:
int ticket;
if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
{
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError());
return(0);
}
}
Forex Trader
114283
Forex Trader  
Огромное спасибо за ответ!!!

Подскажите еще, пожалуйста, где можно скачать актуальную документацию??? А то, так которой я пользуюсь, мягко говоря устарела...
Вот описание из моей документации
OrderSend()

Описание:
Main function used to open a position or set a pending order. Returns ticket of the placed order or -1 if failed.

Тип возвращаемого значения:
int

Синтаксис:
OrderSend(int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment, int magic, datetime expiration, color arrow_color)

Пример:
if(iRSI(NULL,0,14,PRICE_CLOSE,0) < 25)
{
OrderSend(OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green);
return(0);
}

Forex Trader
114283
Forex Trader  
Скачайте последний билд, там будет много нового.
Forex Trader
114283
Forex Trader  
Если у вас установлена самая свежая версия терминала, но вы всё равно не знаете где найти актуальную документацию по MQL4, то вот здесь есть подсказка:
http://www.alpari-idc.ru/ru/experts/articles/1.html
Forex Trader
114283
Forex Trader  
Скачайте последний билд, там будет много нового


Билд-то я скачал, но документации по MQL4 там нет. Нашел ее в виде on-line версии на сайте mql4.com, но до этого я пользовался документациуй в chm-формате. Ее мне найти к сожадению не удалось. На сайте metaquotes лежит таковая для mql2, а по 4 что-то не видно...
Forex Trader
114283
Forex Trader  

Билд-то я скачал, но документации по MQL4 там нет.

Как это нет? У всех есть, а у вас нет?
Откройте MetaEditor и нажмите Ctrl+F1 (я вам ссылку давал вверху с примерно с этой же подсказкой)
и появится справка в полном объёме в нижнем окошке.
Forex Trader
114283
Forex Trader  
Большое спасибо!!!

Свой пост я отправил не успев прочитать Ваш
Слишком медленно пишу :)))
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий