Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, Максим.
Я поигрался с кодом и ввел разные типы данных для входных векторов признаков: Close, Open, High, Low, Price Typical, Tick Volumes и производные от них.
У меня были проблемы с оптимизатором, который жаловался на "какую-то ошибку после завершения прохода", но в конце концов мне удалось это отследить: ошибки оптимизатора возникают, если данные входного вектора имеют нулевые значения.
Если я строил производную, например Close[1]-Close[2], то иногда значения close совпадали, что давало нулевую производную. Для таких типов значений входных векторов я нашел самое простое решение - добавить константу, скажем, 1000, ко всем значениям векторов. Это устранило ошибки оптимизатора и позволило RDF функционировать.
Я также заметил непредвиденное последствие выполнения одних и тех же тестов снова и снова: количество подгонок кривых увеличивается за период тестирования. Иногда лучше удалить записанные файлы RDF и запустить оптимизацию снова.
Я продолжаю экспериментировать, и у меня есть еще идеи для других типов функций.
Спасибо Максиму.
Я поиграл с кодом и ввел различные типы данных для входных векторов признаков. Я пробовал Close, Open, High, Low, Price Typical, Tick Volumes и производные от них.
У меня были проблемы с тем, что оптимизатор жаловался на "какую-то ошибку после завершения прохода", но в итоге мне удалось это отследить: ошибки оптимизатора возникают, если данные входного вектора имеют нулевые значения.
Если я строил производную, например Close[1]-Close[2], то иногда значения close совпадали, что давало нулевую производную. Для таких типов значений входных векторов я нашел самое простое решение - добавить константу, скажем, 1000, ко всем значениям вектора. Это устранило ошибки оптимизатора и позволило RDF функционировать.
Я также заметил непредвиденное последствие выполнения одних и тех же тестов снова и снова: количество подгонок кривых увеличивается за период тестирования. Иногда лучше удалить записанные файлы RDF и запустить оптимизацию снова.
Я продолжаю экспериментировать, и у меня есть еще идеи для других типов функций.
Привет, Марк. Зависит от алгоритма выбора признака (в случае данной статьи это 1 признак/другой признак (с использованием ценовых доходностей) в "рекурсивной функции устранения"), поэтому если у вас в делителе стоит "0", то при использовании cl[1]-cl[2] может возникнуть "некоторая ошибка".
Да, разные прогоны оптимизатора могут отличаться, так как используется случайная выборка, также случайный алгоритм RDF. Чтобы исправить это, вы можете использовать MathSrand(number_of_passes) в экспертной функции OnInint(), или другое фиксированное число.
Да, если переписать всю логику (в том числе RF) на ядрах open cl :) также random forest имеет худшую реализуемость на gpu и параллельность
Привет, Максим, я просто смотрел на твой код. Я заметил, что хотя файлы с лучшей моделью, признаками и значениями параметров сохраняются во время оптимизации (" OFFLINE") . Обновление политики агента и обновление вознаграждения агента также "OFFLINE", если вы решите запустить советник, так как вознаграждение и политика обновляются во время работы советника в реальном времени, поскольку MQLInfoInteger(MQL_OPTIMIZATION) == true в автономном режиме, а при работе на демо или реальном счете с вашим советником MQLInfoInteger(MQL_OPTIMIZATION) == false. Я что-то упустил ????
Привет Максим, я тут посмотрел на твой код и заметил, что даже если файлы с лучшей моделью, характеристиками и значениями параметров сохраняются во время оптимизации (" OFFLINE") . Обновление политики агента и обновление вознаграждения агента также "OFFLINE", если вы решите запустить советника, так как вознаграждение и политика обновляются во время работы советника в реальном времени, поскольку MQLInfoInteger(MQL_OPTIMIZATION) == true в автономном режиме, а при работе на демо или реальном счете с вашим советником MQLInfoInteger(MQL_OPTIMIZATION) == false. Я что-то упустил ????
Здравствуйте, политика и вознаграждения не обновляются в реальной торговле, они нужны только для обучения случайного леса в оптимизаторе.
Опубликована новая статья Применение метода Монте-Карло в обучении с подкреплением:
Автор: Максим Дмитриевский
есть такой файл, в котором не хватает " #include <MT4Orders.mqh> " и фонкции выглядят как MT4 fonction.
Так это эксперт MT4 или эксперт MT5?
есть этот файл, который отсутствует, " #include <MT4Orders.mqh> " и фонкции выглядят как MT4 фонкции.
Так это эксперт MT4 или эксперт MT5?
Эта библиотека позволяет использовать стиль ордеров МТ4 в МТ5
https://www.mql5.com/ru/code/16006
хорошо, спасибо
неправильно или устарел:
CRLAgent::getRDFstructure(void) { ......
право:
void CRLAgent::getRDFstructure(void) {......
Еще одна версия компилятора?
неправильно или устарел:
CRLAgent::getRDFstructure(void) { ......
право:
void CRLAgent::getRDFstructure(void) {......
Еще одна версия компилятора?
Да, добавили в последнем билде более строгую проверку.
Здравствуйте Максим, спасибо за вашу работу, я пытался протестировать ваш код, однако он показывает мне несколько ошибок в mq4 файле со следующим текстом
'getRDFstructure' - функция уже определена и имеет другой тип RL_Monte_Carlo.mqh 76 11
'RecursiveElimination' - функция уже определена и имеет другой тип RL_Monte_Carlo.mqh 133 11
'updatePolicy' - функция уже определена и имеет другой тип RL_Monte_Carlo.mqh 221 11
'updateReward' - функция уже определена и имеет другой тип RL_Monte_Carlo.mqh 236 11
'setAgentSettings' - функция уже определена и имеет другой тип RL_Monte_Carlo.mqh 361 12
'updatePolicies' - функция уже определена и имеет другой тип RL_Monte_Carlo.mqh 373 12
'updateRewards' - функция уже определена и имеет другой тип RL_Monte_Carlo.mqh 380 12
Вы знаете, как решить эту проблему?