English 中文 Español Deutsch 日本語
preview
От Python к MQL5: Путешествие в квантовые торговые системы

От Python к MQL5: Путешествие в квантовые торговые системы

MetaTrader 5Трейдинг |
536 1
Javier Santiago Gaston De Iriarte Cabrera
Javier Santiago Gaston De Iriarte Cabrera

Введение

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

В этой статье рассматривается применение квантовых концепций в торговых системах, объединяющих теоретические квантовые вычисления с практической реализацией на языке MQL5. Мы познакомимся с основными квантовыми принципами и пройдем путь от создания прототипа Python до интеграции MQL5 с использованием реальных данных о производительности.

В отличие от традиционной торговли, которая основана на принятии бинарных решений, квантовые торговые модели извлекают выгоду из рыночного поведения, схожего с квантовыми явлениями, — множественными одновременными состояниями, взаимосвязями и резкими сменами состояний. Используя квантовые симуляторы, такие как Qiskit, мы можем применять квантовые алгоритмы на классических компьютерах для управления рыночной неопределенностью и генерирования прогностических идей.

Схемы

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

В нашей реализации на Python Qiskit моделирует квантовые схемы. Рыночные данные кодируются в квантовые состояния с помощью RY (вращательных) вентилей, представляющих рыночные характеристики в виде квантовых суперпозиций. Вентили CNOT обеспечивают запутанность, фиксируя сложные рыночные корреляции, а измерения дают прогнозы, достигая точности 54%.

Версия MQL5, благодаря своей классической архитектуре, приближается к квантовому поведению. Мы используем извлечение признаков и классическую математику для моделирования квантовых состояний и запутанности. Хотя реализация MQL5 менее точна (52%), она поддерживает торговлю в реальном времени и прямое подключение к рынку.

Каждый подход обрабатывает данные по-разному: Python напрямую кодирует данные в квантовые состояния, тогда как MQL5 требует проектирования функций. Qiskit на Python предлагает настоящие квантовые вентили, тогда как MQL5 опирается на классические приближения, добавляя сложности, но и гибкости. При моделировании запутанности вентили CNOT в Python создают аутентичные квантовые связи, тогда как MQL5 использует классические корреляции.

Эти различия раскрывают сильные стороны и ограничения каждого подхода. Python предоставляет надежный прототип, а MQL5 предлагает практичное, пригодное для торговли решение, которое адаптирует квантовые вычисления к классическим торговым ограничениям.


Прототип на Python: Основа для инноваций

Мы начали с Python из-за его надежных научных библиотек — NumPy, Pandas и особенно Qiskit, — которые сделали этот язык идеальным для прототипирования нашей квантовой торговой системы. Простой синтаксис и ресурсы Python позволили эффективно экспериментировать и разрабатывать начальные алгоритмы.

Прототип Python продемонстрировал стабильный показатель успешности в 54% в различных рыночных условиях — скромное, но значимое преимущество при разумном управлении рисками.

Используя Qiskit, мы разработали и протестировали трехкубитную архитектуру, позволяющую одновременно анализировать восемь состояний рынка. Гибкость Python позволила быстро вносить изменения в схемы, настраивать параметры и получать быстрые результаты, что упростило процесс разработки.

Вот упрощенный пример реализации нашей квантовой схемы на Python:

class HourlyQuantumForex:
    def __init__(self):
        self.n_qubits = 3
        self.simulator = BasicAer.get_backend('qasm_simulator')
        self.min_confidence = 0.15

    def create_circuit(self, input_data):
        qc = QuantumCircuit(self.n_qubits, self.n_qubits)
        # Input encoding
        for i in range(self.n_qubits):
            feature_idx = i % len(input_data)
            angle = np.clip(np.pi * input_data[feature_idx], -2*np.pi, 2*np.pi)
            qc.ry(angle, i)
        
        # Entanglement operations
        for i in range(self.n_qubits - 1):
            qc.cx(i, i + 1)
        
        return qc


Переход к MQL5: Практическая реализация

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

Причинами небольшого снижения точности (54 против 51–52%) являются трудности анализа рыночных данных в реальном времени и различия в реализации квантового симулятора Python и традиционной вычислительной среды MQL5.

Вот краткий обзор нашей реализации на MQL5, вдохновленной квантовой технологией:

class CQuantumForex {
private:
    int m_lookback_bars;
    double m_features[];
    
public:
    double PredictNextMove(string symbol) {
        GetFeatures(symbol, m_features);
        return SimulateQuantumCircuit(m_features);
    }
    
    double SimulateQuantumCircuit(double &features[]) {
        // Quantum-inspired calculations
        double state_probs[];
        ArrayResize(state_probs, (int)MathPow(2.0, (double)NUM_QUBITS));
        
        // Circuit simulation logic
        for(int shot = 0; shot < SHOTS; shot++) {
            // Quantum state manipulation
        }
        
        return GetWeightedVote(state_probs);
    }
};


Реальное применение и результаты

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

В результате нашего тестирования в различных рыночных условиях были получены следующие результаты:

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

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

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

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


Показатели производительности и анализ

Необходимо тщательное изучение разницы в производительности между нашим прототипом на Python и реализацией на MQL5. Это различие отражает трудности перехода от контролируемой среды тестирования к рыночным настройкам в реальном времени, а не просто ограничение платформы MQL5. MQL5-решение учитывает тонкости динамики рынка в реальном времени и ограничения обработки данных, тогда как прототип на Python работал с историческими данными и обладал полным знанием рыночных условий.
Resultados para EURUSD=X:
Precisión global: 54.23%


Total predicciones: 11544

Результаты на Python

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


Интеграция MQH: Полезный метод

Наша торговая логика, основанная на квантовых технологиях, легко интегрируется в текущие советники, поскольку она содержится в заголовочном файле MQL5 (MQH). Благодаря этому модульному подходу трейдеры могут включать в свои методы торговли прогнозы, основанные на квантовой теории, без необходимости полностью перестраивать свою торговую систему. В файл MQH включены комплексные возможности для анализа состояния рынка, критериев уверенности и глубокого отслеживания эффективности.

Файл MQH можно включить в уже существующий советник следующим образом:
#include <Trade\Trade.mqh>
#include <Quantum\QuantumForex.mqh>

class CTradeAnalyzer {
private:
    CQuantumForex* m_quantum;
    double m_min_confidence;

public:
    CTradeAnalyzer(double min_confidence = 0.15) {
        m_quantum = new CQuantumForex();
        m_min_confidence = min_confidence;
    }

    bool AnalyzeMarket(string symbol) {
        double prediction = m_quantum.PredictNextMove(symbol);
        return MathAbs(prediction) >= m_min_confidence;
    }
};


Оптимизация и тонкая настройка

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


Пути развития

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


Руководство по практическому внедрению

Мы советуем трейдерам придерживаться методичного подхода. Начните с прототипа на Python, чтобы оценить применимость системы на вашем целевом рынке и ознакомиться с фундаментальными квантовыми идеями. После этого постепенно переходите к реализации MQL5, начиная с торговли "на бумаге", чтобы убедиться, насколько хорошо она работает. После того, как вы почувствуете себя в безопасности, настройте параметры системы в соответствии со своими торговыми потребностями и уровнем устойчивости к риску. Со временем надежность будет повышена за счет регулярного мониторинга показателей производительности.

// Constants
#define NUM_QUBITS 3

Если изменить количество кубитов (NUM_QUBITS), количество возможных выходных состояний изменится экспоненциально. Это фундаментальное свойство квантовых систем, имеющее важное значение для моделирования.

В текущем коде NUM_QUBITS установлен на 3, что дает 8 (2³) возможных состояний. Вот почему мы видим массив состояний, инициализированный размером 8, и цикл, перебирающий 8 возможных состояний. Каждый кубит существует в суперпозиции 0 и 1, и при объединении с другими кубитами число возможных состояний умножается.

Например, если изменить количество кубитов, то получится разное количество возможных состояний: 1 кубит даст вам 2 состояния (|0⟩ и |1⟩), 2 кубита дадут вам 4 состояния (|00⟩, |01⟩, |10⟩, |11⟩), 3 кубита дадут вам 8 состояний, 4 кубита дадут вам 16 состояний и так далее. Закономерность выглядит следующим образом: 2^n, где n — количество кубитов.

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

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

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

#define SHOTS 2000

Shots (в коде SHOTS = 2000) представляет собой количество раз, которое моделируется квантовая схема для аппроксимации квантового поведения. Каждый "shot" запускает всю квантовую схему и выполняет измерение, создавая статистическое распределение результатов.

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

// Simulation loop in the code
for(int shot = 0; shot < SHOTS; shot++)
{
    // Initialize quantum state
    double state[8];  
    ArrayInitialize(state, 0.0);
    state[0] = 1.0;  // Start in |000⟩ state
    
    // Run quantum circuit operations...
    
    // Measure and accumulate results
    const double rand = MathRand() / 32768.0;
    double cumsum = 0.0;
    for(int i = 0; i < 8; i++)
    {
        cumsum += state[i] * state[i];
        if(rand < cumsum)
        {
            state_probs[i] += 1.0 / SHOTS;
            break;
        }
    }
}

Выбор оптимального количества shot для вашей системы квантовой торговли требует балансировки нескольких ключевых факторов. Основной компромисс — между точностью и скоростью выполнения. Установка большего количества импульсов, обычно 5000 или более, даст вам более точное распределение вероятностей квантовых состояний, но это достигается за счет более медленного времени выполнения. И наоборот, использование меньшего количества shot, около 500–1000, приведет к более быстрому выполнению, но менее точным результатам. Текущая настройка по умолчанию в 2000 представляет собой тщательно выбранную золотую середину, призванную сбалансировать эти конкурирующие требования.

При рассмотрении конкретных требований торговли следует учитывать несколько факторов. Решающее значение имеет таймфрейм рынка, на котором вы торгуете: более короткие таймфреймы могут потребовать меньшего количества shot для поддержания реагирования, в то время как более длинные таймфреймы могут вмещать больше для повышения точности. Еще одним важным фактором является доступная вычислительная мощность, поскольку большее количество требует больших вычислительных ресурсов. Кроме того, на ваш выбор должен влиять уровень точности, требуемый для вашей торговой стратегии: стратегии, требующие более высокой точности, выиграют от большего количества моделирование.

Для практической реализации рекомендуется начинать с 1000–2000 выстрелов на начальных этапах тестирования. Это обеспечивает разумную основу для оценки производительности системы. После этого вам следует активно отслеживать как время выполнения, так и показатели точности. Если вы заметили, что результаты слишком шумные или непоследовательные, постепенно увеличивайте количество моделирований. И наоборот, если советник работает слишком медленно для ваших торговых потребностей, рассмотрите возможность сокращения количества моделирований. Такой итеративный подход позволяет вам найти оптимальный баланс для ваших конкретных торговых условий и требований.

# Example of how different shot counts might affect probabilities
# With 100 shots:
State |000⟩: 0.31000.0460)
State |001⟩: 0.18000.0384)

# With 2000 shots:
State |000⟩: 0.30250.0103)
State |001⟩: 0.17500.0085)

# With 10000 shots:
State |000⟩: 0.30020.0046)
State |001⟩: 0.17520.0038)
#define FEATURES_COUNT 7

Определяет количество входных характеристик, используемых квантовой схемой для анализа рынка. Давайте рассмотрим эти 7 особенностей подробнее:

// 1. Normalized price range
features[0] = ((rates[0].high - rates[0].low) / rates[0].close) * 2 - 1;

// 2. Normalized volatility
features[1] = (CalculateVolatility(m_returns, MathMin(12, m_lookback_bars)) / 0.01) * 2 - 1;

// 3. Momentum
features[2] = MathMax(MathMin(CalculateMomentum(m_returns, MathMin(24, m_lookback_bars)) * 100, 1), -1);

// 4-5. Time components (hour of day encoded in circular form)
features[3] = MathSin(2 * M_PI * dt.hour / 24.0);
features[4] = MathCos(2 * M_PI * dt.hour / 24.0);

// 6. Price deviation from SMA
features[5] = MathMax(MathMin((rates[0].close - sma) / sma, 1), -1);

// 7. Latest return
features[6] = MathMax(MathMin(m_returns[0] * 100, 1), -1);

Все характеристики нормализованы до диапазона [-1, 1] для обеспечения согласованного масштабирования квантовой схемы. Вы можете изменить добавить или удалить функции.


Технические соображения и ограничения

Хотя эта система, созданная на основе квантовой теории, демонстрирует многообещающий потенциал, необходимо признать определенные ограничения. Примечательно, что это смоделированный квантовый процесс, а не реальное квантовое вычисление. Требования к обработке данных в реальном времени могут повлиять на производительность, а меняющиеся рыночные условия могут повлиять на точность прогнозов. Чтобы смягчить эти факторы, крайне важно интегрировать в торговую структуру надежные меры управления рисками.

#define HOUR_LOOKBACK 24

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

Период ретроспективного анализа влияет на несколько ключевых расчетов в системе. При анализе волатильности код использует до 12 периодов (половина ретроспективного периода) для расчета стандартного отклонения доходности. Для расчета импульса используются полные 24 периода для вычисления средних ценовых движений. Это обеспечивает баланс между недавним поведением рынка и долгосрочными тенденциями.

24-часовой ретроспективный анализ, вероятно, был выбран для того, чтобы охватить полные дневные рыночные циклы. Это имеет смысл, поскольку на валютных рынках часто наблюдаются 24-часовые циклические модели из-за открытия и закрытия основных торговых сессий (азиатской, европейской и американской). Каждая сессия может характеризоваться разным объемом торгов и моделями поведения цен.

Вы можете изменить это значение в зависимости от ваших торговых потребностей. Более короткий период (например, 12 часов) сделает систему более восприимчивой к недавним изменениям на рынке, но потенциально более восприимчивой к шуму. Более длительный период (например, 48 часов) обеспечит более стабильные сигналы, но может медленнее реагировать на изменения рынка. Помните, что изменение HOUR_LOOKBACK повлияет на использование памяти и время обработки, поскольку необходимо хранить и анализировать больше исторических данных.

// Input parameters
input int      InpPredictBars   = 2;         // Predict Bars (1-5)
input double   InpMinMove       = 0.00001;     // Minimum Move
input double   InpMinConfidence = 0.15;       // Minimum Confidence
input int      InpLogInterval   = 1;         // Log Interval
input int      InpLookbackBars  = 200;        // Lookback Bars for Analysis

InpPredictBars = 2 представляет собой количество баров вперед, на которое система пытается предсказать. При значении 2 система делает прогнозы относительно движения цены в течение следующих 2 баров. Диапазон ограничен 1–5 барами, поскольку прогнозы, как правило, становятся менее точными при более длительных периодах. Меньшее значение (например, 1) обеспечивает более быстрые прогнозы, но может пропустить более крупные движения, в то время как большие значения (например, 4–5) пытаются уловить более длительные тенденции, но с потенциально меньшей точностью.

InpMinMove = 0.00001 устанавливает минимальное движение цены, необходимое для того, чтобы прогноз считался успешным. Для валютных пар этот показатель обычно составляет 1 пипс (0,00001 для брокеров с 5-значными котировками). Это не позволяет системе учитывать очень незначительные изменения цен, которые могут быть просто рыночным шумом. Вы можете увеличить этот показатель для более консервативной торговли или уменьшить для более агрессивной торговли, в зависимости от вашей стратегии.

InpMinConfidence = 0.15 (15%) - порог надежности, необходимый для того, чтобы серьезно отнестись к прогнозу. Квантовая система выдает прогнозы с уровнем надежности от 0 до 1. Любой прогноз с надежностью ниже 0,15 считается "нейтральным" и игнорируется. Более высокие значения (например, 0,25) сделают систему более избирательной, но будут генерировать меньше сигналов, тогда как более низкие значения будут генерировать больше сигналов, но потенциально с более низким качеством.

InpLogInterval = 1 определяет, как часто (в течение определенного периода времени) система регистрирует свои показатели производительности. Значение 1 означает, что регистрируется каждый период. Это полезно для мониторинга производительности системы, но слишком частая регистрация может повлиять на производительность. Вы можете увеличить это значение для реальной торговли.

InpLookbackBars = 200 устанавливает количество исторических баров, которые система использует для своего анализа. При наличии 200 баров система имеет достаточное количество исторических данных для расчета характеристик и закономерностей. Большее количество баров (например, 500) обеспечит более глубокий исторический контекст, но потребует большей вычислительной мощности, в то время как меньшее количество баров будет лучше реагировать на последние изменения рынка, но может упустить более долгосрочные закономерности.

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


Взгляд в будущее

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


Пример советника

Этот многосессионный Forex-советник использует квантовые алгоритмы для торговли на европейских, американских и азиатских сессиях, применяя специальные параметры и методы анализа для каждого таймфрейма.

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

Ключевым нововведением является адаптивная система трейлинг-стопа и компонент анализа нескольких таймфреймов, которые обеспечивают соответствие сделок как краткосрочным (H1), так и долгосрочным (H4) трендам. Кроме того, анализатор максимальной потенциальной прибыли (Maximum Favorable Excursion, MFE) постоянно оптимизирует точки выхода на основе исторического поведения цен, помогая максимизировать потенциальную прибыль.

Это простой пример того, чего можно достичь с помощью прогнозов, основанных фактически на принципе "подбрасывания монетки", с выбором сессии и часов, контролем MFE и управлением рисками.

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

Настройки

График

Тестирование на истории

Настройки #2

Те же значения, разные входы. Я не могу выполнить оптимизацию сети MQL5 Cloud, потому что из Испании это сделать невозможно (политика...), а локальная оптимизация займет слишком много времени, но у этого советника много возможностей. Вы можете использовать их и закончить работу над советником. Если у вас есть время и ресурсы, проведите масштабную оптимизацию, чтобы увидеть, какие варианты подходят лучше всего.

График #2

Примечание: Стратегия не до конца отточена, но она может служить примером, и вы можете довести ее до ума. Необходимо актуализировать оценку размеров лотов и управление рисками, а также многое другое. Это всего лишь пример, вы должны торговать под свою собственную ответственность, но это хорошая отправная точка для вашего собственного советника. Поскольку входных данных слишком много, я загружу один из наборов входных данных, которые я использовал (без оптимизации) для EURUSD H1. Кроме того, я изменил mqh для этого примера, вы также можете сделать это самостоятельно исходя из своих предпочтений.

Что делать с этим советником? В первую очередь вы должны понять эту статью, а затем вы должны просмотреть важные входные данные и определить их функции. Важной функцией является OnTick(). Просто попытайтесь понять, откуда берутся функции OnTick, и начните вносить изменения оттуда. Если вы начнете с этого, кривая обучения будет несложной.


Заключение

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

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

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/16300

Прикрепленные файлы |
EA.zip (49.81 KB)
setup_2.set (8.94 KB)
Последние комментарии | Перейти к обсуждению на форуме трейдеров (1)
Javier Santiago Gaston De Iriarte Cabrera
Javier Santiago Gaston De Iriarte Cabrera | 9 нояб. 2024 в 04:19
Пожалуйста, не используйте настройку №2 (я оставил оптимизацию, и она оказалась проигрышной стратегией). Пожалуйста, сделайте оптимизацию и найдите оптимальный вариант (и доработайте советник).
Нейросети в трейдинге: Адаптивная периодическая сегментация (LightGTS) Нейросети в трейдинге: Адаптивная периодическая сегментация (LightGTS)
Предлагаем познакомиться с инновационной техникой адаптивного патчинга — способа гибко сегментировать временные ряды с учётом их внутренней периодичности. А также с техникой эффективного кодирования, позволяющего сохранять важные семантические характеристики при работе с данными разного масштаба. Эти методы открывают новые возможности для точной обработки сложных многомасштабных данных, характерных для финансовых рынков, и существенно повышают стабильность и обоснованность прогнозов.
Эволюционная стратегия адаптации ковариационной матрицы — Covariance Matrix Adaptation Evolution Strategy (CMA-ES) Эволюционная стратегия адаптации ковариационной матрицы — Covariance Matrix Adaptation Evolution Strategy (CMA-ES)
Исследуем один из самых интересных алгоритмов без градиентной оптимизации, который учится понимать геометрию целевой функции. Рассмотрим классическую реализацию CMA-ES с небольшой модификацией — заменой нормального распределения на степенное. Детальный разбор математики алгоритма, практическая реализация и честный анализ: где CMA-ES непобедим, а где его лучше не применять.
Выявление и классификация фрактальных паттернов посредством машинного обучения Выявление и классификация фрактальных паттернов посредством машинного обучения
В этой статье мы затронем интригующую тему фрактального анализа и прогнозирования рынков посредством машинного обучения. Это только первые шаги на пути к исследованию многообразных фрактальных структур, которые образуются на графиках финансовых котировок. Мы используем корреляцию для поиска паттернов и алгоритм CatBoost для классификации этих паттернов.
Автоматизация торговых стратегий с помощью MQL5 (Часть 1): Система Profitunity (Торговый хаос Билла Вильямса) Автоматизация торговых стратегий с помощью MQL5 (Часть 1): Система Profitunity (Торговый хаос Билла Вильямса)
В данной статье мы исследуем систему Profitunity авторства Билла Вильямса, подробно разобрав ее ключевые составляющие и уникальный подход к торговле в хаотичных условиях рынка. Мы продемонстрируем читателям реализацию системы на языке программирования MQL5, делая акцент на автоматизации ключевых индикаторов и сигналов для входа/выхода. Наконец, мы протестируем и оптимизируем стратегию, детально анализируя ее эффективность в различных рыночных сценариях.