Советник, который я написал три месяца назад, сейчас не может пройти тестирование стратегии, но два или три месяца назад он работал отлично!!!
Попробуйте добавить ZeroMemory(sell).
if (condition1) { ZeroMemory(sell); sell.action = TRADE_ACTION_DEAL; sell.type = ORDER_TYPE_SELL; sell.symbol = _Symbol;Мы исправили эту проблему, подождите следующего билда, пожалуйста.
Попробуйте добавить ZeroMemory(sell).
Мы исправили эту проблему, подождите, пожалуйста, следующего билда.Рош, только что обновился до .565 и получил то же сообщение #4756.
ZeroMemory(struct) помогает. Так это исправлено или еще нет?
Спасибо
Попробуйте добавить 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;
}
- www.mql5.com
Я заметил, что в справочнике MQL5 (последняя версия, которая только сегодня обновилась) больше нет ORDER_FILLING_AON, но даже если я использую ORDER_FILLING_FOK, я все равно сталкиваюсь с ошибкой 4756. Пожалуйста, подскажите.
Идентификатор | Описание |
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, хотя я знаю, что он очень новый.
Добавьте это перед запросом mrequest:
ZeroMemory(mrequest); ZeroMemory(mresult);
У меня была точно такая же проблема, как у вас, и это решило ее для меня.
У меня сейчас та же проблема.
Мои советники работали очень хорошо. Но теперь все они не могут пройти тестер.
Когда я компилирую файл, появляется следующее сообщение:
'ORDER_FILLING_AON' - undeclared identifier
Как можно решить эту проблему?
Является ли это результатом обновления терминала? (Версия 5.00 Build 642)
(24 апреля 2012)
Надеюсь, кто-нибудь сможет мне помочь
- www.mql5.com
Когда я компилирую файл, появляется следующее сообщение:
'ORDER_FILLING_AON' - undeclared identifier
Как можно решить эту проблему?
Замените ORDER_FILLING_AON на ORDER_FILLING_FOK (см. свойства заказа)
Добавьте это перед запросом mrequest:
У меня была точно такая же проблема, как у вас, и это помогло мне ее решить.
Здравствуйте, я добавил эти 2 строки в код, но ошибка 4756 все еще здесь (ошибка отправки торгового запроса).
Не могли бы вы уточнить, где именно я должен добавить эти 2 строки? Та, что касается mrequest, уже присутствует. Добавление обеих ничего не меняет. Спасибо за помощь, буду признателен.
Я использую rel.5 build 842.
ZeroMemory(mrequest); ZeroMemory(mresult);
Здравствуйте, я добавил эти 2 строки в код, но ошибка 4756 все еще здесь (Сбой отправки торгового запроса).
Не могли бы вы уточнить, где именно я должен добавить эти 2 строки? Та, что касается mrequest, уже присутствует. Добавление обеих ничего не меняет. Спасибо за помощь, буду признателен.
Я использую rel.5 build 842.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
-----------------------------------------------------------------------------------
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();
}
}