Советник Kutu.Тестируем,оптимизируем и делимся результатами.
В архиве эксперт и индюки к нему.
В описании нашел, что советник создавался для пары EUR/USD для тайм фрейма м1.
Хотя я протестил на фунте и результат тоже оказался не плохим.
Отправлено 31 August 2010 - 10:31
Отправлено 03 September 2010 - 22:09
Отправлено 05 September 2010 - 09:55
Отправлено 05 September 2010 - 11:28
Отправлено 05 September 2010 - 11:55
попробуй так:
В параметрах Lots ставишь 0.01
Затем меняешь в параметре AccountisNormal c 0 на 1
Отправлено 05 September 2010 - 22:03
возможно у вашего брокера запрет на торговлю 0.01 лотом..Спасибо, уже разобрался. Пробовал с такими настройками, но почему то не работал... В другом терминале - всё ОК
ЗЫ Не совсем ОК... При лотах 0.01 периодически вылезает ошибка 4051
Отправлено 06 September 2010 - 11:05
возможно у вашего брокера запрет на торговлю 0.01 лотом..
Отправлено 06 September 2010 - 12:23
Не надо сразу винить среду, в которой работаете, причина в 99% будет в криво написанном коде. Читаем help:Metis, ну уж условия торговли у своих брокеров я знаю и это далеко не первый советник...
Я же написал: периодически, т.е. експерт может открыть несколько ордеров, а потом вылезает ошибка... Через какое то время может опять заработать, а может и нет. Пробовал тестить на двух брокерах, котировки с реала.
Похоже, некорректно работает функция NormalizeDouble. В коде только учусь разбираться, мне это пока не по зубам
Скрин из журнала прилагается
Потом читаем по NormalizeDouble():ERR_INVALID_FUNCTION_PARAMVALUE 4051 Недопустимое значение параметра функции
Смотрим код:double NormalizeDouble( double value, int digits)
Округление числа с плавающей запятой до указанной точности.
Рассчитываемые значения StopLoss, TakeProfit, а также значения цены открытия отложенных ордеров должны быть нормализованы с точностью, значение которой хранится в предопределенной переменной Digits.
Параметры:
value - Величина с плавающей точкой.
digits - Формат точности, число цифр после десятичной точки (0-8).
if( MaxTrades > 12 ) mylotsi = NormalizeDouble(mylotsi * 1.5,1) ; else mylotsi = NormalizeDouble(mylotsi * 2,1);Так почему же он должен торговать лотом 0.01, если округление в меньшую сторону с одним знаком после запятой? Ошибку не покажет только если рассчитанный лот будет равен x.x0 , но не x.xY, где Y!=0
Отправлено 06 September 2010 - 14:15
Отправлено 06 September 2010 - 21:00
если не трудно выложите исправленного советника,пусть другие с удовольствием пользуются.Necron, большое спасибо за исчерпывающий ответ!
Даже при моем, практически полном отсутствии знания MQL, удалось таки заставить экспа работать с лотами 0.01
Отправлено 07 September 2010 - 00:26
если не трудно выложите исправленного советника,пусть другие с удовольствием пользуются.
Отправлено 15 May 2011 - 21:34
Сообщение отредактировал ibushh: 15 May 2011 - 21:35
Отправлено 18 May 2011 - 01:51
Отправлено 20 May 2011 - 00:27
Отправлено 20 May 2011 - 07:53