Новая версия платформы MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий - страница 57
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну какие это понты? Разве я на сложное решение показал? Оно очень мощно и на все случаи жизни. sed скрипт для вставки __SS__ после каждой { для всех файлов директории очень прост (unix шел):
в винде не сильно по-другому.
ЗЫ: можно пойти дальше - происать __SS__ только в начале функций, а не циклов и т.д, SSHORTY сможет?Ну так понятно, что не сложно, когда знаешь его.
А сколько понадобится времени тому, кто только что о нем узнал?
Зачем тогда awk? Можно написать свою "поиск и замену" на С или любом другом языке, которым уже владеешь. Зачем изучать awk? Что он даст?
Почему на С или любом другом языке, когда есть MQL? Причем решение на MQL расширенной задачи (включая построение списка зависимых файлов) занимает значительно меньше по времени, чем рассуждение о способах ее решения на форуме
Ну вот и тяжелая артиллерия пожаловала. Может проверим на реальной задаче (через ФП, наверное, вообще как два пальца)? Есть код:
Задача: автоматизированно вставить __SS__ после каждой '{' в начале функции (т.е. после циклов, условий, ... не вставляем).
Свой вариант напишу, если кто-то примет участие с рабочим вариантом, иначе не интересно.
Задача: автоматизированно вставить __SS__ после каждой '{' в начале функции (т.е. после циклов, условий, ... не вставляем).
И по всей цепочке include-файлов.
Тестер последней сборки, похоже, имеет проблему с "Nur Öffnungspreis" (= 4-й вариант моделирования между 1 мин. OHLC и математикой. Calc).
Проблема не появилась со сборкой 2085 и не с 1 мин. OHLC.
Пожалуйста, посмотрите здесь: https://www.mql5.com/de/forum/322168/page3#comment_13239067
The tester of last build seems to have a problem with "Nur Öffnungspreis" (= 4th option of the Modeling between 1 Min. OHLC and math. Calc).
The problem did not appear with build 2085 and not with 1 Min. OHLC.
Please have a look here: https://www.mql5.com/de/forum/322168/page3#comment_13239067Задача: автоматизированно вставить __SS__ после каждой '{' в начале функции (т.е. после циклов, условий, ... не вставляем).
Свой вариант напишу, если кто-то примет участие с рабочим вариантом, иначе не интересно.
В общем я тут покумекал, набросал awk скрипт
код из моего поста он отлично парсит и раставляет __SS__ вначале функций. Потом прогнал через свой реальный код, оказалось, что не всё идеально
почему? суть awk алгоритма - находим {, поднимаемся наверх и ищем что-то похожее на функцию, MYLSEG.get_point(1) похожа. Не то чтобы нельзя допилить, сильного рвения не ощущаю, нужно вести подсчёт открывающихся и закрывающихся скобок и выходить на оператор на самом высшем уровне.Ещё приходила идея заюзать clang, ну делают же на нём всякие индексеры, скорее всего можно и здесь "оседлать" clang. Но стоит ли игра свечь ...
В общем свою порцию сексуального удовольствия получил, с дистанции схожу.
ЗЫ: "нужно вести подсчёт открывающихся и закрывающихся скобок и выходить на оператор на самом высшем уровне." хотя можно проще - подниматься до первой }, и проверять отсутствие while, for, ... . И допиливать немного, в общем образец есть, если кому-то очень надо, то есть от чего оттолкнуться.ЗЫ: "нужно вести подсчёт открывающихся и закрывающихся скобок и выходить на оператор на самом высшем уровне." хотя можно проще - подниматься до первой }, и проверять отсутствие while, for, ... . И допиливать немного, в общем образец есть, если кому-то очень надо, то есть от чего оттолкнуться.
Если изначально выбран правильный стиль, то все в разы проще. По крайней мере у меня получалось в свое время производить замену только в начале функции прямо в MetaEditor-е без дополнительных телодвижений
И Вы правы... для ФП это простейшая задача (на 15 минут) даже с учётом зависимостей
A100:
даже с учётом зависимостей
В общем свою порцию сексуального удовольствия получил, с дистанции схожу.
Чёртов перфекционизм, допилил я скрипт:
Сделал через подсчёт открывающихся/закрывающихся скобок. Тест на реальном коде показал отличный результат. Могут быть какие-нибудь косяки с хитрыми дефайнами:
Но х.з, может там функция объявляется через макросы, в общем решил не заморачиваться, приемлемо.
Вызывал просто: awk -i inplace -f awkscr 5_trend3.mqh. (-i inplace расширение gnu awk, для других возможно понадобится немного шел обвязки для перезаписи файла. Т.е. направить вывод во временный, удалить начальный, переименовать временный в начальный).
И по всей цепочке include-файлов.
Сделать то не сложно (тупо рекурсивный вызов при встрече include), но тут проблемы кроссплатформенности - у меня linux, а нужно выполнить шел команду, разные слеши, ключи. В общем не стал, проще прогнать все заголовочные файлы (вроде такого: awk -i inplace -f awkscr *), а потом также автоматом удалить __SS__.
Всё, мяч на стороне адептов ФП, удивят ли? Не думаю.