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

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

img

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

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

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

KAMA в графике

img

Метод расчета 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 пипса для открытия и закрытия позиций

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

img

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

img

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

img

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

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

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

Резюме

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


Больше