Как начать работу с MT5, краткое описание! - страница 6

 

Кое-что о просадке -

--------------------

Просадка в сигнале - Где я могу найти открытую максимальную просадку сигнала? (хорошая тема с объяснениями).

--------------------

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Является ли терминология Relative DrawDown идентичной терминологии Absolute Draw Down?

Michele Lazzarini, 2014.08.09 02:16

Абсолютный: по сравнению с начальным балансом

Максимальный: наибольшая просадка (измеряется в валюте)

Относительная: наибольшая относительная просадка (измеряется в %)
Это потому, что вы можете иметь раннюю просадку, большую в %, но не в валюте.
Максимальная может скрывать наибольшую просадку в %, произошедшую ранее.

Relative - это индекс устойчивости к просадкам, который можно использовать для сравнения различных результатов.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Для оценки эффективности я нахожу полезным следующее выражение:

Эффективность = Чистая прибыль / Валовая прибыль

Это выражение можно использовать в сочетании с относительной просадкой для оценки реальной надежности стратегии:

Надежность = Эффективность / Относительная просадка


Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Максимальная просадка

Сергей Голубев, 2016.09.28 08:20

Вот что я нашел:
...

В мире существует множество "просадок":

  • Абсолютная
  • Максимальная
  • Относительная
  • Максимальная просадка по открытым сделкам с акциями
  • может быть больше.

Я не уверен, какой вид просадки используется для сигналов (я думаю, что это может быть "Максимальная просадка по открытым сделкам" как максимальная возможная просадка), но вы можете прочитать следующее:

Статья: Что означают цифры в отчете экспертного тестирования

Небольшая тема: Является ли терминология Relative DrawDown идентичной терминологии Absolute Draw Down?

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

О просадке

Сергей Голубев, 2022.02.27 13:09

...
Как я знаю - трейдеры используют некоторые инструменты/индикаторы для МТ4 и МТ5 для отображения абсолютной просадки по открытым сделкам с акциями,
например: пост

А еще можно почитать вот эту статью - Что означают цифры в отчете экспертного тестирования

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Спросить о просадке

Сергей Голубев, 2016.11.09 08:34

Что означают цифры в отчете о тестировании эксперта

  • Абсолютная просадка - это разница между начальным депозитом и наименьшим значением баланса в рамках тестирования:

    AbsoluteDrawDown = InitialDeposit - MinimalBalance

  • Максимальная просадка - это наибольшая разница между одним из локальных верхних экстремумов графика баланса и последующими нижними экстремумами:

    MaximalDrawDown = Max of (Maximal Peak - следующий Minimal Peak)

    Процент максимальной просадки показывает соотношение между максимальной просадкой и значением соответствующего локального верхнего экстремума:

    MaxDrawDown % = MaxDrawDown / его MaxPeak * 100%.
Любой эксперт может быть протестирован на исторических данных. После тестирования эксперта на вкладке "Отчет" отображаются обобщенные результаты тестирования эксперта и некоторые ключевые характеристики. Отчеты позволяют сравнивать между собой как различных экспертов, так и результаты работы одного и того же эксперта при различных входных данных. В этой статье рассказывается о том, как читать такие отчеты и правильно интерпретировать полученные результаты.



About Drawdown
About Drawdown
  • 2022.02.27
  • www.mql5.com
Hello. I'm backtesting an EA on metatrader...
 

Кое-что новое в документации:
Модели ONNX в машинном обучении

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

Машинное обучение в трейдинге: теория, модели, практика и алгоритмическая торговля

Ренат Фатхуллин, 2023.02.26 13:06

Для штатного ONNX Runtime от Microsoft заявлена минимальная версия Windows 10 build 1809.

А в C:\Windows\System32\onnxruntime.dll лежит очень старая версия 1.10. В настоящее время желаемая версия 1.14.

Мы напишем пошаговые статьи/инструкции по использованию возможностей ONNX.


Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

Машинное обучение в трейдинге: теория, модели, практика и алгоритмическая торговля

Ренат Фатхуллин, 2023.02.26 18:04

Они будут доступны на рынке, в тестере тоже, включая Cloud Network.

ONNX Runtume будет переписан и переработан, чтобы не зависеть от устаревших системных библиотек.

Файлы ONNX легко включаются в проекты, шифруются и сжимаются внутри файлов EX5. Чистые роботы получаются из одного файла.



Схема работы:

  1. Обучить модель на стороне, например, на Python.
  2. Конвертируйте ее в onnx
  3. Включить в робота и использовать (обучение недоступно, только вывод)

-------------------------------

В MetaEditor -



публичный проект ONNX

Documentation on MQL5: ONNX models
Documentation on MQL5: ONNX models
  • www.mql5.com
ONNX models - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

Еще немного о ONNX ( Модели ONNX в машинном обучении ) -
Часть #1. Как тестировать модели ONNX:

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

Машинное обучение в трейдинге: теория, модели, практика и алгоритмическая торговля

Ренат Фатхуллин, 2023.02.28 21:32

Выпущена бета-версия 3589, на которой можно протестировать модели ONNX.

Шаг за шагом:

  1. Обновитесь до версии 3589 через Help -> Check Desktop Updates -> Latest Beta Version

  2. Активируйте MQL5 Storage, указав правильный логин MQL5 (не email) в регистрозависимой форме:






  3. У кого поврежден конфиг и MQL5 Storage не работает, откройте проводник через Файл -> Открыть папку данных, перейдите в каталог MQL5 и удалите следующие файлы:


    Затем перейдите к шагу 2

  4. Присоединитесь к проекту ONNX.Price.Prediction из контекстного меню с помощью команды Join



  5. Откройте Навигатор, откройте раздел Shared Projects и вызовите из контекстного меню команду Update from Storage для проекта ONNX.Price.Prediction:



    Проект будет загружен из MQL5 Storage (Subversion).

  6. Откройте проект и щелкните на ONNX.Price.Prediction.mqproj - это файл проекта.



  7. Скопируйте проект и запустите его на EURUSD, H1.

  8. Получите результат:
    .
    2023.02 . 28 21 : 54 : 43.316 Scripts script ONNX.Price.Prediction (EURUSD,H1) loaded successfully
    2023.02 . 28 21 : 54 : 43.348 ONNX    initialized [API version 1.14 . 0 ]
    
    in the Experts log: the last two lines are important, and the rest are specially included debug logs by the ONNX_DEBUG_LOGS flag
    
    2023.02 . 28 22 : 11 : 53.441 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
    2023.02 . 28 22 : 11 : 53.441 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Dynamic block base set to 0
    2023.02 . 28 22 : 11 : 53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Initializing session.
    2023.02 . 28 22 : 11 : 53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Adding default CPU execution provider.
    2023.02 . 28 22 : 11 : 53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total shared scalar initializer count: 0
    2023.02 . 28 22 : 11 : 53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total fused reshape node count: 0
    2023.02 . 28 22 : 11 : 53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total shared scalar initializer count: 0
    2023.02 . 28 22 : 11 : 53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total fused reshape node count: 0
    2023.02 . 28 22 : 11 : 53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Use DeviceBasedPartition as default
    2023.02 . 28 22 : 11 : 53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Saving initialized tensors.
    2023.02 . 28 22 : 11 : 53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Done saving initialized tensors
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Session successfully initialized.
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Number of streams: 1
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Begin execution
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 0
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 1 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 1
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 2 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 3
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 6 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 4
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 8 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 5
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 9 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 6
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 7
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 2
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 3 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 11 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 8
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 9
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 16 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 10
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 11
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 22 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 12
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 25 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 13
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 27 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 27
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 17
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 18
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 28 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 28
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 30 released
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 26
    
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       [- 1.5921557 ]
    2023.02 . 28 22 : 11 : 53.445 ONNX.Price.Prediction (EURUSD,H1)       predicted 1.0591759612759748
    
  9. Если не работает, то либо старая версия ONNX Runtime, либо она отсутствует

    В этом случае скачайте архив ONNX Runtime 1.14, подписанный Microsoft, распакуйте его в корневой каталог терминала рядом с файлом terminal64.exe и перезапустите терминал:

К проекту сразу прикреплен простейший model.onnx, обученный ради примера, чтобы вы могли увидеть демо.



Чтобы обучить модель самостоятельно, нужно использовать скрипты Python, включенные в проект:

  1. Установите Python 3 (например, Python 3.10) и поставьте/обновите пакеты:
    python.exe -m pip install --upgrade pip
    pip install --upgrade tensorflow
    pip install --upgrade pandas
    pip install --upgrade scikit-learn
    pip install --upgrade matplotlib
    pip install --upgrade tqdm
    pip install --upgrade metatrader5
    pip install --upgrade onnx== 1.12
    pip install --upgrade tf2onnx
    Пакет onnx с версией 1.12, указанной так, чтобы не конфликтовать с требованиями tensorflow.

  2. Запустите MetaEditor и убедитесь, что Python распознан в Tools -> Options -> Compilers:



    При необходимости укажите путь самостоятельно, если редактор не может определить его самостоятельно.

  3. Торговый терминал должен быть подключен к серверу, на котором есть EURUSD (например, MetaQuotes-Demo)

    Убедитесь, что в настройках терминала включена интеграция с Python. Если она была отключена, то включите и перезапустите терминал:




  4. Перейдите к проекту ONNX.Price.Prediction в навигаторе и откройте файл PricePredictionTraning.py


  5. Запустите скрипт на компиляцию, что для скрипта на Python означает запуск.

    Скрипт, использующий пакет MetaTrader5, свяжется с терминалом (если он выключен, то запустится автоматически) и начнет обучение на EURUSD, H1:


    По завершении в редакторе журнала появится:
    .
     2023.02 . 28 22 : 24 : 16.876 Python   107 / 107 [==============================] - 0 s 1 ms/step - loss: 1.9167 - mae: 0.8553
    2023.02 . 28 22 : 24 : 16.876 Python  test_loss= 1.917
    2023.02 . 28 22 : 24 : 16.876 Python  test_mae= 0.855
    2023.02 . 28 22 : 24 : 17.179 Python  saved model to C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\ 8 D1E0A7047FFD62A8C00B09AEC1F3004\MQL5\Shared Projects\ONNX.Price.Prediction\Python\model.onnx
    2023.02 . 28 22 : 24 : 17.291 Storage modify MQL5\Shared Projects\ONNX.Price.Prediction\Python\model.onnx to base
    
    Новая модель model.onnx будет сохранена/обновлена в проекте. Ее уже можно использовать.

  6. Запустите скрипт PricePrediction.py, чтобы убедиться, что модель работает:
     2023.02 . 28 22 : 27 : 46.078 Python  data path to load onnx model C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\ 8 D1E0A7047FFD62A8C00B09AEC1F3004\MQL5\Shared Projects\ONNX.Price.Prediction\Python\
    2023.02 . 28 22 : 27 : 46.078 Python  [[[ 1.061412 1.062328 1.060358 1.061169 ]]]
    2023.02 . 28 22 : 27 : 46.078 Python  [[[ 0.00105361 0.00119785 0.00074662 0.00125179 ]]]
    2023.02 . 28 22 : 27 : 46.078 Python  [[[ 0.18792516    0.17698306    0.01607251 - 0.45455042 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [- 0.77068297 - 0.50757406    0.2839477    0.36827372 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [ 0.21639867 - 0.3823502    0.48485409 - 0.19891574 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [- 0.46696554 - 0.31556414    0.33752274    0.48011389 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [ 0.3302927    0.7196198    1.36884221    1.56656129 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [ 1.63058293    1.46261473    1.39562973    1.74231014 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [ 1.82040632    1.84663458 - 0.26519644 - 0.52644768 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [- 0.84661232 - 0.50757406 - 0.45270907 - 0.86995678 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [- 1.27371495 - 1.11699687 - 1.10900328 - 0.48650476 ]
    2023.02 . 28 22 : 27 : 46.078 Python    [- 0.82762998 - 1.37579285 - 2.0599602   - 1.62088366 ]]]
    2023.02 . 28 22 : 27 : 46.094 Python  [[- 1.6349795 ]]
    2023.02 . 28 22 : 27 : 46.094 Python  predict:  [ 1.05912 ]
    
  7. Тестовый пример сработал!


Это специально созданный пример для демонстрации обучения и работы модели.

Вы можете конвертировать свои собственные модели TensorFlow в формат ONNX с помощью пакетов onnx и tf2onnx python:

import tf2onnx
...
onnx_model = tf2onnx.convert.from_keras(model, output_path=output_path)

ps: используйте последнюю версию проекта, так как прототипы функций в старой версии изменились.

Documentation on MQL5: ONNX models
Documentation on MQL5: ONNX models
  • www.mql5.com
ONNX models - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

Дальше будет больше ( модели ONNX в машинном обучении ) -
Часть #2. Более подробно о том, как установить и конвертировать:

Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

Машинное обучение в трейдинге: теория, модели, практика и алгоритмическая торговля

Ренат Фатхуллин, 2023.03.01 16:33

https://learn.microsoft.com/en-us/windows/ai/windows-ml/onnxmltools

ONNXMLTools позволяет конвертировать модели из различных наборов инструментов машинного обучения в формат ONNX.

Инструкции по установке и использованию доступны в GitHub-репозитории ONNXMLTools.

Поддержка

В настоящее время поддерживаются следующие наборы инструментов:

Pytorch также имеет встроенный экспортер ONNX. Более подробную информацию можно найти здесь.


Documentation on MQL5: ONNX models
Documentation on MQL5: ONNX models
  • www.mql5.com
ONNX models - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Продолжение следует ( Модели ONNX в машинном обучении ) -
Часть #4. больше не требует сторонних библиотек ONNX Runtime :


Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий

Машинное обучение в трейдинге: теория, модели, практика и алгоритмическая торговля

Ренат Фатхуллин, 2023.03.03 13:54

Терминал больше не требует сторонних библиотек ONNX Runtime.

Теперь модели onnx можно запускать на любой платформе, где запущен терминал и тестер. Будет доступно в следующей бета-версии.


Documentation on MQL5: ONNX models
Documentation on MQL5: ONNX models
  • www.mql5.com
ONNX models - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

Тестовая версия MQL5 Copilot в бета-версии 3647

Тестовая версия MQL5 Copilot в бета-версии 3647 -
https://www.mql5.com/ru/forum/444170
--------------
MetaEditor, Open AI и ChatGPT

MetaEditor, Open AI and ChatGPT
MetaEditor, Open AI and ChatGPT
  • 2023.03.24
  • www.mql5.com
Forum on trading, automated trading systems and testing trading strategies Test version of MQL5 Copilot in beta 3647 Renat Fatkhullin , 2023.03...
 
Information about the ONNX model's inputs and outputs
Information about the ONNX model's inputs and outputs
  • www.mql5.com
The script obtains information about the number, types and sizes of input and output tensors in an ONNX model
 

проекте Open Neural Network Exchange (ONNX), который представляет собой открытый формат для представления моделей традиционного и глубокого обучения. В ней также описывается ONNX Runtime, высокопроизводительный движок для запуска этих моделей.

ONNX Runtime полностью соответствует операторам, определенным в спецификации ONNX, и работает как на CPU, так и на GPU на многих платформах, включая Linux, Windows и Mac.

Представлено пошаговое руководство по конвертации, загрузке и запуску модели с помощью ONNX Runtime в Azure ML и продемонстрированы потенциальные преимущества, включая повышение производительности и эффективности прогнозирования для различных моделей.

Также предлагается попробовать ONNX и внести свой вклад в растущее сообщество ONNX.

Learning ONNX for trading
Learning ONNX for trading
  • 2023.03.31
  • www.mql5.com
We have added support for ONNX models in MQL5 since we believe this is the future...