4
Подписаться
1271
Подписчики

Адаптивная система торговли скользящей средней цифровой валютой и анализ алгоритма KAMA - на основе количественного торгового программного обеспечения изобретателя

Создано: 2019-07-06 16:21:15, Обновлено: 2023-10-24 21:42:44
comments   1
hits   5793

[TOC]

Адаптивная система торговли скользящей средней цифровой валютой и анализ алгоритма KAMA - на основе количественного торгового программного обеспечения изобретателя

Введение в адаптивную скользящую среднюю KAMA

Как следует из названия, адаптивная скользящая средняя (КАМА) относится к категории скользящих средних, но в отличие от традиционной скользящей средней она очень «умная». Мы знаем, что обычные скользящие средние имеют много недостатков. Например, краткосрочная скользящая средняя близка к ценовому тренду и очень чувствительна, но легко генерирует ложные сигналы; долгосрочная скользящая средняя очень точна в оценке тенденции, но рынку часто требуется некоторое время, чтобы отреагировать.

«Интеллект» KAMA заключается в его способности автономно регулировать свою чувствительность в зависимости от текущих рыночных условий, то есть волатильности. Проявление его таково: на волатильном рынке изменения КАМА существенно замедляются; при появлении тренда он реагирует быстро. В реальной торговле преимущество заключается в том, что он позволяет сократить транзакционные издержки, вызванные «ежедневной суетой», и вовремя включиться в работу, когда рынок набирает обороты.

КАМА в графике

Адаптивная система торговли скользящей средней цифровой валютой и анализ алгоритма KAMA - на основе количественного торгового программного обеспечения изобретателя

Метод расчета КАМА

  • Направление (DIR) = Цена закрытия - Цена закрытия n дней назад
  • Волатильность (VIR) = сумма(абс(цена закрытия - цена закрытия предыдущего торгового дня), n)
  • Эффективность (ER) = Направление / Волатильность
  • Быстро = 2 / (n1 + 1)
  • Медленно = 2 / (n2 + 1)
  • Плавность (CS) = Эффективность * (Быстро - Медленно) + Медленно
  • Коэффициент(CQ) = Сглаживание * Сглаживание
  • KAMA = экспоненциально взвешенная средняя (динамическая скользящая средняя (цена закрытия, коэффициент), 2)

Среди них n, n1 и n2 — все параметры периода. По умолчанию n — 10 периодов, n1 — 2 краткосрочных периода, а n2 — 30 долгосрочных периодов. Это также набор параметров, признанных Перри Кауфманом, автором KAMA. n используется для расчета направления и эффективности волатильности, n1 и n2 — периоды быстрой скользящей средней и медленной скользящей средней. В теории, чем больше Чем больше параметр n1, тем более плавной будет КАМА.

Метод расчета KAMA следующий: сначала рассчитывается направление (DIR) и волатильность (VIR), а затем рассчитывается эффективность на основе соотношения этих двух показателей. Эффективность (ER) — это мера степени изменения цены, которая рассчитывается просто: Направление/Волатильность. Результат расчета находится в диапазоне от 0 до 1. Когда значение ER ближе к 0, это указывает на то, что рынок находится в волатильном состоянии. Когда значение ER ближе к 1, это указывает на то, что рынок находится в трендовом состоянии.

После расчета эффективности (ER) быстрое скользящее среднее и медленное скользящее среднее можно объединить для получения константы сглаживания (CS): эффективность * (быстрое - медленное) + медленное. CS представляет собой скорость движения тренда. Согласно формуле расчета CS, можно обнаружить, что изменение CS всегда пропорционально изменению ER.

Затем коэффициент (CQ) рассчитывается на основе сглаживающей способности с целью придания параметрам медленного цикла более важной роли в расчетах, что также является более консервативным подходом. Окончательная гладкость KAMA определяется коэффициентом (CQ). При расчете KAMA коэффициент (CQ) определяет параметры периода сглаживания двух последних скользящих средних, а именно: экспоненциально взвешенное среднее (динамическое скользящее среднее (цена закрытия, коэффициент), 2).

Как использовать КАМА

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

  • Когда цена превышает KAMA и KAMA направлена ​​вверх, открывайте длинную позицию.
  • Когда цена ниже KAMA, а KAMA движется вниз, открывается короткая позиция.
  • Когда цена ниже KAMA или KAMA движется вниз, длинные позиции закрываются.
  • Когда цена превышает KAMA или KAMA движется вверх, короткая позиция закрывается.

Построение торговой стратегии на основе КАМА

Шаг 1: Рассчитайте КАМА Уведомление! В левом верхнем углу выберите язык программирования:My语言. В библиотеке talib уже есть готовая KAMA, но у нее есть только один внешний параметр (n) period, а n1 и n2 по умолчанию равны 2 и 30. Стратегии в этой статье приведены только для справки. Друзья с хорошими практическими навыками также могут написать свои собственные. Тогда язык My также может быть напрямую смешан с языком JavaScript. Обратите внимание на следующий код:

%%  // My语言内JavaScript的标准格式
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);  // 获取K线数组
    if (r.length > 140) {  // 过滤K线长度
        var kama = talib.KAMA(r, 140);  // 调用talib库计算KAMA
        return kama[kama.length - 2];  // 返回KAMA的具体数值
    }
    return;
}
%%  // My语言内JavaScript的标准格式

Шаг 2: Рассчитайте торговые условия и разместите заказ

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        return kama[kama.length - 2];
    }
    return;
}
%%

K^^KAMA;  // 把KAMA打印到图表上
A:CLOSE;  // 把收盘价打印到图表上

K > REF(K, 1) && CLOSE > K,BK;  // 开多
K < REF(K, 1) && CLOSE < K,SK;  // 开空
K < REF(K, 1) || CLOSE < K,SP;  // 平多
K > REF(K, 1) || CLOSE > K,BP;  // 平空

Шаг 3: Установите метод фильтрации сигнала стратегии

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        return kama[kama.length - 2];
    }
    return;
}
%%

K^^KAMA;
A:CLOSE;

K > REF(K, 1) && CLOSE > K,BK;
K < REF(K, 1) && CLOSE < K,SK;
K < REF(K, 1) || CLOSE < K,SP;
K > REF(K, 1) || CLOSE > K,BP;

AUTOFILTER;  // 启用一开一平信号过滤机制

Стратегия бэктестинга

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

  • Биржа: BitMEX
  • Тип рынка: XBTUSD
  • Торговый инструмент: XBTUSD
  • Время: 1 июля 2017 г. ~ 1 июля 2019 г.
  • Цикл К-линии: ежедневный
  • Проскальзывание: 2 скачка для открытия и закрытия позиций

Тестовая среда Адаптивная система торговли скользящей средней цифровой валютой и анализ алгоритма KAMA - на основе количественного торгового программного обеспечения изобретателя Подробная информация о доходах Адаптивная система торговли скользящей средней цифровой валютой и анализ алгоритма KAMA - на основе количественного торгового программного обеспечения изобретателя Кривая финансирования Адаптивная система торговли скользящей средней цифровой валютой и анализ алгоритма KAMA - на основе количественного торгового программного обеспечения изобретателя

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

Исходный код стратегии

Нажмите, чтобы скопировать полный исходный код стратегии, основанный на My language, подходящий для товарных фьючерсов и цифровых валют.

Подвести итог

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