短期、中期、長期のトリプル移動平均トレンドフォロー戦略

SMA EMA RISK
作成日: 2024-05-11 12:04:27 最終変更日: 2024-05-11 12:04:27
コピー: 0 クリック数: 669
1
フォロー
1617
フォロワー

短期、中期、長期のトリプル移動平均トレンドフォロー戦略

概要

“短期・長期の三重移動平均トレンド追跡戦略”は,異なる周期の移動平均の組み合わせを使用して市場トレンドを捉え,取引を行う定量投資戦略である.この戦略は,3日間の最低価格の短期移動平均,3日間の最高価格の短期移動平均および30日間の閉店価格の中間移動平均に基づいており,閉店価格とこれらの3つの平均線の相対的な位置を比較してトレンド方向を判断し,取引シグナルを発信する.閉店価格が3日間の最低値を下回り,30日間の閉店価格よりも高い時線を多く行う.

戦略原則

この戦略の核心原則は,移動平均のトレンド特性と異なる周期平均の交差関係を利用して市場動向を捉えることです.短期間の3日間の最低価格と最高価格の移動平均は,価格の短期的な変動に迅速に反応し,中期間の30日間の閉店価格の移動平均は,より大きなレベルのトレンド方向を反映します.

閉盘価格が3日間の最低価格平均線を下回り,30日間の閉盘価格平均線より上にあるとき,短期的な引き戻りが起こっているが,中期的なトレンドは依然として看板であることを示す.このとき入場は多すぎる.閉盘価格が3日間の最高価格平均線を破ったとき,短期的な振動力は衰退し,このとき平仓は終了する.短期中期平均線の配合の使用により,戦略はトレンドの初期に介入し,トレンドの終了前に及ばて退出することができる.

戦略的優位性

  1. トレンドキャプチャ能力が高い.戦略は,短期中期間の異なる周期平均線の配合を利用して,市場の中期長期のトレンドをうまくキャプチャすることができます.順番は,
  2. タイムストップ. 30日間の中間平均線でトレンドの方向を判断し,3日間の短期平均線を利用して,タイムストップで利益を出すこと,過剰なポジションを避ける.
  3. パラメータはシンプルで,理解しやすく,最適化できます.戦略は3つの均線のみを使用し,論理は明確で,パラメータは最適化テストも簡単です.
  4. 適応性強. 短期中期平均線配合は,異なる波動周期の市場に適応し,傾向と振動の状況に一定の適応性を持っています.

戦略リスク

  1. 頻繁に取引する. 戦略 変動の状況で頻繁に取引するシグナルが発生し,取引コストが増加する.
  2. 突発事件の危険 市場が激しく異常な波動を起こす場合,均線システムが機能しなくなり,大きな撤退を引き起こす可能性があります.
  3. 参数失効リスク 市場トレンドのペースが変化した場合,元のパラメータは効力を失い,再最適化が必要となる.
  4. ポジション管理の欠如. 戦略が設定されていないポジション管理と資金管理のルール,リスク管理能力が限られている.

戦略最適化の方向性

  1. ポジション管理を増やす 傾向の強さや波動率などの指標に基づいてポジションを動的に調整し,利益リスク比率を向上させる
  2. 他のトレンド指標と組み合わせて.MACD,DMIなどの他のトレンド類の指標を補助として導入して,トレンド判断の正確さを向上させることができる.
  3. 最適化パラメータ.異なる基準と周期に対して平均線パラメータを最適化して,最適なパラメータ組み合わせを見つける.
  4. ストップを追加 合理的なストップレベルを設定し,単一取引の最大損失を制御し,戦略の安定性を向上させる
  5. 適切なフィルタリング. 変動状況下での取引の頻度を減らす. ATRなどの変動率フィルタリングメカニズムを導入することを検討する.

要約する

“短期・中長期の三重移動平均線トレンド追跡戦略”は,異なる周期平均線を利用してトレンドを捕捉する量化取引戦略である.これは,3日間の最低価格平均線,3日間の最高価格平均線および30日間の平均線との位置関係を比較して,トレンドが発生する初期に介入し,終了する前に退出する.戦略の論理は簡単で理解しやすい,適応性が強いが,また,頻繁な取引,ポジション管理の欠陥などのリスクも存在します.

ストラテジーソースコード
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Estratégia de Médias Móveis - Entrada/Saída Simples", shorttitle="MM3", overlay=true)

// Parâmetros de entrada para a data de início e final do backtest
var start_date_input = input(title="Data de Início", defval=timestamp("01 Jan 2020 00:00 +0000"))
var end_date_input = input(title="Data Final", defval=timestamp("01 Jan 2021 00:00 +0000"))

// Convertendo as datas de entrada para formato de tempo
start_date = timestamp(year(start_date_input), month(start_date_input), dayofmonth(start_date_input), 0, 0)
end_date = timestamp(year(end_date_input), month(end_date_input), dayofmonth(end_date_input), 23, 59)

// Definindo as Médias Móveis
min_ma_3 = ta.sma(low, 3)
max_ma_3 = ta.sma(high, 3)
close_ma_30 = ta.sma(close, 30)

// Condição de Entrada: Fechamento abaixo da Média de 3 Mínimas e acima da Média de 30 Fechamentos
entry_condition = close < min_ma_3 and close > close_ma_30

// Condição de Saída: Fechamento acima da Média de 3 Máximas
exit_condition = close > max_ma_3

// Sinal de Compra: Entrada na próxima vela após a condição de entrada ser verdadeira
if (entry_condition )
    strategy.entry("Buy", strategy.long)

// Sinal de Venda: Saída na próxima vela após a condição de saída ser verdadeira
if (exit_condition)
    strategy.close("Buy")

// Plotando as Médias Móveis e os Sinais de Entrada/Saída
plot(min_ma_3, color=color.red, linewidth=2, title="Média de 3 Mínimas")
plot(max_ma_3, color=color.blue, linewidth=2, title="Média de 3 Máximas")
plot(close_ma_30, color=color.orange, linewidth=2, title="Média de 30 Fechamentos")