적응적인 이동평균 KAMA를 도입

저자:선함, 2019-07-24 14:09:06, 업데이트: 2023-11-08 20:42:23

img

이름에서 알 수 있듯이, 이동 평균 (KAMA) 은 이동 평균 범주에 속하지만, 전통적인 이동 평균과 달리, 정상적인 MA보다 훨씬 똑똑합니다. 우리는 MA가 많은 단점을 가지고 있다는 것을 알고 있습니다. 예를 들어, 단기 이동 평균은 가격 추세에 가깝고, 매우 민감하지만 잘못된 신호를 생성하기가 쉽습니다. 장기 이동 평균은 추세를 포착하는 데 매우 정확하지만 시장 가격이 잠시 움직일 때 종종 매우 느리게 반응합니다.

KAMA의 smartness은 현재 시장 상태, 즉 변동성을 기반으로 감수성을 조정할 수 있다는 사실에서 반영된다. 그 실현 형태는: 충격 시장에서 KAMA의 변화는 분명히 느려집니다. 추세가 오면 빠르게 반응합니다.

이점은: 가격의 하루 이동으로 인한 거래 비용을 줄일 수 있으며 시장이 출발 할 때 트렌드에 맞춰있을 수 있습니다.

차트에서 KAMA

img

KAMA 계산 방법

  • 방향 (DIR) = 종료 가격 - n 일 전에 종료 가격
  • 변동성 (VIR) = sum ((abs (폐기 가격 - 이전 거래일의 종료 가격), 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입니다.

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가 올라갈 때, 쇼트 포지션은 닫습니다.

KAMA를 기반으로 한 거래 전략을 구축

단계 1: KAMA를 계산합니다.

참고로 왼쪽 상단에서 프로그래밍 언어를 선택하십시오: 내 언어. 타리브 라이브러리에서 이미 준비된 KAMA가 있지만 하나의 외부 매개 변수 (n) 사이클만 있으며 n1과 n2는 2과 30으로 기본 설정되어 있습니다.

이 문서의 전략은 참조로만 사용됩니다. 강한 프로그래밍 능력을 가진 독자는 자신의 글을 쓸 수 있습니다. 내 언어 프로그래밍 과정에서 우리는 또한 자바스크립트 언어와 혼합 할 수 있습니다. 다음 코드에주의를 기울여:

%% // 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
  • 시간: 2017년 7월 1일 ~ 2019년 7월 1일
  • K 라인 사이클: 일일 라인
  • 슬라이딩: 포지션을 열고 닫는 경우 2피프

백테스트 환경

img

이익 세부 정보

img

기금 곡선

img

위 백테스트 결과,이 간단한 KAMA 전략은 실제로 기대에 부응합니다. 2018 년 암호화폐의 슈퍼 빅 곰 시장에서도 자본 곡선은 큰 후퇴를 보이지 않았고 시장의 장기 충격 기간 동안 불필요한 손실을 초래하는 반복적인 개방 및 폐쇄 지위가 없었습니다. 나중에 2019 년 황소 시장에서 매우 좋은 성과가 있습니다.

전략 소스 코드

더 많은 정보를 위해, 저희에게 문의하십시오:https://www.fmz.com/strategy/155663

요약

확고한 전략이 될 수 있는 우수한 전략은 닦아야 한다. 이 문서의 전략은 특정 필터링 조건, 활성 스톱 로스 및 스톱 로스 조건을 추가하는 것과 같은 최적화 및 업그레이드 할 수있는 많은 공간을 가지고 있다. 일종의 이동 평균으로서, KAMA는 일반적인 이동 평균의 장단점을 계승하고 동시에 상승한다. 예측 불가능한 시장에서, 최고 매개 변수를 고정하더라도 미래 시장에 적응하기가 어렵습니다. 따라서 트렌드와 함께 변화하고 시장과 함께 변화하는이 방법은 더 나은 선택이 될 수 있습니다.


더 많은