株式データに基づく時間系列適応動的値戦略

作者: リン・ハーンチャオチャン,日付: 2024-04-01 10:48:52
タグ:

img

概要

この戦略は,株式または他の金融資産の純資産価値の時間系列データに基づいている.指数移動平均 (EMA) のスムージングファクターとして効率比 (ER) を動的に計算することによって,上下帯を適応的に調整し,買い売り信号を誘発する.この戦略の主なアイデアは,純資産価値データ自体に含まれるすべての情報を利用し,純資産価値変化 (ER) の複雑さを計算して,EMAのスムージングファクターを動的に調整し,その後動的に変化する上下帯を得ることです.価格が上帯を突破すると,ロングポジションを開くし,下帯を突破すると,ポジションを閉じる.

戦略原則

  1. 純資産価値データにおける効率比 (ER) を計算する.これは,純資産価値の変化と総変化の比である.ER価値が小さいほど,純資産価値の変化はより安定している.ER価値が大きいほど,純資産価値の変化は劇的です.
  2. パイン_エマ関数のスムージングファクタアルファとしてERを使用し,純資産価値のEMA平均値と絶対偏差を動的に計算します.
  3. EMA 平均値から絶対偏差を足し,減算すると,動的に変化する上位帯と下位帯が得られる.
  4. 現在の純資産価値が上位帯を突破すると,ロングポジションを開き,下位帯を突破すると,ポジションを閉じる.

戦略 の 利点

  1. 純資産価値の時間系列データに含まれるすべての情報を完全に利用し,パラメータを設定したり最適化したりする必要はありません. 方法はシンプルで自然です.
  2. 動的にERを計算して EMA調整因子を調整することで,純資産価値の変化の複雑さに適応し,市場の変化に柔軟に対応できます.
  3. 伝統的な固定パラメータEMAと比較して,ダイナミックEMAは取引数と保持時間を効果的に削減し,取引コストとリスクを削減することができます.
  4. この戦略は,購入と保有と比較して,最大引き上げを2-3倍削減したり,同じ引き上げで収益を2-3倍増加させることができます.
  5. 戦略の自動オン/オフの目的を達成するために,複数の戦略の組み合わせに簡単に適用できます.

戦略リスク

  1. この戦略は,純資産価値の時間系列データに基づいています. 価格傾向が根本的に逆転する状況では,ポジションの閉鎖を誘発するスピードが遅いので,収益に影響します.
  2. この戦略はパラメータを適応的に調整できるが,極端な市場状況に適応できる可能性はさらに検討する必要がある.
  3. この戦略は,現在主にロングポジションに焦点を当てており,ショートポジションについてはさらに改善する必要がある.
  4. この戦略は,実践的な応用では,選択された目標の質に高い要求があり,長期的な上昇傾向のある目標の選択を必要とします.

戦略の最適化方向

  1. ERの計算方法をさらに最適化し,純資産価値変化の特徴を反映するより多くの指標を導入し,ERの信頼性と有効性を向上することを検討する.
  2. 戦略の収益性やリスク耐性を向上させるために,ストップロスの後続,ストップロスの百分比等を追加することを検討することなど,開設と閉じる条件をさらに精査する.
  3. 異なるターゲットと市場環境のために,パラメータを最適化し,戦略の汎用性を向上させるために戦略を適応的に調整します.
  4. この戦略を他の戦略 (トレンド追跡,平均逆転など) と組み合わせることで,異なる戦略の利点を活用し,ポートフォリオの安定性と収益性を向上させる.

概要

この戦略は,指数移動平均 (EMA) のスムージングファクターとして効率比 (ER) を動的に計算し,上下帯を適応的に調整し,購入・売却信号を誘発する.この戦略は,あまりにも多くのパラメータ設定と最適化を必要とせずに,純資産価値のタイムシリアルデータに含まれる情報を完全に利用し,方法は単純で自然で,市場の変化に柔軟に対応し,引き下げを効果的に制御することができます.しかし,この戦略の極端な市場状況への適応性はさらなる検討を必要とし,実践的なアプリケーションにおけるターゲット選択に注意を払う必要があります.将来,戦略の堅牢さと収益性を向上するために,計算方法,開閉条件,パラメータ最適化,組み合わせ戦略などの側面から戦略をさらに最適化し改善することができます.


/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy('Equity control', 'EC')
// study('Exponential bands', 'EB', overlay = true)


er(src) =>
    var start = src
    var total = 0.0

    total += abs(src - nz(src[1], src))
    net    = abs(src - start          )
    
    net / total

pine_ema(src, alpha) =>
    mean = 0.0
    dev  = 0.0

    mean := na(mean[1]) ? src : (1 - alpha) * mean[1] + alpha *     src
    dev  := na(dev [1]) ? 0   : (1 - alpha) * dev [1] + alpha * abs(src - mean)

    [mean, dev]


src = input(close)


a           = er      (src   )
[mean, dev] = pine_ema(src, a)

dev_lower = mean - dev
dev_upper = mean + dev


// plot(dev_lower, 'lower deviation', color.silver, 2, plot.style_stepline)
// plot(mean     , 'basis'          , color.purple, 1, plot.style_stepline)
// plot(dev_upper, 'upper deviation', color.silver, 2, plot.style_stepline)


if src > dev_upper
    strategy.entry('event', true, comment = 'on')
if src < dev_lower
    strategy.close('event', comment = 'off')


plot(strategy.equity)

//bigDope

もっと