Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вам нужно перестать тратить время и начать наконец разработку. Оформляйте ТЗ.
Так как клиенту нужно решение, а не простой по времени.
Вам опытный человек уже в который раз объясняет, что в этом в коде за один проход функции старт
32 цикла "for"
17 раз сканируете ордера (как открытые, так и историю),
24 вызова функции удаления отложенных ордеров, а в ней тоже цикл по всем ордерам (* количество ордеров)
7 вызовов функции удаления рыночных ордеров, а в ней тоже цикл по всем ордерам (* количество ордеров)
6 модификаций лимитников с циклами внутри (* количество ордеров)
6 модификаций стоповых ордеров с циклами внутри (* количество ордеров)
10 вызовов функций установки ордеров с циклами внутри (* количество ордеров)
37 раз печатаете (Print),
7(семь) раз обращаетесь к полной истории баров на всю длину истории (а она растет в процессе тестирования).
И это занимает тучу времени.
Я уже молчу о неоптимизированных фильтрах "if", сложных условиях в них (а сокращенной проверки в МТ4 нет).
Ну и после этого, на совершенно не читаемый код можно закрыть глаза, это уже не существенно, его по крайней мере можно пропустить через стилизатор и получить хоть что то (хотя мне лично его стиль не нравится) :
Возможно повторюсь, но! Первая и вполне возможно главная проблема в том, что код не читаем и не структурирован. Можно иметь вполне чёткое ТЗ. Но если писать по нему код в лоб, то получается вот такая каша. если разобраться в ТЗ, и подойти с правильной стороны к написанию кода, то это (как правило) даёт существенный выигрыш в скорости выполнения, но и стоит других денег.
В итоге получается, что необходима так называемая блок-схема, по которой будет видно, что выполняется лишнее количество раз. Для начинающих программистов(читай "трейдеров"), было бы удобно видеть такую визуализацию кода средствами самой программы MT4.
Из простейшей оптимизации, как я понял это систематизировать код по работе с ордерами, а именно сделать всего 2 основных запроса на бар, и дополнительно на 1 тик, если условия ТЗ требуют работу с ордеров при наступлении определенных условий, в результате получим:
1. Проверка условий для модернизации/закрытия ордера при открытии нового бара;
2. Изменение/закрытие ордера
3. Проверка условий для открытия нового ордера при открытии нового бара
4. Открытие нового ордера
5. Проверка условий для модернизации бара на каждом тике
6. Модернизация/закрытие ордера при исполнении условия 5.
Правда мне один программист рассказал, что код все равно будет исполнятся на каждом тике(полная проверка соответствию ТЗ, а не только той части что должна проверятся на каждом тике), разве это нельзя как то решить?
А вот разве функция "print" тормозит советник при оптимизации?
Что за файл Вы приложили, после прогона в "стилизаторе"?
FAQ:
который вы выложили в первом посте темы.
А что касается "код все равно будет исполнятся на каждом тике(полная проверка соответствию ТЗ, а не только той части что должна проверятся на каждом тике)", как прокомментируете?
А что касается "код все равно будет исполнятся на каждом тике(полная проверка соответствию ТЗ, а не только той части что должна проверятся на каждом тике)", как прокомментируете?
Надо переделывать, с умом переделывать. Тогда все будет работать когда надо и как надо.
Я не об этом коде, а вообще глобально. Т.е. вы опровергаете это утверждение?
Я не об этом коде, а вообще глобально. Т.е. вы опровергаете это утверждение?
не занимайтесь теорией. все равно вы ничего не поймете.
вся теория без конкретного кода или применения - это пустозвонство.
хотите опровергнуть или подвердить - сделайте код и посмотрите как он себя ведет.
не занимайтесь теорией. все равно вы ничего не поймете.
вся теория без конкретного кода или применения - это пустозвонство.
хотите опровергнуть или подвердить - сделайте код и посмотрите как он себя ведет.
Возможно я много чего не понимаю, но стараюсь это понять...
Подумаю о Вашем призыве к действиям...
но стараюсь это понять...
пока вы не откроете MetaEditor и не начнете писать СВОЙ собственный код - вы никогда ничего не начнете понимать как оно работает.
и даже маломальский начинающий прогер все ваши теоретические знания переплюнет своими практическими навыками и эмпирическими наблюдениями.
Если же у вас в планах нет желания "писать СВОЙ собственный код" - то даже и не начинайте спрашивать у форума - почему что то тормозит. Ибо для вас это не имеет смысла.
Или вы решили стать профи кодинга по советам с форума? :))) Название темы "линейное торможение" подсказывает нам, что вы учились на каком-то естфаке либо на инженера.
Теоретегов в программировании не существует. Впрочем как нет и профи футболистов/тренеров/хирургов/лингвистов, которые теоретеги и ни разу не занимались практикой.
Все ваши потуги выяснить о причинах неработы программы - должны лежать не в плоскости "хочу знать", а в конкретном векторе "надо сделать".
Все остальные теоретические рассуждения высокопарными понятиями - гроша ломанного не стоят без конкретных дел.
И немного юморной сути в тему.
пока вы не откроете MetaEditor и не начнете писать СВОЙ собственный код - вы никогда ничего не начнете понимать как оно работает.
и даже маломальский начинающий прогер все ваши теоретические знания переплюнет своими практическими навыками и эмпирическими наблюдениями.
Если же у вас в планах нет желания "писать СВОЙ собственный код" - то даже и не начинайте спрашивать у форума - почему что то тормозит. Ибо для вас это не имеет смысла.
Или вы решили стать профи кодинга по советам с форума? :))) Название темы "линейное торможение" подсказывает нам, что вы учились на каком-то естфаке либо на инженера.
Теоретегов в программировании не существует. Впрочем как нет и профи футболистов/тренеров/хирургов/лингвистов, которые теоретеги и ни разу не занимались практикой.
Все ваши потуги выяснить о причинах неработы программы - должны лежать не в плоскости "хочу знать", а в конкретном векторе "надо сделать".
Все остальные теоретические рассуждения высокопарными понятиями - гроша ломанного не стоят без конкретных дел.
И немного юморной сути в тему.
Спасибо за юмор!
Но если говорить в тему, то моя профессиональная деятельность лежит в области оптимизации налогообложения, так что с алгоритмами я знаком ;) Считал что мои ТЗ доступны для понимания, естественно после уточнений деталей (стараюсь и картинки рисовать и расчет в экселе прикладывать).
Ну и более того, с MetaEditor'ом я знаком, и вполне способен сделать простеньки индикатор или поправить логику советника. Но большой провал с торговыми функциями... просто сейчас я ограничен во времени, да и не чувствую себя прирождённым программистом, но понимать основы и особенности языка MQL мне необходимо, что б отстаивать свои интересы при исполнении заказа.
Ну, и потом мне действительно интересно.