Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тема необходимости ООП в программировании всплывает в последнее время с удивительной регулярностью. Раньше вроде никто ее не поднимал.
Для начала давайте разделим программирующих людей на две основные категории:
1. Программисты.
2. Разработчики.
Программисты - это специально обученные люди которые пишут программы. Им дают задачу, объясняют какой нужен результат, и они пишут коды. Они - рабочии (в хорошем смысле). Им дан инструментарий, объяснены правила работы, стандарты и стили. Они их соблюдают.
Разработчики, - это изобретатели. Люди, которые обрели свободу мышления и поднялись над установленными правилами. Разработчики ищут максимальную эффективность создаваемых механизмов. Поэтому, им с программистами невсегда по пути.
ООП является удобным методом мышления. Методом представления взаимосвязи программных сущностей. Это человеческая призма взгляда на вещь.
Но вещь существует сама по себе, независимо от того, как мы на нее смотрим.
Идеальная структура механизма это не то, что видит программист. Если бы он был разработчиком, он понял бы, насколько призма ООП ломает совершенное устройство механизма. Отражает его в неестественно упорядоченном и раздутом виде.
Но Природа не создает прямых линий(с).
Удобная для нас призма взгляда (ООП) "переписывает" "первобытное" совершенство механизма.
Но это может понимать только разработчик.
ЗЫ. ООП погружает человеческое мышление в красивую философскую концепцию, но навязывает создаваемому механизму неэффективную структуру.
И это проверено на практике.
Да нет, есть парочка эээ чудаков, которые периодически кричат о ненужности ООП по любому поводу.
ООП нужно. Бесспорно. Но не для создания идеальных механизмов.
Скорее для обретения специфических качеств мышления, которые необходимы в работе с программами.
То есть, некоторым людям нужно обрести мышление заточенное посредством погружения в ООП.
Так они созидают свою философскую призму взгляда на мир.
Только мир все равно устроен по своему.
Всё в кучу смешали. Природа тут вообще к чему. Если она не создаёт прямых линий, то это не значит что она не стримится к этому. Природа и к выкачки нефти не стримилась, или стремилась, посредством своей части-нами? А Вы, стремящийся к прямым линиям, это не природа ли проявляет своё стремление к ним через Вас.
Да, Природа через человека движется к самосознанию...))
Природа создает вещи в которых нет лишних сущностей. Потому что естественный отбор миллионы лет их отсекает напрочь.
Создания природы - это эталон эффективности. Ничего лишнего, - только идеальные взаимодействия, связи и формы. Практически без потери эффективности в каком либо узле.
Чего не скажешь о наших механизмах.
Можно насильно перетянуть людей на МТ5, закрыв МТ4, но это просто привлечет отток пользователей: смысл мне переходить на МТ5, если можно на условный cTrader?
МТ4 билд 1090, МТ5 билд 1730. Советник Moving Average из поставки терминалов, EURUSD 4H, за 2017 . Цены открытия. Одинаковый перебор параметров без генетики.
MT4 справился за 11 секунд.
MT5 на одном ядре (включен только Core1) - 204 секунды.
Лог Агента содержит почти одинаковые по цифрам записи
Это значит, что средний проход выполняется за ~9 мс. Получается, что для подсчета 8281 прохода нужно немногим больше 76-ти секунд (медленнее MT4 в 7 раз!). Но итог много хуже - 204 секунды. Похоже, какие-то дикие тормоза на передаче инфы от Агента в Тестер.
Вставляем в исходник строку
Получаем такой замер
Видно, что на расчет прохода уходит ~8 мс и на передачу Агент->Тестер еще ~7 мс. В сумме около ~15 мс, что соотносится с ранее приведенным логом Агента.
Чистое время среднего прохода в MT4 ~1.3 мс. MT5 - 8 + 7 мс. При этом еще есть какое-то доп. замедление почти в три раза. В общем, все очень плохо выглядит для пятерки в данном случае.
На тиках ничего подобного и близко нет. Там почти паритет (когда проверял).
Да, Природа через человека движется к самосознанию...))
Природа создает вещи в которых нет лишних сущностей. Потому что естественный отбор миллионы лет их отсекает напрочь.
Создания природы - это эталон эффективности. Ничего лишнего, - только идеальные взаимодействия, связи и формы. Практически без потери эффективности в каком либо узле.
Чего не скажешь о наших механизмах.
Все данные для воспроизведения в студию, пожалуйста! Потратил массу времени на исследования производительности тестеров/оптимизаторов. Такого дикого расхождения в производительности не заметил.
Сам использую только тики. OHLC H4 никогда не пробовал и даже не понимаю, зачем оно может быть надо.
Не докажет, зря чтоли он все условия скрыл?
Он же отлично знает, что на пустом терминале нажал кнопку Start и он ни в чем не виноват. Он же сделал вид, что не видел, что у него все это время выкачивалась и синхронизировалась история. Да мало ли что он еще там накрутил.
В реальности условия берем его:
Теперь результаты:
Результаты Метатрейдер 4 тест 1:
Результаты Метатрейдер 5 тест 1:
На предложенном фейковом тесте видим:
Теперь давайте поставим оба тестера в одинаковые (но все равно очень простые) условия тестов по синтетическим тикам, тест 2:
Результаты Метатрейдер 4 тест 2:
Результаты Метатрейдер 5 тест 2:
Как только подняли ставки и перешли к реальной работе, МТ5 сразу победил даже в простых условиях. 4 часа на тест у МТ5 вместо 7 часов у МТ4. Причем МТ5 смоделировал и проверил на 30% больше тиков.
Еще в качестве вишенки - при использовании MQL5 Cloud Network полный перебор завершился за 2 минуты и 49 секунд: потратил 82 цента, сэкономив 4 часа
Я понимаю, что писатели for(int i=0;i<bars;i++) { } хвастают своей скоростью по сравнению с тестерами Метатрейдера. Дальше баров им ничего не светит с уровнем технологий 2000 года.
Я понимаю, почему сюда приходят люди безудержно набрасывать.
Но хочу остальным объяснить реальное положение вещей:
Вообще это потрясающий по своей силе механизм построения робастых экспертов и тестирования качества экспертов. В большинстве случаев достаточно поставить 1 сек задержки, чтобы увидеть насколько бестолковый программист писал эксперта.
По всей видимости, никто даже понятия об этом не имеет. Предпочитают обсуждать тестирование баров и смешное различие языков.
Всего это нет в тестере стратегий Метатрейдера 4.
Лично для меня - полное безумие ратовать за тестер четверки и вообще возвращаться на четверку после того, как увидел и воспользовался тестером Метатрейдера 5.
MT4 справился за 11 секунд.
MT5 на одном ядре (включен только Core1) - 204 секунды.
Ну вы мастер. Может еще ногу отрежем чемпиону? А что, "надо же в равные условия всех ставить, а у него возможностей больше". Конечно надо резать!
Посмотрите мой отчет - вот это правильная и детальная работа с объяснениями читинга. Вы даже не заметили, как сыграли с шулером в подставленную партию.
Теперь результаты:
Красные и желтые цифры противоречат друг другу. Чуть больше 1 мс у MT4 на проход уходит на Вашей и моей машинах.
На предложенном фейковом тесте видим:
Вот эти три раза мне непонятны, т.к. в MT4 отложки (если память изменяет, форумчане поправят) исполняются с учетом High/Low. Такое ощущение, что MT5 под тиком подразумевает нечто отличное от MT4 в данном контексте. Но MT4 в режиме по барам все же учитывает High/Low. Поэтому тут не все так однозначно, к сожалению.
Более того, все таки 36 секунд - это восемь Агентов. MT4 - один. Вот тут не понимаю, как технарь, где такие серьезные потери? Просто человек может запустить восемь MT4-тестеров, разбив оптимизационную задачу полного перебора на восемь непересекающихся кусков и тогда контр-аргументы будут сомнительными. Поэтому при сравнении стараюсь ставить в одинаковые условия - один Агент MT5 vs один тестер MT4.
Но хочу остальным объяснить реальное положение вещей:
Это как раз то, о чем несколько раз заходила на форуме речь. Что сверх-точность избыточна при грубой оценке. И при этом постоянные результаты тестирования достигаются без этой точности. Был разговор про то, чтобы иметь возможность менять валюту счета в тестере на тех же кроссах, чтобы не тянуть другие символы для промежуточных расчетов и т.д. Т.е. хочется иметь возможность загрубить, потеряв в точности немного, но при этом сильно выиграв в скорости.
Надеюсь, данные замечания будут учтены в анонсированной работе над тестером.
1) не противоречат, ибо вы понятия не имеете о накладных расходах одного прохода и многих
как с таким уровнем знаний вы тестировать что-то пытаетесь?
2) не понимаете, так как уровень знаний темы недостаточный. не писали вы тестеров
3) за предложение «запустить могу N четверок» сразу можно списывать с обсуждения. когда в очередной раз(а попыток было много в этом форуме) тема с «давайте одно ядро тестить» обламывается, вылезает «ну можно же несколько запустить». не запускают
4) я не сомневаюсь в советах людей, когда вижу их перепрыг с «дайте детальность» на «а вообще-то я на барах тестирую, вообще мне все это не нужно»
Моя речь не для вас(кто заявляет - мне не нужно).
Чтобы не угробить проект, нужно над ним думать очень много и глубоко, понимая, что важно и куда идет вектор развития. И мы этим занимаемся.
Когда вокруг пытаются набрасывать «а мне лишь бары, а мне то не нужно, да вообще вы лишнее делаете», то их мнение рассматривается исключительно с точки зрения вредительства. Когда кто-то «из лучших побуждений» начинает бездумно топить против, то тоже зарабатывает очки профессионализма.