Линейное торможение - ошибка программиста или особенность работы MT4?

 

Не являясь программистом, но как и все тут склонный к анализу, я пытаюсь понять причины торможения советника, а именно что при его изменении привело к пагубным последствиям, и самое главное возможно ли все исправить.

Предыстория

Решив реализовать проверку идеи я заказал в разделе "Работа" советника - Kamikadze_MA_V_01 https://www.mql5.com/ru/job/10296 , который и был исполнен.

Протестировав его, я решил его доработать, по сути дела доработка не существенная - время жизни открытых и отложенных ордеров, ограничение количества открытых ордеров на "тренд" и возможность блокировки открытия/закрытия ордеров в том числе их закрытие - Kamikadze_MA_V_02 https://www.mql5.com/ru/job/10359 , работа завершена согласно алгоритму.

Сейчас заказал ещё одно добавление в виде фильтра по осциллятору, который исключает работу на заданных пользователем диапазонах Kamikadze_MA_V_03  https://www.mql5.com/ru/job/10720 .

 

Реальность 

Так как работа любого (из моих) советников начинается с его настройки (на всех инструментах разная волатильность и свои предпочтения к параметрам индикаторов), то критически важна скорость оптимизации.

Итак примерная скорость обработки данных - 23 прохода с 2000 по 2013 на часовом тайм фрейме по ценам открытия:

1. Kamikadze_MA_V_01 - 5 минут

2. Kamikadze_MA_V_02 - 15 минут

3. Kamikadze_MA_V_03 - более 30 минут

Такая работа просто убивает возможность оперативной настройки советника.

 

Вопрос 

Возможно ли увеличить скорость работы эксперта оптимизировав код  Kamikadze_MA_V_02 , максимально уменьшив время обработки данных до версии  Kamikadze_MA_V_01, и при этом не лишиться возможности торговать советником на реальном счете?

MQL5 работа: Kamikadze_MA_V_01
MQL5 работа: Kamikadze_MA_V_01
  • www.mql5.com
Название советника: Kamikadze_MA_V_01 Данный советник состоит из 3 MA которые настраиваются по всем параметрам и которые могут быть изменены на пользовательский индикатор. Важно - советник может работать на текущем тайм фрейме(15минут), но по данным с верхнего тайм фрейма(1час). Настраиваемые переменные: lot - размер начального лота lotM - вариант изменения размера лота при повторном открытии отложенного ордера до достижения maT TF - тайм фрейм по которому будут рассчитываться МА, если "0" то на...
Файлы:
 

-Aleks-:

Вопрос 

Возможно ли увеличить скорость работы эксперта оптимизировав код  Kamikadze_MA_V_02 , максимально уменьшив время обработки данных до версии  Kamikadze_MA_V_01, и при этом не лишиться возможности торговать советником на реальном счете?

Возможно.

Думаю раз в 10 можно ускорить. Возможно исполнитель и не причем.

А что Вы хотели за 30 кредитов получить?

 

Serj_Che:
Возможно. 

Это обнадёживает! А что для этого нужно глобально менять в коде? 

 
Serj_Che:

А что Вы хотели за 30 кредитов получить?

началооось.

сам же себя унижает. это модно?

 
-Aleks-:

Это обнадёживает! А что для этого нужно глобально менять в коде? 

Когда изначально пишется одно, потом добавляются условия которые ломают логику и структуру программы - получаются костыли.

По хорошему надо заново переписывать.

 
Serj_Che:

Когда изначально пишется одно, потом добавляются условия которые ломают логику и структуру программы - получаются костыли.

По хорошему надо заново переписывать.

В том то и дело, что 4 моих советника (что я сам разработал) постоянно дорабатываются, и мне кажется это нормальное явление. Конечно, иногда производительность падает, но это в районе 10%-15%, а тут в 3 раза между двумя версиями. Просто мне кажется где то в коде есть то, что существенно тормозит советник.

 

И потом, разве программист не заинтересован дорабатывать свою работу, получая постоянные ТЗ и стабильный доход, понимая свой код и разобравшись уже в логике советника, вместо того что б браться с нуля за новое ТЗ, участвуя в тендере?

 
Я предложил вам ускорить и оптимизировать работу под тестер и дал вроде как приемлемую стоимость. Изначально задача быстродействия советника в тестере при прогоне советника за 15 лет не стояла).
 
zfs:
Я предложил вам ускорить и оптимизировать работу под тестер и дал вроде как приемлемую стоимость. Изначально задача быстродействия советника в тестере при прогоне советника за 15 лет не стояла).

Я не хочу сейчас публично обсуждать свое отношение к результату работы.

Я прошу помощи в поиске возможных ошибок и их исправлении.

 

Ваше предложение я готов рассмотреть, если будет указано во сколько раз увеличиться прирост производительности и какова погрешность.

Вариант с прописанием в код советника пользовательского индикатора не даст ожидаемого прироста производительности, а каким образом ещё Вы собираетесь увеличить производительность? Заменить "Price" на "Open"?

 
sergeev:

началооось.

сам же себя унижает. это модно?

Не понял Вашу реплику, кто кого унижает?
 
sergeev:

сам же себя унижает. это модно?

А может просто честно признает что говнокодит :)
 
TheXpert:
А может просто честно признает что говнокодит :)

Еще один умник нашелся.

Я к этой работе вообще никакого отношения не имею.

Скорее это ты говнословишь.

Я всего лишь указал что оба неправы. Программист написал корявый код а заказчик повелся на дешевизну.

Могли бы этот интимный вопрос решить меж собой (заказчик и исполнитель), но раз захотели публично пообсуждать - я высказал свое мнение (деликатно).

Причина обращения: