Обсуждение статьи "Применение теории игр Нэша с фильтрацией НММ в трейдинге"

 

Опубликована статья Применение теории игр Нэша с фильтрацией НММ в трейдинге:

Настоящая статья посвящена применению теории игр Джона Нэша, в частности теории равновесия Нэша, в трейдинге. В ней обсуждается, как трейдеры могут использовать скрипты Python и платформу MetaTrader 5 для выявления и использования неэффективности рынка спомощью принципов Нэша. В статье приводится пошаговое руководство по реализации этих стратегий, включая использование скрытых Марковских моделей (HMM) и статистического анализа, для повышения эффективности торговли.

Равновесие Нэша - это концепция в теории игр, при которой предполагается, что каждый игрок знает равновесные стратегии других игроков, и ни один игрок не может улучшить свой выигрыш, изменяя только собственную стратегию.

В соответствии с теорией равновесия Нэша стратегия каждого игрока является оптимальной с учетом стратегий всех остальных игроков. В игре может быть несколько равновесий Нэша или их вообще может не быть.

Равновесие Нэша - фундаментальное понятие в теории игр, названное в честь математика Джона Нэша. Она описывает состояние в игре c индивидуальными игроками, в которой каждый игрок выбрал свою стратегию, и ни один игрок не может извлечь выгоду, изменив свою стратегию в одностороннем порядке, в то время как другие игроки сохраняют свою неизменной.

Application of Nash's Game Theory with HMM Filtering in Trading

Автор: Javier Santiago Gaston De Iriarte Cabrera

 

Я потратил целый день, пытаясь разобраться в вашем коде. Инструкции в разделе Python были понятны, и я смог воспроизвести почти те же результаты бэктестов, что и вы. Однако последующая часть статьи была довольно туманной, в ней почти не объяснялась логика статистического арбитража при торговле парами и то, как именно применяется теория игр.

Вот два примера проблем, с которыми я столкнулся при работе с вашим кодом:

  1. Функция isPositiveDefinite() предназначена для проверки того, является ли единичная ковариационная матрица 3×3 положительно определенной. Однако в InitializeHMM вы передаете в isPositiveDefinite() весь массив emissionCovs, а не отдельные матрицы 3×3.

  2. Способ количественной оценки сигнала стратегии также несовершенен. И лог-вероятность стратегии, и тренд стратегии выводят точно такой же сигнал, в то время как сигнал HMM кажется нерелевантным. Отключение сигнала HMM буквально ничего не меняет, однако вся ваша статья сосредоточена вокруг реализации HMM.

Ваша стратегия основана на арбитраже, и размер лота должен быть ее важнейшей частью. У вас есть функция calculateLotSize(), но она не используется в вашей демонстрации. И вы всерьез полагаете, что розничные трейдеры будут торговать почти каждую 4-часовую свечу? Поздний результат бэктеста не был прибыльным, но вы утверждаете, что его нужно оптимизировать каждые пару месяцев. Но что именно должно быть оптимизировано? Период индикатора?

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

 
Zhuo Kai Chen бэктестов, что и вы. Однако последующая часть статьи была довольно туманной, в ней практически не объяснялась логика статистического арбитража при торговле парами и то, как именно применяется теория игр.

Вот два примера проблем, с которыми я столкнулся при работе с вашим кодом:

  1. Функция isPositiveDefinite() предназначена для проверки того, является ли единичная ковариационная матрица 3×3 положительно определенной. Однако в InitializeHMM вы передаете в isPositiveDefinite() весь массив emissionCovs, а не отдельные матрицы 3×3.

  2. Способ количественной оценки сигнала стратегии также несовершенен. И лог-вероятность стратегии, и тренд стратегии выводят точно такой же сигнал, в то время как сигнал HMM кажется нерелевантным. Отключение сигнала HMM буквально ничего не меняет, однако вся ваша статья сосредоточена вокруг реализации HMM.

Ваша стратегия основана на арбитраже, и размер лота должен быть ее важнейшей частью. У вас есть функция calculateLotSize(), но она не используется в вашей демонстрации. И вы всерьез полагаете, что розничные трейдеры будут торговать почти каждую 4-часовую свечу? Поздний результат бэктеста не был прибыльным, но вы утверждаете, что его нужно оптимизировать каждые пару месяцев. Но что именно должно быть оптимизировано? Период индикатора?

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

Я также потратил много времени, этот код не понятен, даже есть ошибки