Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай самые обсуждаемые темы на форуме. Заходи в раздел Стена!
-Aleks-
7004
-Aleks- 2013.09.18 09:27 

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

Предыстория

Решив реализовать проверку идеи я заказал в разделе "Работа" советника - 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" то на...
Sergey Chalyshev
4513
Sergey Chalyshev 2013.09.18 12:59  

-Aleks-:

Вопрос 

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

Возможно.

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

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

-Aleks-
7004
-Aleks- 2013.09.18 13:17  

Serj_Che:
Возможно. 

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

o_o
Модератор
23694
o_o 2013.09.18 13:22  
Serj_Che:

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

началооось.

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

Sergey Chalyshev
4513
Sergey Chalyshev 2013.09.18 13:24  
-Aleks-:

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

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

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

-Aleks-
7004
-Aleks- 2013.09.18 13:32  
Serj_Che:

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

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

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

 

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

Vasiliy Smirnov
12314
Vasiliy Smirnov 2013.09.18 14:10  
Я предложил вам ускорить и оптимизировать работу под тестер и дал вроде как приемлемую стоимость. Изначально задача быстродействия советника в тестере при прогоне советника за 15 лет не стояла).
-Aleks-
7004
-Aleks- 2013.09.18 14:22  
zfs:
Я предложил вам ускорить и оптимизировать работу под тестер и дал вроде как приемлемую стоимость. Изначально задача быстродействия советника в тестере при прогоне советника за 15 лет не стояла).

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

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

 

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

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

Alexander Laur
7692
Alexander Laur 2013.09.18 17:40  
-Aleks-:
 

Вопрос 

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

 В первом коде 6-ть циклов for, которые на каждом баре перебирают ордера. Почему не сделать один перебор ордеров на баре и работать дальше с результатами этого перебора?

Если Ваши улучшения кода увеличили итоговое количество сделок, то эти переборы (где надо и где не надо) увеличивают общее время теста. С увеличением количества сделок увеличивается общее количество итераций, для которого нужно время. Это то, что "бросается в глаза" при первом осмотре кода. А вообще код не читабелен. :)

Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
Sergey Chalyshev
4513
Sergey Chalyshev 2013.09.18 19:09  
sergeev:

началооось.

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

Не понял Вашу реплику, кто кого унижает?
Комбинатор
15929
Комбинатор 2013.09.18 22:04  
sergeev:

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

А может просто честно признает что говнокодит :)
12345678...12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий