Никакие доводы не помогут. Я тоже проходил эту процедуру. У них нет понимания, что в mql4 нет таких функций которые есть в mql5. Ответ один: "Ошибок не должно быть..." и всё тут...
Правда у меня советник мартин и лот там был далеко не 0.02 и следовательно проверка AccountFreeMarginCheck() помогла.
Видимо самый надёжный вариант, в данном случае, проверку делать с лотом (лот+минимальный_лот) или действительно торговать меньшим лотом.
У меня в МТ5 такая же ситуация. При срабатывании отложника и открытии позиции, тестер-терминал с матюками удаляет ордер.
Прописал удаление одного ордера при открытии позиции, но по стратегии происходит модификация ордеров и случаются два ордера по одной цене, и советник уже не может удалить второй ордер, т к он уже на сервере.
У меня в МТ5 такая же ситуация. При срабатывании отложника и открытии позиции, тестер-терминал с матюками удаляет ордер.
Прописал удаление одного ордера при открытии позиции, но по стратегии происходит модификация ордеров и случаются два ордера по одной цене, и советник уже не может удалить второй ордер, т к он уже на сервере.
Самое простое это не допускать постановку двух ордеров по одной цене. А уж если так задумано по стратегии, проверять достаточность средств с учётом двух ордеров по одной цене. Да и проверку надо делать не только перед размещением ордера, но и при модификации.
Да и проверку надо делать не только перед размещением ордера, но и при модификации.
Так и поступаю.
Пользуюсь такой функцией проверки маржи. А как, учитывать два ордера? lots * 2 ?
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+ bool CheckMoneyForTrade(string symb,double lots,double price,ENUM_ORDER_TYPE type)
{
//--- значения необходимой и свободной маржиdouble margin,free_margin=AccountInfoDouble(ACCOUNT_MARGIN_FREE);
//--- вызовем функцию проверкиif(!OrderCalcMargin(type,symb,lots,price,margin))
{
//--- что-то пошло не так, сообщим и вернем falsePrint("Error in ",__FUNCTION__," code=",GetLastError());
return(false);
}
//--- если не хватает средств на проведение операцииif(margin>free_margin-margin)
{
//--- сообщим об ошибке и вернем falsePrint("Not enough money for ",EnumToString(type)," ",lots," ",symb);
return(false);
}
//--- проверка прошла успешноreturn(true);
}
Пользуюсь такой функцией проверки маржи. А как, учитывать два ордера? lots * 2 ?
Как один из вариантов, да умножить на 2. Но всегда есть и другие варианты. Например сделать доступной переменную margin из функции и при условии что ордеров получилось 2, это значение умножить на 2.
Как один из вариантов, да умножить на 2. Но всегда есть и другие варианты. Например сделать доступной переменную margin из функции и при условии что ордеров получилось 2, это значение умножить на 2.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
дело не в том как вопрос решается с маржей между советниками, а именно в том что это вполне объяснимая причина удаления ордера
но в маркете не хотят признавать эту ошибку и говорят: удаляйте значит ордера сами если маржи не хватает.
Т.е. другими словами: не хватает маржи удали все ордера и скажи покупателю " ШИШ" МАРЖИ НЕТ РАБОТАТЬ НЕ БУДУ"
дело не в том как вопрос решается с маржей между советниками, а именно в том что это вполне объяснимая причина удаления ордера
но в маркете не хотят признавать эту ошибку и говорят: удаляйте значит ордера сами если маржи не хватает.
Т.е. другими словами: не хватает маржи удали все ордера и скажи покупателю " ШИШ" МАРЖИ НЕТ РАБОТАТЬ НЕ БУДУ"
Никакие доводы не помогут. Я тоже проходил эту процедуру. У них нет понимания, что в mql4 нет таких функций которые есть в mql5. Ответ один: "Ошибок не должно быть..." и всё тут...
Правда у меня советник мартин и лот там был далеко не 0.02 и следовательно проверка AccountFreeMarginCheck() помогла.
Видимо самый надёжный вариант, в данном случае, проверку делать с лотом (лот+минимальный_лот) или действительно торговать меньшим лотом.
У меня в МТ5 такая же ситуация. При срабатывании отложника и открытии позиции, тестер-терминал с матюками удаляет ордер.
Прописал удаление одного ордера при открытии позиции, но по стратегии происходит модификация ордеров и случаются два ордера по одной цене, и советник уже не может удалить второй ордер, т к он уже на сервере.
Вопрос: как в этом случае решить вопрос с проверкой средств?
У меня в МТ5 такая же ситуация. При срабатывании отложника и открытии позиции, тестер-терминал с матюками удаляет ордер.
Прописал удаление одного ордера при открытии позиции, но по стратегии происходит модификация ордеров и случаются два ордера по одной цене, и советник уже не может удалить второй ордер, т к он уже на сервере.
Вопрос: как в этом случае решить вопрос с проверкой средств?
Самое простое это не допускать постановку двух ордеров по одной цене. А уж если так задумано по стратегии, проверять достаточность средств с учётом двух ордеров по одной цене. Да и проверку надо делать не только перед размещением ордера, но и при модификации.
Да и проверку надо делать не только перед размещением ордера, но и при модификации.
Так и поступаю.
Пользуюсь такой функцией проверки маржи. А как, учитывать два ордера? lots * 2 ?
Так и поступаю.
Пользуюсь такой функцией проверки маржи. А как, учитывать два ордера? lots * 2 ?
Как один из вариантов, да умножить на 2. Но всегда есть и другие варианты. Например сделать доступной переменную margin из функции и при условии что ордеров получилось 2, это значение умножить на 2.
Как один из вариантов, да умножить на 2. Но всегда есть и другие варианты. Например сделать доступной переменную margin из функции и при условии что ордеров получилось 2, это значение умножить на 2.
Спасибо! Буду пробовать.