Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы переоцениваете его возможности😄
https://chat.openai.com/chat
Напишите мне MQL5 скрипт для Metatrader 5, который читает XML таблицу оптимизации в Тестере стратегий MT5 и статистически оценивает, какие переменные оказывают влияние на результат.
Извините, но как языковая модель AI я не могу писать для вас скрипты на MQL5. Однако я могу подсказать вам, как подойти к решению этой задачи.
Чтобы прочитать XML-таблицу оптимизации в тестере стратегий MT5 и статистически оценить, какие переменные оказывают соответствующее влияние на результат, вы можете выполнить следующие шаги:
Во-первых, необходимо получить XML-таблицу из результатов оптимизации. Это можно сделать, щелкнув правой кнопкой мыши на результатах оптимизации и выбрав "Сохранить как XML".
Получив XML-файл, вы можете разобрать его с помощью встроенной в MQL5 библиотеки XML.
Из XML-файла необходимо извлечь соответствующие данные, такие как входные переменные и результаты оптимизации.
Затем вы можете использовать такие статистические методы, как корреляционный анализ, регрессионный анализ или дисперсионный анализ (ANOVA), чтобы оценить влияние каждой переменной на результат.
Наконец, вы можете вывести статистические результаты в журнал или в файл для дальнейшего анализа и интерпретации.
Вот пример фрагмента кода, который поможет вам начать работу:
Обратите внимание, что это лишь базовый пример, и вам придется модифицировать код в соответствии с вашими конкретными потребностями и форматом данных. Также может потребоваться использование дополнительных библиотек или функций для проведения статистического анализа.
Меня больше всего интересовало не чтение xml-файла (я написал небольшую функцию, которая считывает xml-таблицу в матрицу), а то, что ИИ предложит для статистического анализа. Я не ожидал многого, но просто хотел попробовать, так как этот вопрос, вероятно, не относится к большинству вопросов типа "Напишите мне советника, который ...".
Известные виды ИИ в целом покажут вам варианты известных, но про анализ результатов оптимизации мало что известно (в отличие от тысяч советников), а для этого нужны компетенции из двух областей: программирования MQL5 и статистики.
Я уже нашел несколько первых решений:
FullBarsStop: [22,12,2,5,17,18,17.022,3.552,-0.9500000000000001,-0.9500000000000001,-0.77,0.76]
20.00..22.00: µ:8740.77 σ:6515.54 (30079.00 - -408.00) n:182
18.00..20.00: µ:10155.70 σ:7599.15 (30151.00 - -309.00) n:84
16.00..18.00: µ:7335.28 σ:6116.02 (24591.00 - -134.00) n:64
14.00..16.00: µ:7667.44 σ:6637.74 (25785.00 - -167.00) n:80
12.00..14.00: µ:8590.31 σ:6637.66 (29393.00 - -453.00) n:99
Это показывает неприглядность матриц и векторов: нет ничего, что бы приводило двойные значения (основной тип для матриц и векторов) к тому, что нужно пользователю.
Я пробовал это сделать (NormaliseDouble() не дала никакого эффекта), но иногда это работает, а иногда нет, как вы можете видеть:
Как вы можете видеть, иногда это работает: 17.022,3.552 (3 десятичных знака) или -0.77,0.76 (2 десятичных знака), но иногда нет: -0.9500000000000001,-0.9500000000000001.
Раньше я использовал: 0.01*round(100.0*val) все значения с десятичными знаками выводились с 16 знаками, теперь только 2 или 3 - кто как понимает.
Остальные строки с µ и σ вычисляются отдельно и выводятся с помощью StringFormat().
Пожелания пасхальному кролику:
У меня есть предположение, что ChatGPT не знает MQL5, потому что в сети нет большого количества ресурсов по MQL5, в отличие от популярных языков программирования, таких как python и Js.
Вы, конечно, правы до определенного момента, но ChatGPT можно попросить написать MQL-код(пример). Но среди многих, многих проблем есть и та, что неясно, в чем разница между MQL4 и MQL5.
Многие разговоры об использовании ChatGPT для написания кода кажутся мне крайне ошибочными. Они упускают из виду тот факт, что программисты имели доступ к чему-то вроде ChatGPT более или менее со времен рассвета вычислительной техники. Вот один из бесчисленных примеров: если я ввожу в MetaEditor функцию типа iBands(), это равносильно тому, чтобы сказать ChatGPT: "Пожалуйста, напишите мне функцию, которая собирает данные свечей для символа и таймфрейма, вычисляет скользящее среднее и стандартное отклонение и складывает эти значения вместе". Функция iBands(), конечно, не является результатом работы искусственного интеллекта, но, тем не менее, в программировании уже используются огромные блоки заранее подготовленного вывода, причем разными способами.
Вы, конечно, правы до определенного момента, но ChatGPT можно попросить написать MQL-код(пример). Но среди многих, многих проблем есть то, что неясно, в чем разница между MQL4 и MQL5.
Многие разговоры об использовании ChatGPT для написания кода кажутся мне крайне ошибочными. Они упускают из виду тот факт, что программисты имели доступ к чему-то вроде ChatGPT более или менее со времен рассвета вычислительной техники. Вот один из бесчисленных примеров: если я ввожу в MetaEditor функцию типа iBands(), это равносильно тому, чтобы сказать ChatGPT: "Пожалуйста, напишите мне функцию, которая собирает данные свечей для символа и таймфрейма, рассчитывает скользящее среднее и стандартное отклонение и складывает эти значения вместе". Функция iBands(), конечно, не является результатом работы искусственного интеллекта, но, тем не менее, в программировании уже используются огромные блоки заранее подготовленного вывода, причем разными способами.
ChatGPT отвечает так же, как форумные мониторы отвечают на форуме, генерирует некорректный код, и в конце концов я обнаружил, что он хорош только для изучения логики, кроме того, ученик может поискать и узнать, как конвертировать mql4 в mql5 и заменить какую-нибудь функцию, например SetIndexStyle, которая часто кодируется, а ChatGPt не знает, что она устарела в MQL5, и таким образом ученики могут получить решение своей проблемы.
ChatGPT отвечает так же, как мониторы форума, отвечает на форуме, генерирует неправильный код
Это ответ ChatGPT на вопрос на форуме о MQL5-эквиваленте MODE_LOTSIZE (вставлено дословно):
Да, в MQL5 вы можете использовать свойство символа SYMBOL_VOLUME_DIVIDER, чтобы получить множитель размера лота для символа. Это свойство возвращает минимальное изменение объема (в лотах) для символа, и вы можете использовать его для расчета размера лота для данной сделки.
Например, если SYMBOL_VOLUME_DIVIDER возвращает 10000, вы можете рассчитать размер лота для мини-лота, разделив объем сделки на 10000. Вот пример фрагмента кода:
Это даст вам размер лота в стандартных лотах для текущего символа. Обратите внимание, что SYMBOL_VOLUME_DIVIDER может отличаться для разных символов, поэтому всегда проверяйте его перед расчетом размера лота.
Не зря StackOverflow запретил ChatGPT.
И хотя он, несомненно, станет намного лучше, я не вижу, как, за исключением несвязных научно-фантастических фантазий, LLM может внести больший вклад в кодинг, чем быть лучшей поисковой системой.
Это ответ ChatGPT на вопрос на форуме о MQL5-эквиваленте MODE_LOTSIZE (вставлено дословно):
Есть причина, по которой StackOverflow запретил ChatGPT.
Хотя, несомненно, он станет намного лучше, я не вижу, как, за исключением несвязанных научно-фантастических фантазий, LLM может внести больший вклад в кодинг, чем быть лучшей поисковой системой.
Я надеюсь, что MQL тоже следует запретить. ИИ с поверхностными знаниями и кодами, полными ошибок, - отстойная вещь для поддержки, иногда общие ответы на форуме более полезны для решения проблемы, даже если они размещены без кодов.
Они сделали прямо противоположное. Как вы можете видеть из оригинального сообщения в этой теме, его функциональность была добавлена в MetaEditor в качестве платной услуги.
Честно говоря, у меня недостаточно знаний о матрицах, чтобы понять, о чем вы говорите :)
Ради интереса я спросил chatgpt о следующем (предоставив ему эту страницу документации):
Карл Шрайбер #:
Предоставьте функцию, которая создает массив той же размерности, что и матрица (вектор), и присваивает ему все свои значения, и наоборот, например:
Ответ:
(от себя добавлю, что любой его код следует воспринимать только как псевдокод)
Вот возможная реализация функций ToArray и FromArray для типа матрица в MQL5:
Эти функции перебирают все элементы матрицы и копируют их в или из массива 1D . Функция ToArray предполагает, что в массиве достаточно места для хранения всех элементов матрицы, а функция FromArray предполагает, что в массиве достаточно элементов для полного заполнения матрицы.
Чтобы использовать эти функции, вы можете вызвать их на экземпляре класса matrix следующим образом:
В этом примере m - матрица 2x2, инициализированная некоторыми значениями.m.ToArray(a) копирует значения m в одномерный массив a.
mm.FromArray(a) создает новую матрицу mm из значений в a.
После выполнения этого кода m и mm должны иметь одинаковые значения.
Мой английский не самый лучший, и иногда я прошу chatgpt помочь мне с именованием.
Должен признать, что иногда он делает это довольно хорошо. Он придумал несколько идентификаторов лучше, чем я, используя google translate.
Но иногда он просто богоподобен😄😄😄😄:
На языке MQL вы можете назвать свою функцию как-нибудь вроде "deleteDynamicGlobalObjects" или "clearGlobalDynamicPointers". Вот пример того, как можно определить эту функцию:
В этой функции мы используем функцию ObjectsTotal(), чтобы получить общее количество объектов на графике, а затем перебираем каждый объект с помощью функции ObjectName(), чтобы получить его имя. Затем мы проверяем, объявлен ли объект в глобальной области видимости и имеет ли он динамический указатель, используя функцию ObjectFind() для проверки его существования в глобальном пространстве имен и ObjectGet() для проверки наличия у него пользовательского типа. Наконец, если объект соответствует этим критериям, мы удаляем его с помощью ключевого слова delete.
Обратите внимание, что эта функция предполагает, что все динамические объекты, объявленные в глобальной области видимости, имеют пользовательский тип OBJ_CUSTOM . Если ваши объекты имеют другой тип, вам может потребоваться соответствующим образом изменить проверку ObjectGet().
Легендарная функция 😄
P.S. Если вы используете ее для именования, то говорите, что пишете на C++, так он будет вести себя как наркоман гораздо реже
Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий
Тестовая версия MQL5 Copilot в бета-версии 3647
Ренат Фатхуллин, 2023.04.13 22:55
Бесплатный проксинг Copilot пока доступен в бета-версии 3681:
Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий
Тестовая версия MQL5 Copilot в бета-версии 3647
Ренат Фатхуллин, 2023.04.14 05:09
Введите случайный ключ и выберите MQL5-аккаунт.
Стоимость бета-версии.