資源の読み込みに... 荷物...

EMA,SMA,CCI,ATR,トレンドマジックインジケーター自動取引システムを持つ完璧な順序移動平均戦略

作者: リン・ハーンチャオチャン開催日:2024年9月26日 15:52:31
タグ:エイマSMACCIATR

img

概要

この戦略は,移動平均のパーフェクトオーダーとトレンドマジック指標を組み合わせて市場のトレンドを把握する.CCIとATRの計算に基づいたトレンドマジック指標とともに3つの移動平均 (EMA45,SMA90,SMA180) を利用する.この戦略の核心は,トレンドマジック指標の色の変化を使用してトレンド逆転を確認しながら,移動平均のパーフェクトオーダーを特定することにある.このアプローチは,強力なトレンドが形成されたときにのみ偽信号を削減し,取引することを目的としている.

戦略の原則

戦略は次の主要な要素に基づいています.

  1. 移動平均値の完璧な順序: EMA45,SMA90,SMA180を特定の順序で並べると (Bullish: EMA45 > SMA90 > SMA180; Bearish: EMA45 < SMA90 < SMA180) は,確立したトレンドの強い信号とみなされます.

  2. トレンドマジックインジケータ: CCI (コモディティチャネルインデックス) とATR (平均真要範囲) をベースとしたカスタムインジケータです.色の変化によって潜在的なトレンド逆転を示します.

  3. 入場条件:移動平均の完璧な順序とトレンドマジック指標の色変化の両方が満たされた場合にのみ取引信号が生成されます.これは強いトレンドが形成されている場合にのみ取引が行われることを保証します.

  4. リスク管理: 戦略はリスク・リターン比に基づくストップ・ロースとテイク・プロフィートの目標を採用する. ストップ・ロスは入場時にSMA90レベルに設定され,テイク・プロフィートはリスクの1.5倍に設定される.

戦略 の 利点

  1. トレンドフォロー:複数の指標を組み合わせることで,戦略は中期から長期間のトレンドを効果的に把握し,誤った信号を減らす.

  2. リスク管理: 固定ストップ損失とリスク・リターンベースのメリットを目的とするリスク管理メカニズムが組み込まれているため,各取引のリスクを制御するのに役立ちます.

  3. 柔軟性: この戦略により,利用者はCCI期間,ATR倍数値,移動平均期間などの様々なパラメータを調整し,異なる市場状況や個人の好みに適応できます.

  4. ビジュアライゼーション: この戦略は,チャート上でトレンドマジック指標と移動平均をプロットし,トレーダーが市場動向を視覚的に分析できるようにします.

戦略リスク

  1. 遅延:移動平均値やその他の遅延指標の使用により,トレンドの開始時に戦略はいくつかの機会を逃す可能性があります.

  2. 不安定な市場:横向的な市場や不安定な市場では,戦略は頻繁に誤った信号を生成し,過剰取引につながる可能性があります.

  3. 固定ストップ損失: 固定SMA90をストップ損失として使用することは,一部の状況では過度に緩やかになり,潜在的な損失を増加させる可能性があります.

  4. パラメータ敏感性: 戦略のパフォーマンスはパラメータ設定に敏感であり,注意深く最適化およびバックテストを必要とする可能性があります.

戦略の最適化方向

  1. ダイナミックストップ・ロス: 価格の変動に伴いストップ・ロスのレベルを調整し,利益をより良く保護するために,トライリング・ストップを導入することを検討します.

  2. 市場状態フィルター: 不安定性やトレンド強度フィルターを導入し,異なる市場条件下で戦略の行動を調整する.

  3. 複数のタイムフレーム分析: 複数のタイムフレーム分析を組み込み,信号の信頼性を向上させ,偽信号を減らす.

  4. 容量分析: 容量分析やその他の定量指標を追加し,傾向の確認と逆転の識別を強化します.

  5. 機械学習最適化: 機械学習アルゴリズムを使用して,変化する市場状況に適応するためにパラメータを動的に調整します.

概要

この自動化取引戦略は,トレンドマジック指標と移動平均のパーフェクトオーダーを組み合わせて,トレンドフォローへの有望なアプローチを示しています.複数の技術指標を活用することで,戦略は,リスク管理メカニズムによってリスクを制御しながら強力な市場傾向を把握することを目指しています.継続的な最適化と適応性調整による遅延やパラメータ感度などの固有の制限があるにもかかわらず,この戦略は効果的な取引ツールになる可能性があります.それは明確な中長期のトレンドのある市場で特にうまく機能する可能性があります.しかし,トレーダーは,どの戦略も完璧ではないことを覚えておくべきです.継続的な監視,バックアップ,最適化は長期テストの成功の鍵です.


/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX

//@version=5
strategy("Trend Magic with EMA, SMA, and Auto-Trading", shorttitle="TM_Trading", overlay=true, format=format.price, precision=2)

// Inputs
period = input.int(21, "CCI period")
coeff = input.float(1.0, "ATR Multiplier")
AP = input.int(7, "ATR Period")
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio")  // Risk/Reward Ratio for take profit

// Calculations
ATR = ta.sma(ta.tr, AP)
src = input(close)
upT = low - ATR * coeff
downT = high + ATR * coeff
var MagicTrend = 0.0
MagicTrend := ta.cci(src, period) >= 0 ? (upT < nz(MagicTrend[1]) ? nz(MagicTrend[1]) : upT) : (downT > nz(MagicTrend[1]) ? nz(MagicTrend[1]) : downT)

// Define colors for Trend Magic
color1 = ta.cci(src, period) >= 0 ? color.rgb(0, 34, 252) : color.rgb(252, 4, 0)
isBlue = ta.cci(src, period) >= 0
isRed = ta.cci(src, period) < 0

// Convert bool to float (1 for true, 0 for false)
isBlueFloat = isBlue ? 1 : 0
isRedFloat = isRed ? 1 : 0

// Moving Averages
ema45 = ta.ema(close, 45)
sma90 = ta.sma(close, 90)
sma180 = ta.sma(close, 180)

// Plot Trend Magic
plot(MagicTrend, color=color1, linewidth=3)

// Alerts
alertcondition(ta.cross(close, MagicTrend), title="Cross Alert", message="Price - MagicTrend Crossing!")
alertcondition(ta.crossover(low, MagicTrend), title="CrossOver Alarm", message="BUY SIGNAL!")
alertcondition(ta.crossunder(high, MagicTrend), title="CrossUnder Alarm", message="SELL SIGNAL!")

// Perfect Order conditions
bullishPerfectOrder = ema45 > sma90 and sma90 > sma180  // Bullish Perfect Order
bearishPerfectOrder = ema45 < sma90 and sma90 < sma180  // Bearish Perfect Order

// Trend Magic color change detection
trendMagicTurnedBlue = ta.crossover(isBlueFloat, isRedFloat)  // Red to Blue crossover (For long entry)
trendMagicTurnedRed = ta.crossunder(isBlueFloat, isRedFloat)  // Blue to Red crossover (For short entry)

// Variables to store SMA90 at the entry
var float longSma90 = na
var float shortSma90 = na

// Trading logic based on Perfect Order and color change
longCondition = bullishPerfectOrder and trendMagicTurnedBlue  // Buy when Perfect Order is bullish and Trend Magic turns red to blue
shortCondition = bearishPerfectOrder and trendMagicTurnedRed  // Sell when Perfect Order is bearish and Trend Magic turns blue to red

// Strategy Entry
if (longCondition)
    strategy.entry("Buy", strategy.long)
    longSma90 := sma90  // Store SMA90 at entry for long position

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    shortSma90 := sma90  // Store SMA90 at entry for short position

// Stop-Loss and Take-Profit calculations
// For Long Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (longCondition and not na(longSma90))
    longStopLoss = longSma90  // Use SMA90 at the time of entry
    longRisk = close - longSma90  // Calculate risk
    longTakeProfit = close + longRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)

// For Short Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (shortCondition and not na(shortSma90))
    shortStopLoss = shortSma90  // Use SMA90 at the time of entry
    shortRisk = shortSma90 - close  // Calculate risk
    shortTakeProfit = close - shortRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Moving Averages
plot(ema45, color=color.green, title="EMA 45")
plot(sma90, color=color.blue, title="SMA 90")
plot(sma180, color=color.red, title="SMA 180")


関連性

もっと