Товарищи, посмотрите пожалуйста, какой-то принципиальный момент упущен. Советник не открывает сделки ни по одной из валют. Я своей ошибки не вижу, рассчитываю на вашу помощь. Мне кажется тут для профи пару минут, я уже второй день втыкаюсь. Пользовался статьями, но так и не увидел допущенной ошибки
Код советника:
Поменяйте
input int Slippage=0;
на что то более приемлемое, например размер спреда, а для заданного извне попробуйте 50.
- www.mql5.com
Поменяйте
на что то более приемлемое, например размер спреда, а для заданного извне попробуйте 50.
Я не понял. Поясните пожалуйста, slippage=0 потому что...
У нас случай другой - нам нечем жертвовать, у нас и так прибыли маленькие, чтобы еще на проскальзывания растрачиваться :) И открыться точно в момент открытия бара нам не нужно. Для нас важно открыться по нужной нам цене - цене открытия. Поэтому проскальзывание всегда ставим на 0 (ноль). А цена, случайно блуждая, всегда зацепт наш ордер. А если и не зацепит - фик с ним, на следующем баре все получится.
У Вас в коде совершенно нет проверок на ошибки. За Вас это вряд ли кто сделает, чтобы определить проблемную зону.
У Вас в коде совершенно нет проверок на ошибки. За Вас это вряд ли кто сделает, чтобы определить проблемную зону.
Дело в том, что как в MQL4 через принты сделал, посмотрите процедуры,
bool SellPositionOpen(const string symbol,ulong deviation,double volume
пишет принты, что открывает сделки, т.е. заходит в процедуру,а реально(в тестере) не открывает.
Я здесь не за халявой, реально на месте стою, не могу понять где ошибка.
Дело в том, что как в MQL4 через принты сделал, посмотрите процедуры,
пишет принты, что открывает сделки, т.е. заходит в процедуру,а реально(в тестере) не открывает.
Я здесь не за халявой, реально на месте стою, не могу понять где ошибка.
Ещё раз. У Вас в коде совершенно нет проверок на ошибки. Ваш код я смотрел. "Print(word)" - это не проверка на ошибки. Ошибки в MQL5 проверяются с помощью конструкции ResetLastError() - GetLastError(), например:
ResetLastError(); filehandle=FileOpen("fractals.csv",FILE_WRITE|FILE_CSV); if(filehandle!=INVALID_HANDLE) { FileWrite(filehandle,TimeCurrent(),Symbol(),PERIOD_CURRENT); FileClose(filehandle); Print("FileOpen OK"); } else Print("Операция FileOpen неудачна, ошибка ",GetLastError());
пишет принты, что открывает сделки, т.е. заходит в процедуру,а реально(в тестере) не открывает.
Товарищи, посмотрите пожалуйста, какой-то принципиальный момент упущен. Советник не открывает сделки ни по одной из валют. Я своей ошибки не вижу, рассчитываю на вашу помощь. Мне кажется тут для профи пару минут, я уже второй день втыкаюсь. Пользовался статьями, но так и не увидел допущенной ошибки
Код советника:
Вообще-то, структуры торгового запроса и результата торгового запроса надо бы обнулить после объявления!
//--- Объявление структур торгового запроса и результата торгового запроса MqlTradeRequest request; MqlTradeResult result; //---- обнуление структур ZeroMemory(request); ZeroMemory(result);
А так эксперт точно торговать не будет!
- www.mql5.com
Вообще-то, структуры торгового запроса и результата торгового запроса надо бы обнулить после объявления!
А так эксперт точно торговать не будет!
Спасибо, за конкретное замечание! Я почитаю по этому поводу, не до конца разобрался.
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade
Правда она на ООП, но вам его необязательно полностью знать, достаточно уметь создавать объект и вызывать методы.
- www.mql5.com
Вообще-то, код просто изобилует ошибками и несуразицами.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Товарищи, посмотрите пожалуйста, какой-то принципиальный момент упущен. Советник не открывает сделки ни по одной из валют. Я своей ошибки не вижу, рассчитываю на вашу помощь. Мне кажется тут для профи пару минут, я уже второй день втыкаюсь. Пользовался статьями, но так и не увидел допущенной ошибки
Код советника: