対数加重移動平均クロスオーバーシグナルに基づく定量的取引戦略

WMA MA LOG CROSS Trend
作成日: 2025-02-08 14:53:53 最終変更日: 2025-02-08 14:53:53
コピー: 0 クリック数: 344
1
フォロー
1617
フォロワー

対数加重移動平均クロスオーバーシグナルに基づく定量的取引戦略

概要

この戦略は,対数変数と加重移動平均 (WMA) の交差に基づく量化取引システムである.これは,価格データを対数変数化することで市場のノイズを軽減し,短期と長期のWMAの交差を使用して取引シグナルを生成する.戦略の核心思想は,価格の波動を対数空間に変換して,より安定したトレンド判断を行うことである.

戦略原則

策略は,まず,価格変動の極限値の影響を減らすために,閉盘価格を対数変換する.それから,短期 (<5サイクル>) と長期 (<20サイクル>) の加重移動平均をそれぞれ計算する.短期のWMAが長期のWMAを上向きに通過すると,システムは多行シグナルを生成する.短期のWMAが長期のWMAを下向きに通過すると,システムは空白を生成する.信号は対数変換後の移動平均を交差することで,トレンドの転換点を判断し,トレンド追跡を実現する.

戦略的優位性

  1. 数字変換は,価格変動の極端な影響を効果的に軽減し,トレンド判断をより安定させます.
  2. 価格の変化により早く反応する.
  3. 双動平均の交差信号は明瞭であり,単一の指標がもたらすかもしれない偽信号を避ける
  4. システムには自動取引の実行機能があり,人工操作による遅延や感情的影響を軽減します.
  5. リアルタイムの警告機能により,重要な取引機会を逃さない

戦略リスク

  1. 波動的な市場では,偽信号が多く発生し,頻繁に取引するコストが増加する可能性があります.
  2. 対数変換は極端な場合でも信号生成を遅らせることがあります.
  3. 固定移動平均の周期は,すべての市場環境に適していない可能性があります. リスク管理には,ストップ・ローズ・条件とポジション・コントロールを設定し,他の技術指標と組み合わせてシグナル確認を行うことを推奨する.

戦略最適化の方向性

  1. 市場波動の動向に合わせてパラメータを調整する自己適応の移動平均周期を導入する
  2. 取引量の増加などの補助指標で取引シグナルを確認
  3. トレンド強度フィルターで,弱トレンドの環境で取引を避ける
  4. ストップ・ローズとストップ・ストップ条件の最適化,資金使用効率の向上
  5. 損失を防ぐため,撤回制御メカニズムへの参加を検討

要約する

これは対数変換と重み付けの移動平均を組み合わせたトレンド追跡戦略である.対数変換によって価格変動の影響を軽減し,二重移動平均の交差を利用してトレンド転換点を捕捉する.戦略の論理は明確で,優れた操作性があるが,波動的な市場でのリスク管理に注意が必要である.パラメータ設定を最適化し,補助指標を追加することで,この戦略はより良いパフォーマンスを期待する.

ストラテジーソースコード
/*backtest
start: 2022-02-09 00:00:00
end: 2025-02-06 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Logaritmik WMA Al-Sat Stratejisi", overlay=true)

// Parametreler
shortWMA_length = input.int(5, title="Kısa WMA (5)")
longWMA_length = input.int(20, title="Uzun WMA (20)")

// Logaritmik Fiyat Hesaplaması
log_close = math.log(close)  // Fiyatların logaritmasını alıyoruz

// Logaritmik WMA'ların Hesaplanması
log_shortWMA = ta.wma(log_close, shortWMA_length)  // Kısa WMA (Log)
log_longWMA = ta.wma(log_close, longWMA_length)    // Uzun WMA (Log)

// WMA'ları Normal Ölçeğe Geri Dönüştürme
shortWMA = math.exp(log_shortWMA)  // Logaritmadan geri dönüştürülmüş kısa WMA
longWMA = math.exp(log_longWMA)    // Logaritmadan geri dönüştürülmüş uzun WMA

// Al-Sat Koşulları
longCondition = ta.crossover(shortWMA, longWMA)  // Kısa WMA uzun WMA'yı yukarı keserse
shortCondition = ta.crossunder(shortWMA, longWMA)  // Kısa WMA uzun WMA'yı aşağı keserse

// WMA'ları Çizdirme
plot(shortWMA, color=color.green, title="Kısa WMA (Log)", linewidth=2, style=plot.style_line)
plot(longWMA, color=color.red, title="Uzun WMA (Log)", linewidth=2, style=plot.style_line)

// İşlem Girişleri
if (longCondition)
    strategy.entry("AL", strategy.long)

if (shortCondition)
    strategy.entry("SAT", strategy.short)

// Alarm Fonksiyonu
if (longCondition)
    alert("AL Sinyali: Kısa WMA (Log), Uzun WMA (Log)'yı yukarı kesti.", alert.freq_once_per_bar_close)

if (shortCondition)
    alert("SAT Sinyali: Kısa WMA (Log), Uzun WMA (Log)'yı aşağı kesti.", alert.freq_once_per_bar_close)