ダブルエンベロープEMAシステムに基づく適応型トレンド検出戦略

BULL BEAR EMA SMA RSI SIGNAL Trend
作成日: 2025-02-18 15:06:49 最終変更日: 2025-02-18 15:06:49
コピー: 0 クリック数: 330
1
フォロー
1617
フォロワー

ダブルエンベロープEMAシステムに基づく適応型トレンド検出戦略

概要

この戦略は,ダブルインデックス移動平均 ((EMA) ネットワークに基づく革新的なトレンド検出システムである.この戦略は,価格動向の多次元特性を分析し,多空力対比をリアルタイムで計算することで,市場のトレンドの変化と持続性を識別する.この戦略の最大の特徴は,市場状況の動向に応じて信号の強さを調整する自主性である.

戦略原則

戦略の核心原則は,複雑なEMA包囲ネットワーク計算によって市場の多空力を測定することです.具体的には:

  1. オープン価格とクローズ価格を使って次の2つのEMA包網システムを構築
  2. 多頭力の指数 (ブル) と空頭力の指数 (ベア) を数学的に計算する
  3. トレンド確認の補助指標として信号線を計算する
  4. 多頭力が空頭力を上回ると多頭信号が作られ,空頭信号が作られる.

戦略的優位性

  1. 適応性 - 戦略は市場の波動に合わせて自律的に敏感度を調整します.
  2. 信号安定性 - 複数の指標で確認し,偽信号を減らす
  3. リスク管理が完備 - 取引ごとに使用する割合を制限する,内蔵の資金管理システム
  4. ビジュアル化効果が良い - 独立ディスプレイパネルで指標を明確に表示
  5. パラメータの柔軟性 - 異なる市場の特徴に応じて周期パラメータを調整できる

戦略リスク

  1. トレンド反転リスク - 激しい波動の市場では,信号の遅れが発生する可能性があります.
  2. 資金管理リスク - 初期資金と取引比率を合理的に設定する必要があります
  3. 市場適応リスク - 異なる市場環境でパラメータの調整が必要
  4. 技術的実現リスク - 計算プロセスの安定性と正確性を保証する

戦略最適化の方向性

  1. 市場波動率のフィルターを追加し,波動が大きいときに信号の感受性を調整
  2. 交差量指標を補助的な確認システムとして導入
  3. 資金管理システムの最適化,ダイナミックポジションコントロールの追加
  4. トレンド強度フィルターを増やし,信号品質を向上させる
  5. 適応型パラメータ最適化システムの開発

要約する

これは,科学的な計算方法に基づいたトレンド追跡戦略であり,先進的な技術指標設計と厳格なリスク管理により,市場動向を効果的に捕捉することが可能である.戦略の核心的な優位性は,合理的なパラメータ最適化とリスク管理により,異なる市場環境で安定したパフォーマンスを保持できるという自己適応性と信頼性にある.

ストラテジーソースコード
/*backtest
start: 2024-02-19 00:00:00
end: 2024-11-14 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//  This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) 
//  https://creativecommons.org/licenses/by-nc-sa/4.0/
//  © alexgrover
//
//  Original post: 
//  https://alpaca.markets/learn/andean-oscillator-a-new-technical-indicator-based-on-an-online-algorithm-for-trend-analysis/

//@version=5
strategy(title="Andean Oscillator [Strategy]",
     shorttitle="AndeanOsc_Strategy",
     overlay=false,              // Zobraziť sa môže v samostatnom okne
     initial_capital=10000,      // Počiatočný kapitál
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100,      // Použiť 100% z účtu na jeden obchod
     pyramiding=0)               // Nenavyšovať pozície

//------------------------------------------------------------------------------
//Inputs
//------------------------------------------------------------------------------
length     = input.int(50, "Length")
sig_length = input.int(9, "Signal Length")

//------------------------------------------------------------------------------
//Výpočet Andean Oscillatora
//------------------------------------------------------------------------------
var float alpha = 2.0 / (length + 1)

// Premenné musia byť deklarované ako `var` pre zachovanie stavu
var float up1 = 0.
var float up2 = 0.
var float dn1 = 0.
var float dn2 = 0.

C = close
O = open

// Výpočet EMA obálok
up1 := nz(math.max(C, O, up1[1] - (up1[1] - C) * alpha), C)
up2 := nz(math.max(C * C, O * O, up2[1] - (up2[1] - C * C) * alpha), C * C)

dn1 := nz(math.min(C, O, dn1[1] + (C - dn1[1]) * alpha), C)
dn2 := nz(math.min(C * C, O * O, dn2[1] + (C * C - dn2[1]) * alpha), C * C)

// Býčia zložka a medvedia zložka
bull   = math.sqrt(dn2 - dn1 * dn1)
bear   = math.sqrt(up2 - up1 * up1)

// Signál = EMA z max(bull, bear)
signal = ta.ema(math.max(bull, bear), sig_length)

//------------------------------------------------------------------------------
//Jednoduchá LOGIKA STRATÉGIE (iba demonštrácia)
//------------------------------------------------------------------------------
// Príklad: 
// - Ak je bull > bear, vstúpime do long (býčia sila väčšia ako medvedia)
// - Ak je bear > bull, vstúpime do short (medvedia sila väčšia ako býčia)
//
// S pyramiding=0 sa otvorí vždy iba jedna pozícia – ak príde opačný signál, 
// TradingView zatvorí starú a otvorí novú.

if bull > bear
    strategy.entry("Long", strategy.long, comment="Bull > Bear")

if bear > bull
    strategy.entry("Short", strategy.short, comment="Bear > Bull")

//------------------------------------------------------------------------------
// Plotovanie (na posúdenie v samostatnom paneli)
//------------------------------------------------------------------------------
plot(bull,   "Bullish Component",  color=#089981)
plot(bear,   "Bearish Component",  color=#f23645)
plot(signal, "Signal",             color=#ff9800)