アダプティブ・ムービング・メアディア KAMA の導入

作者: リン・ハーン優しさ, 作成日: 2019-07-24 14:09:06, 更新日: 2023-11-08 20:42:23

img

移動平均 (KAMA) は,その名前通り,移動平均 (Moving Average) のカテゴリーに属しますが,伝統的な移動平均とは異なり,通常のMAよりもはるかに賢くなります. MAには多くの欠点があることは知っています.例えば,短期移動平均は価格傾向に近いので,非常に敏感ですが,誤った信号を出すことは簡単です.長期移動平均は傾向を把握するのに非常に正確ですが,市場価格がしばらく動いたときに非常にゆっくり反応することが多い.

KAMAの"スマートネス"は,現在の市場状態,すなわち波動性に基づいて,感度を調整できるという事実に反映されている.その実現形態は:ショック市場で,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) を計算し,次にそれらの2つに従って効率を比例して計算することによって計算される.効率 (ER) は価格変化の程度を測定し,方向/波動という単純な方法で計算される.計算結果は0から1の間である.ERの値が0に近いとき,市場は振動状態にある.ERの値が1に近いとき,市場は傾向状態にある.

効率 (ER) を計算する際には,スムージングコンスタント (CS) は,高速移動平均値と遅い移動平均値を組み合わせることで得ることができる.

効率性 * (高速 - 遅い) + 遅い

CSはトレンド操作の速度を表します.CSの計算式によると,CSの変化は常にERの変化に比例していることを発見できます.

次に,係数 (CQ) は,平滑した電力を基準に計算され,目的は,計算においてゆっくりサイクルパラメータがより重要な役割を果たすようにすることです.これはまた,より保守的なアプローチです.

KAMAの最終的な平滑度は係数 (CQ) によって決定される.KAMAの計算では,係数 (CQ) は最後の2つの移動平均平滑度の周期パラメータを決定する.すなわち:指数的な重み平均 (動的移動平均 (閉値,係数),2).

KAMA の使用方法

KAMAの計算方法は非常に複雑であるが,使用方法は通常の移動平均値に似ている.実用的な応用では,市場の傾向を判断するだけでなく,正確な取引ポイントにも使用することができる.非常にスマートであるため,仮想通貨市場でも多くの取引目標で使用することができる.

  • 価格がKAMAより高くなり,KAMAが上昇すると,ロングポジションが開かれます.
  • 価格がKAMAより低く,KAMAがダウンすると,ショートポジションが開かれます.
  • 価格がKAMAより低く,またはKAMAが下がると,ロングポジションは閉鎖されます.
  • 価格がKAMAより高くなったり,KAMAが上昇したとき,ショートポジションは閉鎖されます.

KAMA をベースにした取引戦略の構築

ステップ1: KAMA を計算する

左上の角で,プログラミング言語: 私の言語を選択してください.タリブライブラリには既にKAMAが用意されていますが,外部パラメータ (n) サイクルが1つしかありません.n1とn2はデフォルトで2と30になっています.

この記事の戦略は参照としてのみ使用されます. 強いプログラミング能力を持つ読者は自分で書くことができます. 私の言語プログラミングプロセス中に,私たちはまた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
  • 時間:2017年7月01日~2019年7月01日
  • K線サイクル:日々の線
  • スリッパージ: ポジションの開閉と閉じる 2ピップ

バックテスト環境

img

利益の詳細

img

資金曲線

img

上記のバックテスト結果から,このシンプルなKAMA戦略は本当に期待に応えています. 2018年の仮想通貨の超大熊市でも,資本曲線は大きな引き下げを示さなかったし,長期ショック期間の市場での繰り返しオープンと閉鎖ポジションはなく,不必要な損失を引き起こしました. 後期には,2019年の牛市では非常に良いパフォーマンスがあります.

戦略のソースコード

詳細については:https://www.fmz.com/strategy/155663

概要

堅牢な戦略となる優れた戦略は磨き上げなければならない.この記事の戦略には,特定のフィルタリング条件,アクティブストップ・ロス,ストップ・ロス条件を追加するなど,最適化およびアップグレードするための多くのスペースがあります.移動平均の一種として,KAMAは通常の移動平均の利点とデメリットを受け継ぎ,同時に高揚します.予測不能な市場で,あなたがベストパラメータを固定しても,将来の市場に適応することは困難です.したがって,トレンドと変化し,市場と変化するこの方法はより良い選択かもしれません.


もっと