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

Автор:Доброта, Создано: 2019-07-24 14:09:06, Обновлено: 2023-11-08 20:42:23

Introducing the adaptive moving average KAMA

Как следует из названия, скользящая средняя (KAMA) относится к категории скользящей средней, но в отличие от традиционной скользящей средней, она намного умнее, чем обычный MA. Мы знаем, что MA имеет много недостатков. Например, краткосрочная скользящая средняя близка к ценовому тренду, который очень чувствителен, но легко производить ложные сигналы. Долгосрочная скользящая средняя очень точна в улавливании тренда, но часто реагирует очень медленно, когда рыночная цена движется в течение некоторого времени.

Его "умность" отражается в том, что он может основываться на текущем состоянии рынка, то есть волатильности, для корректировки чувствительности.

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

KAMA в графике

Introducing the adaptive moving average KAMA

Метод расчета KAMA

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

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

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

При расчете эффективности (ER) постоянная сглаживания (CS) может быть получена путем сочетания быстро движущейся средней и медленно движущейся средней:

эффективность * (быстрый - медленный) + медленный

Согласно формуле расчета CS, мы можем обнаружить, что изменение CS всегда пропорционально изменению ER.

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

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

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

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

  • Когда цена больше, чем KAMA, и KAMA поднимается, длинная позиция открывается.
  • Когда цена ниже KAMA, а KAMA ниже, открывается короткая позиция.
  • Когда цена ниже KAMA, или KAMA падает, длинная позиция закрывается.
  • Когда цена больше KAMA, или KAMA поднимается, короткая позиция закрывается.

Создание торговой стратегии на основе KAMA

Шаг 1: вычислить KAMA

Обратите внимание, что в левом верхнем углу выберите язык программирования: Мой язык. В библиотеке талиб уже есть готовый KAMA, но он имеет только один внешний цикл параметра (n), а n1 и n2 по умолчанию составляют 2 и 30.

Стратегии в этой статье используются только в качестве ссылок. Читатели с сильными навыками программирования могут написать свои собственные. Во время процесса программирования My language, мы также можем смешивать с языком JavaScript, обратите внимание на следующий код:

%% // Standard format for JavaScript within My language
scope.KAMA = function() {
    var r = _C(exchange.GetRecords); // Get the K line array
    if (r.length > 140) { // filter the length of the K line
        var kama = talib.KAMA(r, 140); // Call talib library to calculate KAMA
        Return kama[kama.length - 2]; // return the specific value of KAMA
    }
    Return;
}
%% // Standard format for JavaScript within My language

Шаг 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; // Print KAMA on the chart
A:CLOSE; // print the closing price on the chart

K > REF(K, 1) && CLOSE > K,BK; // Open long position
K < REF(K, 1) && CLOSE < K,SK; // Open short position
K < REF(K, 1) || CLOSE < K,SP; // close long position
K > REF(K, 1) || CLOSE > K,BP; // close short position

Шаг 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; // Enable one open and one close signal filtering mechanism

Обратная проверка стратегии

Чтобы приблизиться к реальной торговой среде, мы использовали 2 пипса скольжения, чтобы проверить давление в фактической торговле.

  • Биржа: BitMEX
  • Ряд торгов: XBTUSD
  • Время: 1 июля 2017 ~ 1 июля 2019
  • Цикл линии K: ежедневная линия
  • Сдвиг: 2 пипса для открытия и закрытия позиций

Окружающая среда обратного тестирования

Introducing the adaptive moving average KAMA

Подробная информация о прибыли

Introducing the adaptive moving average KAMA

Кривая фондов

Introducing the adaptive moving average KAMA

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

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

Для получения дополнительной информации обращайтесь к нам по адресу:https://www.fmz.com/strategy/155663

Резюме

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


Больше информации