デジタル通貨自適性均線取引システムとKAMAアルゴリズム解析パック 発明者ベースの定量化取引ソフトウェア

作者: リン・ハーン , 作成日:2019-07-06 16:21:15, 更新日:2023-10-24 21:42:44

[TOC]

img

アダプタブル・平均線 KAMA 履歴書

KAMAは,名前の通り,移動平均線 (移動平均線) のカテゴリーに属していますが,従来の移動平均線とは異なり,非常に賢明です. 普通の平均線には多くの欠点があります. 例えば,短期平均線は価格動きに近いので,非常に敏感ですが,誤った信号を生むことが容易です. 長期平均線は,傾向判断に非常に正確ですが,多くの場合,市場は一歩前に動き,反応します.

KAMAの明さは,現在の市場状態,すなわち波動率に応じて主機の敏感性から調整できるという点にある.その形は,揺れ動いている市場では,KAMAの変化が顕著に減速し,トレンドが来るときは,迅速に反応する.それでは,実盤では,日々の騒動によって生じる取引コストを削減し,市場を飛躍させ,タイミングで乗車できるという点にある.

グラフのKAMA

img

KAMAの計算方法

  • 方向 (DIR) = 閉店価格 - n日前の閉店価格
  • 波動率 (VIR) = sum (abs) (閉店価格 - 前取引日の閉店価格),n)
  • 効率 (ER) =方向性/波動率
  • 速度は 2 / (n1 + 1) です.
  • 速度が2分の2です.
  • 滑らかな (CS) =効率 * (速い - 遅い) + 遅い
  • CQ = スムーズ * スムーズ
  • KAMA = 指数重度の平均 (動的移動平均 (閉店価格,係数),2)

その中で,n、n1、n2は周期パラメータであり,デフォルトではn周期数は10であり,n1は短期周期数であり,n2は長期周期数であり,30である.これはまた,KAMAの著者ペリー・カウフマンが認識したパラメータの1つである.nは方向性および波動率計算の効率のために使用され,n1とn2は高速平均線と遅速平均線の周期数であり,理論的にはn1のパラメータが大きいほど,KAMAはより滑らかである.

KAMAの計算方法は,まず方向 (DIR) と波動率 (VIR) を計算し,次に両方の比率で効率を計算する.効率 (ER) は価格の変化を測定する程度であり,計算方法もシンプルです.計算結果は0〜1の間であり,ERの値が0に近づくと市場は波動状態であり,ERの値が1に近づくと市場は傾向状態である.

効率 (ER) を計算すると,高速平均線と遅速平均線を組み合わせて滑り定数 (CS) を導き出せる:効率 (ES) * (高速 - 遅速) +遅速.CSはトレンドが走る速度を表し,CSの計算式によれば,CSの変化は常にERの変化に比例していることがわかる.

滑らかな倍数による係数 (CQ) の計算は,ゆっくり周期パラメータが計算においてより重要な役割を果たすようにすることを目的とし,さらに保守的な手法である.KAMAの最終滑らかな度合いは,CQによって決定される.KAMAの計算では,CQは最後の2回間均線滑らかな周期パラメータ,すなわち指数加重平均 (動的移動平均 (閉場価格,係数),2) を決定する.

KAMAの使い方

KAMAの計算方法は非常に複雑であるが,使用方法は通常の平均線に似ている.実際の応用では,市場の動向を判断するだけでなく,正確な買取・売出点にも使用できる.非常に巧妙であるため,多くの取引戦略,さらにはデジタル通貨でも試す価値がある.

  • 価格がKAMAより大きく,KAMAが上方にあるとき,多頭取引をする.
  • 価格がKAMAより低く,KAMAが下がると空売りします.
  • 価格がKAMAより小さいとき,またはKAMAが下回っているとき,多頭平衡します.
  • 価格がKAMAより大きいとき,またはKAMAが上昇すると空頭平衡します.

KAMAに基づいて取引戦略を構築する

KAMAを計算する言語の選択は,左上角で:My语言... タリブ文庫には既にKAMAが用意されているが,外参数 (n) の周期のみ,n1とn2は2と30をデフォルトで設定している... この記事の策略は,直接引数を投げるためにのみ使用し,手作業能力のある友人もハを自分で書くことができます...

%%  // My语言内JavaScript的标准格式
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);  // 获取K线数组
    if (r.length > 140) {  // 过滤K线长度
        var kama = talib.KAMA(r, 140);  // 调用talib库计算KAMA
        return kama[kama.length - 2];  // 返回KAMA的具体数值
    }
    return;
}
%%  // My语言内JavaScript的标准格式

取引条件を計算して注文

%%
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;  // 把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;  // 平空

ステップ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;  // 启用一开一平信号过滤机制

戦略の復習

リアルな取引環境に近づくために,リターンテストでは,平衡を2回間開いたスライドポイントを使ってプレッシャーテストを行い,テスト環境は以下のとおりです.

  • 取引所:BitMEX
  • XBTUSDのビジネス・タイプ
  • 取引品種:XBTUSD
  • 時間:2017年07月01日〜2019年07月01日
  • K線周期:日線
  • 滑り点:平衡点から2跳

テスト環境 img 利益について img 資金の曲線 img

上記の回顧結果からみれば,この単純なKAMA戦略は,デジタル通貨の2018年の超大熊市でも,資本曲線が大きく引き下げられず,市場が長期的に揺れ動いている間に,不必要な損失を伴う平坦化も行われず,2019年の牛市でも良好なパフォーマンスを示した.

策略ソースコード

My言語に基づく商品先物とデジタル通貨のための完全な戦略ソースコードをクリックしてコピーします

概要

優れた実用化戦略は,何百万もの練習を経て磨く必要がある.この記事の戦略には,特定のフィルター条件を追加し,主動的な停止・停止・損失条件など,アップグレードを最適化できる余地がたくさんあります.均線の一種として,KAMAは,通常の均線の優劣を継承し,同時に上昇を行います. 変動が予測できない市場で,最も良いパラメータを固定しても,将来の市場に適応することは困難です.したがって,このような随時的な,随時的な市場変化の変化へのアプローチは,より良い選択肢かもしれません.


関連性

もっと

サイファー48大神,教えて下さい,カマの最後のステップのコードは,どのように書かれるのですか?KAMA = 指数加重平均 (動的移動平均 (閉盘価格,係数),2) はこれです.私は調べてみると,KAMA = 前回のKAMA +係数 * (現在の価格 - 前回のKAMA) と書いています.問題は,最初のKAMAの値を計算するときに,最初のKAMAの値が計算される前に,KAMAのがないことです.