Извиняюсь, но полегче никак?) Помогите понять в чем ошибка в
Bid == Delete_Level
Подумайте сами - советник работает с приходом тика (очередной котировки).
Ваш Delete_Level, например равен 1.0010 ... Пляшем отсюда. Пришла котировка Bid=1.0011 - условие не выполнено. На следующем тике Bid=1.0008 - условие не выполнено. Вроде как цена пересекла ваш уровень закрытия. А равенства не было.
Alexandr24: Кто нить знает как решить такую проблему?
Может на начало тестируемого периода нет должных пятиминуток. Не работает для любого sometime или для того в который входит текущий тридцатиминутный бар? а то тестер может ограничивать попытки заглянуть в будущее.
splxgf: Может на начало тестируемого периода нет должных пятиминуток. Не работает для любого sometime или для того в который входит текущий тридцатиминутный бар? а то тестер может ограничивать попытки заглянуть в будущее.
Большое спасибо за наводку! не заметил что на начало тестирования 5 минутных свечей еще не было.
LazarevDenis: помогите пожалуйста, советник очень часто модифицирует ордер(так надо), но перед закрытием вдруг выдает ordermodify error 1, но еще и не всегда
Вы при модификации передаете все параметры равные тем, которые у него уже установлены
ilunga: Вы при модификации передаете все параметры равные тем, которые у него уже установлены
но перед ошибкой советник успешно модифицирует 5-6 раз, а именно перед закрытием он выдает ошибку, я уже кучу ограничений поставил на модификацию ордера, и все равно 1 ошибку за ордер выдает, если что-то не понятно, то я могу выложить код
но перед ошибкой советник успешно модифицирует 5-6 раз, а именно перед закрытием он выдает ошибку, я уже кучу ограничений поставил на модификацию ордера, и все равно 1 ошибку за ордер выдает, если что-то не понятно, то я могу выложить код
выведите принтом при OrderModify==false параметры модификации и текущие параметры ордера + GetLastError
Да согласен, не правильно выразился. Почитав help решил написать вот так:
// советник может выставлять ордера каждый день сесии // в промежуток времени с 10-45 до 18-30 if (Hour()>=10 && Minute()>=45 && Hour()<=18 && Minute()<=30) { ... }
Так правильно написано условие на проверку времени?
Извиняюсь, но полегче никак?) Помогите понять в чем ошибка в
Подумайте сами - советник работает с приходом тика (очередной котировки).
Ваш Delete_Level, например равен 1.0010 ... Пляшем отсюда. Пришла котировка Bid=1.0011 - условие не выполнено. На следующем тике Bid=1.0008 - условие не выполнено. Вроде как цена пересекла ваш уровень закрытия. А равенства не было.
Кто нить знает как решить такую проблему?
Может на начало тестируемого периода нет должных пятиминуток. Не работает для любого sometime или для того в который входит текущий тридцатиминутный бар? а то тестер может ограничивать попытки заглянуть в будущее.
а что такое дата в вашем понимании и понимании MQL ?
По-моему, в вашем коде логическая ошибка. Обратите внимание на переменную "ticket".
Тикет нормально, а вот SL и TP заданы неправильно. И цена не проверяется на близость к биду.
помогите пожалуйста, советник очень часто модифицирует ордер(так надо), но перед закрытием вдруг выдает ordermodify error 1, но еще и не всегда
Вы при модификации передаете все параметры равные тем, которые у него уже установлены
но перед ошибкой советник успешно модифицирует 5-6 раз, а именно перед закрытием он выдает ошибку, я уже кучу ограничений поставил на модификацию ордера, и все равно 1 ошибку за ордер выдает, если что-то не понятно, то я могу выложить код
но перед ошибкой советник успешно модифицирует 5-6 раз, а именно перед закрытием он выдает ошибку, я уже кучу ограничений поставил на модификацию ордера, и все равно 1 ошибку за ордер выдает, если что-то не понятно, то я могу выложить код
выведите принтом при OrderModify==false параметры модификации и текущие параметры ордера + GetLastError
странный ответ на вопрос про дату.
Да согласен, не правильно выразился. Почитав help решил написать вот так:
// советник может выставлять ордера каждый день сесии
// в промежуток времени с 10-45 до 18-30
if (Hour()>=10 && Minute()>=45 && Hour()<=18 && Minute()<=30)
{
...
}
Так правильно написано условие на проверку времени?