相対力指数と平均真の範囲に基づく、マルチレベルの動的コスト平均スイングトレード戦略

RSI ATR DCA TP
作成日: 2025-02-20 17:25:04 最終変更日: 2025-02-27 17:22:25
コピー: 0 クリック数: 369
2
フォロー
319
フォロワー

相対力指数と平均真の範囲に基づく、マルチレベルの動的コスト平均スイングトレード戦略 相対力指数と平均真の範囲に基づく、マルチレベルの動的コスト平均スイングトレード戦略

概要

この戦略は,相対的に強い指数 ((RSI) と平均実際の波幅 ((ATR) を組み合わせた多層のダイナミックコスト均等 ((DCA) 取引システムである.これは,主に市場の過売り条件を識別して,分期して倉庫を建設し,ATRを動的に使用して,止まりの位置を調整して,波段操作で利益を得ることを実現する.この戦略は,リスク分散,コスト最適化,および収益安定などの特性を有する.

戦略原則

戦略は4時間または日線レベルで動作し,コアロジックは以下のいくつかの側面を含む.

  1. 入場シグナルは,RSIが30未満の超売り判断に基づくもので,最大4回の分期倉庫建設が許される
  2. 各ポジションの金額は,ATRの2倍に動的に計算されたポジションの規模に基づいて,総リスク額200ドルに基づいています.
  3. 倉庫管理は,動的平均コスト追跡を採用し,複数の倉庫を建設した後の平均価格をリアルタイムで計算する
  4. ストップは平均価格より3倍ATRで設定され,市場の変動に自律的に調整されます.
  5. 平均値とストップの位置をリアルタイムで表示するマークラインで,視覚的に追跡できます.

戦略的優位性

  1. 精密なリスク管理 - リスクの額とATRの動的調整を予め設定することで,単一の取引のリスクを精密に制御します.
  2. 倉庫建設の柔軟性 - 倉庫建設の分量化によりコストを削減し,機会を最大限に活用する
  3. ストップインテリジェント - ATRベースのダイナミックストップは,利益の保証と市場の変動に対応します.
  4. 視覚化 - 平均値とストップラインのリアルタイム表示が直感的な取引参照を提供します.
  5. 適応性 - 戦略のパラメータは市場特性に合わせて柔軟に調整できます

戦略リスク

  1. 連続的な過売りリスク - 市場の継続的な下落は,過度のポジションの発生につながる可能性がある. 解決法: 最大倉庫建設回数制限を厳格に執行し,必要に応じてストップを設定する
  2. ストップセットのリスク - ストップの倍数が高すぎると,利益の機会を逃す可能性があります. 解決策:ATRの倍数を市場の動向に合わせて調整する
  3. 資金管理のリスク - 倉庫の建設は大量に資金を使う可能性がある 解決策: リスクの制限とポジションの規模を合理的に設定する

戦略最適化の方向性

  1. エントリーシグナルの最適化
  • トレンド判定指標を高め,強な下落に早急にポジションを押すのを避ける
  • 取引量指標を組み合わせて,超売り判断の信頼性を高める
  1. 停止装置の改良
  • トレーリングストップの導入により,利益の確保が向上する
  • を分量して,利潤の柔軟性を高めよう
  1. リスク管理の強化
  • 総撤回制御を追加する
  • 資金配分アルゴリズムを最適化する

要約する

この戦略は,RSIとATRの指標を組み合わせることで,リスク制御と収益の安定性を兼ね備えた取引システムを実現する.分期投資の仕組みは,コストの最適化の可能性を提供し,動的ストップの設計は,収益の合理的なパフォーマンスを確保する.いくつかの潜在的なリスクがあるものの,合理的なパラメータ設定と最適化方向の実施により,戦略の全体的なパフォーマンスはさらに向上する.

ストラテジーソースコード
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/

//@version=6
strategy("DCA-Based Swing Strategy (Risk $200) with Signals", overlay=true)

// === Main Indicators ===
// RSI for identifying oversold conditions
rsi = ta.rsi(close, 14)

// ATR for volatility estimation
atr = ta.atr(14)

// === Strategy Parameters ===
// Risk management
riskPerTrade = 200                       // Total risk ($200)
atrRisk = 2 * atr                        // Risk in dollars per buy (2 ATR)
positionSize = riskPerTrade / atrRisk    // Position size (shares)

// DCA Parameters
maxEntries = 4                           // Maximum of 4 buys
takeProfitATR = 3                        // Take profit: 3 ATR

// === Position Management ===
var float avgEntryPrice = na             // Average entry price
var int entryCount = 0                   // Number of buys
var line takeProfitLine = na             // Take profit line
var line avgPriceLine = na               // Average entry price line

// === Buy and Sell Conditions ===
buyCondition = rsi < 30 and entryCount < maxEntries  // Buy when oversold
if (buyCondition)
    strategy.entry("DCA Buy", strategy.long, qty=positionSize)
    
    // Update the average entry price
    avgEntryPrice := na(avgEntryPrice) ? close : (avgEntryPrice * entryCount + close) / (entryCount + 1)
    entryCount += 1

    // Display "BUY" signal on the chart
    label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.normal)

    // Update lines for average entry price and take profit
    if (not na(takeProfitLine))
        line.delete(takeProfitLine)
    if (not na(avgPriceLine))
        line.delete(avgPriceLine)
    takeProfitPrice = avgEntryPrice + takeProfitATR * atr


// Sell condition: Take profit = 3 ATR from average entry price
takeProfitPrice = avgEntryPrice + takeProfitATR * atr
if (close >= takeProfitPrice and entryCount > 0)
    strategy.close("DCA Buy")
    
    // Reset parameters after closing
    avgEntryPrice := na
    entryCount := 0

    // Remove lines after selling
    if (not na(takeProfitLine))
        line.delete(takeProfitLine)
    if (not na(avgPriceLine))
        line.delete(avgPriceLine)