이름에서 알 수 있듯이, 이동 평균 (KAMA) 은 이동 평균 범주에 속하지만, 전통적인 이동 평균과 달리, 정상적인 MA보다 훨씬 똑똑합니다. 우리는 MA가 많은 단점을 가지고 있다는 것을 알고 있습니다. 예를 들어, 단기 이동 평균은 가격 추세에 가깝고, 매우 민감하지만 잘못된 신호를 생성하기가 쉽습니다. 장기 이동 평균은 추세를 포착하는 데 매우 정확하지만 시장 가격이 잠시 움직일 때 종종 매우 느리게 반응합니다.
KAMA의
이점은: 가격의 하루 이동으로 인한 거래 비용을 줄일 수 있으며 시장이 출발 할 때 트렌드에 맞춰있을 수 있습니다.
그 중 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).
카마의 계산 방법은 매우 복잡하지만 사용 방법은 일반적인 이동 평균과 비슷합니다. 실용적인 응용에서는 시장 트렌드를 판단 할뿐만 아니라 정확한 거래 지점에 사용할 수 있습니다. 매우 똑똑하기 때문에 암호화폐 시장에서도 많은 거래 목표에서 사용할 수 있습니다.
단계 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 피프의 미끄러짐을 사용했습니다. 테스트 환경은 다음과 같습니다.
백테스트 환경
이익 세부 정보
기금 곡선
위 백테스트 결과,이 간단한 KAMA 전략은 실제로 기대에 부응합니다. 2018 년 암호화폐의 슈퍼 빅 곰 시장에서도 자본 곡선은 큰 후퇴를 보이지 않았고 시장의 장기 충격 기간 동안 불필요한 손실을 초래하는 반복적인 개방 및 폐쇄 지위가 없었습니다. 나중에 2019 년 황소 시장에서 매우 좋은 성과가 있습니다.
더 많은 정보를 위해, 저희에게 문의하십시오:https://www.fmz.com/strategy/155663
확고한 전략이 될 수 있는 우수한 전략은 닦아야 한다. 이 문서의 전략은 특정 필터링 조건, 활성 스톱 로스 및 스톱 로스 조건을 추가하는 것과 같은 최적화 및 업그레이드 할 수있는 많은 공간을 가지고 있다. 일종의 이동 평균으로서, KAMA는 일반적인 이동 평균의 장단점을 계승하고 동시에 상승한다. 예측 불가능한 시장에서,