Обсуждение статьи "Пишем первую модель стеклянного ящика (Glass Box) на Python и MQL5"

 

Опубликована статья Пишем первую модель стеклянного ящика (Glass Box) на Python и MQL5:

Модели машинного обучения трудно интерпретировать, и понимание того, почему модели не совпадают с нашими ожиданиями, может очень сильно помочь в конечном итоге достичь нужного результата от использования таких современных методов. Без всестороннего понимания внутренней работы модели может быть сложно найти ошибки, которые ухудшают производительность. При этом можно тратить время на создание функций, которые не влияют на качество прогноза. В итоге, какой бы хорошей ни была модель, мы упускаем все ее основные преимущества из-за собственных ошибок. К счастью, существует сложное, но при этом хорошо разработанное решение, которое позволяет ясно увидеть, что происходит под капотом модели.

Алгоритмы стеклянного (или белого) ящика — это прозрачные алгоритмы машинного обучения, которые учитывают внутренние механизмы системы. Они ставят под сомнение общепринятое мнению о том, что машинное обучение строится на компромиссе между точностью прогнозов и интерпретируемостью. Для этого такие модели обеспечивают высокий уровень точности и прозрачности. Это означает, что их экспоненциально легче отлаживать, поддерживать и улучшать после очередной итерации по сравнению с более распространенным "черным ящиком". Модели черного ящика — это когда слишком сложный процесс внутри системы скрыт от внешней среды. Такие модели зачастую представляют собой многомерные и нелинейные отношения, которые нам, людям, нелегко понять.

Как правило, модели черного ящика следует использовать только в тех случаях, когда "стеклянный ящик" не может обеспечить тот же уровень точности. В этой статье мы построим прозрачную модель и рассмотрим потенциальные преимущества ее использования. Рассмотрим два способа работы модели с терминалом MetaTrader 5:

  1. Устаревший подход — простейший из возможных подходов. Мы просто подключим модель к терминалу MetaTrader 5, используя встроенную библиотеку Python в MetaTrader 5. После этого мы на MQL5 напишем советник для использования этой модели.
  2. Современный подход — это рекомендуемый способ интеграции моделей машинного обучения в советник. Мы экспортируем нашу модель "стеклянного ящика" в формат ONNX (Open Neural Network Exchange), а затем загрузим ее непосредственно в советник в качестве ресурса. Это позволит использовать все полезные функции, доступные в MetaTrader 5, и объединить их со всеми возможностями нашей модели стеклянного ящика.


Автор: Gamuchirai Zororo Ndawana

 

Отличная статья с множеством новых идей. Мне понравилось, как вы интегрируете python для MT5. Эта статья является фундаментальной ссылкой для демонстрации манипулирования данными, построения графиков и моделирования на python.

 
amrali #:

Отличная статья с множеством новых идей. Мне понравилось, как вы интегрируете python для MT5. Эта статья является фундаментальной ссылкой для демонстрации манипулирования данными, построения графиков и моделирования на python.

Большое спасибо за теплые слова, я рад, что вам понравилось читать статью. И я с нетерпением жду, когда смогу поделиться с вами новыми знаниями в будущем.

 

Потрясающее спасибо, хорошо объяснены и четкие инструкции, собираюсь посмотреть, если я могу следовать вашим всеобъемлющим инструкциям, спасибо за идеи.

Отличная вещь, удалось подключиться к демо-аккаунту (только подмножество символов там ожидать, что это демо-счет ) попробовал один, который был там AUDHKD, но застрял в разногласиях проблема строки 204,

требуется хотя бы один массив или dtype

ValueError: требуется хотя бы один массив или dtype

Попробовал с NZDCNH, вроде работает через несколько итераций, но проваливается в sklern\multiclass в строке 167 с datahandling

debug говорит мне, что valueerror в строке 204 требуется один массив или dtype - возможно, мне нужно проверить мою демонстрационную среду, так как я создал ее только сегодня :)


на стандартном индексе Boom1000 проблема в строке 100 с датой и временем. raise KeyError(key)

KeyError: 'time' . Возможно, проблема в том, что мой часовой пояс - Новая Зеландия.

Сегодня у меня нет времени на тестирование, попробую завтра.
 
linfo2 демо-счет ) попробовал один, который был там AUDHKD, но застрял в разногласиях проблема строки 204,
требуется хотя бы один массив или dtype

ValueError: требуется хотя бы один массив или dtype

Попробовал с NZDCNH, вроде работает через несколько итераций, но проваливается в sklern\multiclass в строке 167 с datahandling

debug говорит мне, что valueerror в строке 204 требуется один массив или dtype - возможно, мне нужно проверить мою демонстрационную среду, так как я создал ее только сегодня :)


на стандартном индексе Boom1000 проблема в строке 100 с датой и временем. raise KeyError(key)

KeyError: 'time' . Возможно, проблема в том, что мой часовой пояс - Новая Зеландия.

Сегодня у меня нет времени на тестирование, попробую завтра.

Привет, Линфо, надеюсь, это поможет:

1) Столбец 'time' - это имя, которое мой брокер дал временной метке UNIX, которая отмечает каждую строку в данных, которые я извлек. Возможно, ваш брокер использует другое имя, например 'date'. Проверьте кадр данных, который вы получаете после вызова copy_rates_range. Тот факт, что вы получаете ошибку "KeyError", может означать, что либо датафрейм абсолютно пуст, либо в нем нет столбца с именем 'time', возможно, на вашей стороне он имеет другое имя.

2) Проверьте вывод copy_rates_range, из того, что вы описали, я думаю, что именно здесь все может развалиться. Проверьте имена столбцов данных, которые возвращаются вам после выполнения вызова.

Если эти шаги не сработают, дайте мне знать.

 

Спасибо за оперативную обратную связь и советы.

Обновляю здесь, так как это может быть полезно другим. Мои проблемы ;

1) Я создал новый демо-счет для тестирования и не все валюты были доступны для Это решается путем открытия счета и убедиться, что валюты, которые вы хотите активны (золотой цвет)

2) Не было индекса Boom1000 (данных), предоставленных мне сервером, он был в списке, но не на моем счете (убедитесь, что вы изменили значение по умолчанию на то, к которому у вас есть доступ, и это может дать результат).

3) Для меня результаты интерпретации не отображались в std python, я мог работать только с установленной anaconda (было бы проще, если бы я сначала установил ее).

После этой заминки документация была ясной и полезной, я все еще перевариваю результаты, поэтому пока не перешел к стороне mql5.

Еще раз спасибо за публикацию, и я с нетерпением жду, когда смогу лучше понять процесс. С уважением, Нил

 
linfo2 демо-счет, чтобы проверить это, и не все валюты были доступны для Это решается путем открытия счета и убедиться, что валюты, которые вы хотите активны (золотой цвет)

2) Не было индекса Boom1000 (данные), предоставленные мне сервером, он был в списке, но я не против моего счета (убедитесь, что вы изменить по умолчанию, чтобы быть то, что у вас есть доступ, и это может дать результат).

3) Для меня результаты интерпретации не отображались в std python, я мог работать только с установленной anaconda (было бы проще, если бы я сначала установил ее).

После этой заминки документация была понятной и полезной, я все еще перевариваю результаты, поэтому пока не перешел к стороне mql5.

Еще раз спасибо за публикацию, и я с нетерпением жду, когда смогу лучше понять процесс. С уважением, Нил

Я рад видеть, что вы добились существенного прогресса, Нил.

 

Удивительно: самая главная для понимания материала фраза - в самом конце статьи:

текущие реализации моделей стеклянного ящика основаны на деревьях решений

 
Stanislav Korotky # :

Surprisingly: the most important phrase for understanding the material is at the very end of the article:

Yes you're right, looking back that information should've been covered in the introduction or the synopsis, your feedback will be applied in future. 
Причина обращения: