Советник, который я написал три месяца назад, сейчас не может пройти тестирование стратегии, но два или три месяца назад он работал отлично!!!

 
Советник, который я написал три месяца назад, сейчас не может пройти тест, но раньше он хорошо работал на сервере MetaQuotes-Demo. Есть ли кто-нибудь, кто столкнулся с такой же проблемой? Код ошибки всегда такой: "failed instant sell 0.10 EURUSD at 1.38103 sl: 1.38253 tp: 1.38053 [Invalid request]" и "OrderSend failed with error #4756".Моя версия 5.00 Build 540. Помогите, я совсем запутался.
-----------------------------------------------------------------------------------
if (condition1)
{
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol = _Symbol;
sell.deviation = 0;
sell.price = NormalizeDouble(mtick.bid,_Digits);
sell.volume = 0.1;
sell.tp = NormalizeDouble(sell.price - mtp*_Point,_Digits);
sell.sl = NormalizeDouble(sell.price + msl*_Point,_Digits);
sell.type_filling = ORDER_FILLING_AON;
if(OrderSend(sell,result_sell)==false)
{
Print("OrderSend failed with error #",GetLastError());
ResetLastError();
}
}
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Попробуйте добавить ZeroMemory(sell).

if (condition1)
{
ZeroMemory(sell);
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol = _Symbol; 
Мы исправили эту проблему, подождите следующего билда, пожалуйста.
 
Rosh:

Попробуйте добавить ZeroMemory(sell).

Мы исправили эту проблему, подождите, пожалуйста, следующего билда.

Рош, только что обновился до .565 и получил то же сообщение #4756.

ZeroMemory(struct) помогает. Так это исправлено или еще нет?

Спасибо

 
Rosh:

Попробуйте добавить ZeroMemory(sell).

Мы исправили эту проблему, подождите следующего билда, пожалуйста.

У меня такая же ошибка, хотя я следовал точному пути составления ордера. Как так? Я использую билд 597.

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 Alert: The Buy order request could not be completed -error:4756

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 failed market buy 0.10 EURUSD sl: 1.32438 tp: 1.33738 [Unsupported filling mode]

if(Buy_Condition_3 && Buy_Condition_4)

{

// есть ли открытая позиция на покупку?

if(Buy_opened)

{

Alert("У нас уже есть позиция на покупку!!!");

return; // Не открывать новую позицию на покупку.

}

ZeroMemory(mrequest);

mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение ордера

mrequest.type = ORDER_TYPE_BUY; // Ордер на покупку

mrequest.symbol = _Symbol; // валютная пара

mrequest.отклонение=0; // Отклонение от текущей цены

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // последняя цена спроса

mrequest.volume = Lot; // количество лотов для торговли

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // тейк-профит

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Стоп-лосс

mrequest.type_filling = ORDER_FILLING_AON; // Тип исполнения ордера

//--- отправить ордер

OrderSend(mrequest,mresult);

// получаем код результата

if(mresult.retcode==10009 || mresult.retcode==10008) //Запрос выполнен или заказ размещен

{

Alert("Заказ на покупку был успешно размещен с Ticket#:",mresult.order,"!!!");

}

else

{

Alert("Запрос на покупку ордера не удалось завершить - ошибка:",GetLastError());

ResetLastError();

return;

}

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Я заметил, что в справочнике MQL5 (последняя версия, которая только сегодня обновилась) больше нет ORDER_FILLING_AON, но даже если я использую ORDER_FILLING_FOK, я все равно сталкиваюсь с ошибкой 4756. Пожалуйста, подскажите.

ENUM_ORDER_TYPE_FILLING

Идентификатор

Описание

ORDER_FILLING_FOK

Сделка может быть исполнена исключительно с указанным объемом по цене равной или лучшей, чем указанная цена ордера. Если на символ ордера нет достаточного объема предложений, ордер не будет исполнен. Этот тип заполнения используется в режимах исполнения SYMBOL_TRADE_EXECUTION_INSTANT илиSYMBOL_TRADE_EXECUTION_REQUEST.

ORDER_FILLING_IOC

Соглашение о совершении сделки с максимальным рыночным объемом по цене равной или лучшей, чем указанная в ордере цена. В этом случае дополнительный ордер на незаполненный объем не будет размещен. Данный тип заполнения используется в режимах исполнения SYMBOL_TRADE_EXECUTION_MARKET иSYMBOL_TRADE_EXECUTION_EXCHANGE в зависимости от настроек символа на торговом сервере.

ВОЗВРАТ_ЗАПОЛНЕНИЯ_ОРДЕРА

Соглашение о совершении сделки с максимальным рыночным объемом по цене равной или лучшей, чем указанная в ордере цена. В этом случае будет размещен дополнительный ордер на незаполненный объем. Этот тип заполнения используется только для отложенных ордеров (TRADE_ACTION_PENDING).

 
Здравствуйте, есть какие-нибудь комментарии, прежде чем я откажусь от MT5 и вернусь к MT4? Большое спасибо! На самом деле я новичок в обоих, но сначала я бы попробовал MT5, хотя я знаю, что он очень новый.
 
lingwuchung:
Привет, есть какие-нибудь комментарии, прежде чем я откажусь от MT5 и вернусь к MT4? Большое спасибо! На самом деле я новичок в обоих, но сначала я бы попробовал MT5, хотя я знаю, что он очень новый.

Добавьте это перед запросом mrequest:

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 

У меня была точно такая же проблема, как у вас, и это решило ее для меня.

 

У меня сейчас та же проблема.

Мои советники работали очень хорошо. Но теперь все они не могут пройти тестер.

Когда я компилирую файл, появляется следующее сообщение:

'ORDER_FILLING_AON' - undeclared identifier

Как можно решить эту проблему?

Является ли это результатом обновления терминала? (Версия 5.00 Build 642)

(24 апреля 2012)

Надеюсь, кто-нибудь сможет мне помочь

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 
lamme.vandriel:

Когда я компилирую файл, появляется следующее сообщение:

'ORDER_FILLING_AON' - undeclared identifier

Как можно решить эту проблему?

Замените ORDER_FILLING_AON на ORDER_FILLING_FOK (см. свойства заказа)

 
JohnnyDoe:

Добавьте это перед запросом mrequest:

У меня была точно такая же проблема, как у вас, и это помогло мне ее решить.

Здравствуйте, я добавил эти 2 строки в код, но ошибка 4756 все еще здесь (ошибка отправки торгового запроса).

Не могли бы вы уточнить, где именно я должен добавить эти 2 строки? Та, что касается mrequest, уже присутствует. Добавление обеих ничего не меняет. Спасибо за помощь, буду признателен.

Я использую rel.5 build 842.

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 
 
Vivaldi:

Здравствуйте, я добавил эти 2 строки в код, но ошибка 4756 все еще здесь (Сбой отправки торгового запроса).

Не могли бы вы уточнить, где именно я должен добавить эти 2 строки? Та, что касается mrequest, уже присутствует. Добавление обеих ничего не меняет. Спасибо за помощь, буду признателен.

Я использую rel.5 build 842.

Покажите ваш код, чтобы мы могли сказать вам, куда добавить эту строку.