ヒストリカルプライスブレイクアウトハイブリッドトレンドトレーディングシステム(HBTS)

MA SMA EMA WMA VWMA
作成日: 2024-12-05 14:40:05 最終変更日: 2024-12-05 14:40:05
コピー: 0 クリック数: 431
1
フォロー
1617
フォロワー

ヒストリカルプライスブレイクアウトハイブリッドトレンドトレーディングシステム(HBTS)

概要

この戦略は,歴史的価格突破と均線フィルターに基づくトレンド追跡システムである.これは,多周期的な価格突破シグナルと移動平均を組み合わせて,市場トレンドを識別し,厳しい出場ルールを介して中長期の市場動きを捕捉する.この戦略は,55日間の価格突破を多値シグナルとして,20日間の価格突破を平仓シグナルとして採用し,同時に200日間の均線をトレンドフィルターとして導入し,偽の突破によるリスクを効果的に軽減する.

戦略原則

戦略の核心的な論理は,価格の突破とトレンドの追跡に基づいています.

  1. 入場シグナル:価格が55日間の新高を記録し,閉店価格が200日間の平均線上にあるとき,システムは複数のシグナルを発信する
  2. 出口シグナル:価格が20日間の低点に達すると,システム平仓で取引終了
  3. トレンドフィルター: 200日平均線を大トレンドの判断基準として使用し,平均線上でのみポジションを開く
  4. ポジション管理:口座の純額の10%を取引毎の資金比として使用
  5. 均線選択:SMA,EMA,WMA,VWMAの4つの均線モードをサポートし,異なる市場の特徴に応じて柔軟に選択できます

戦略的優位性

  1. 論理はシンプルで明快で,戦略はクラシックな価格の突破と均等な指標を使用し,理解し,実行しやすい
  2. リスクコントロールの完善:明確な停止条件を設定し,均等なフィルタリングとポジション制御でリスクを管理
  3. 適応性:パラメータの調整により,異なる市場環境に対応できる
  4. トレンドキャプター:複数の時間周期の価格突破でトレンド方向を確認する
  5. 高い自動化: 明確な戦略ルール,プログラム化による実行

戦略リスク

  1. 横盤整理の段階で偽の突破信号が生じやすい
  2. 滑落リスク:流動性が低い市場では,突破時の滑落は大きい可能性があります.
  3. トレンド転換のリスク:大トレンド転換点の近くで大きな引き下がりが起こり得る
  4. パラメータの感受性:異なる市場環境において最適なパラメータには大きな違いがある可能性がある
  5. 資金管理のリスク: 固定比率のポジションは,特定の状況で過度のリスクになる可能性があります.

戦略最適化の方向性

  1. 信号確認メカニズム:偽突破をフィルタリングするために取引量突破などの補助指標を増加させることができる
  2. ダイナミックストップ:ATRなどの波動率指標を導入してダイナミックストップを実現
  3. ポジション管理の最適化:市場の変動率に応じてポジションの割合を動的に調整する
  4. 多周期分析:信号信頼性を高めるために,より多くの時間周期の分析を追加する
  5. 市場環境の認識:現在の市場環境を判断するためのトレンド強度指標を追加

要約する

これは,クラシックな海取引の法則を現代的な技術分析ツールと組み合わせた戦略システムである.価格突破によってトレンドを捕捉し,均線フィルターを使用して方向を確認し,合理的なポジション管理と組み合わせてリスクを制御する.戦略の論理は明確で,実用性が強く,良好な拡張性がある.震動市場では不良なパフォーマンスを発揮するかもしれないが,合理的なパラメータ最適化とリスク管理により,トレンド市場では安定した収益を得ることができる.

ストラテジーソースコード
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Turtle Traders - Andrei", overlay=true, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ====== Inputs ======
// Período para a máxima das compras
lookback_buy = input.int(title="Período para Máxima de Compra", defval=55, minval=1)

// Período para a mínima das vendas
lookback_sell = input.int(title="Período para Mínima de Venda", defval=20, minval=1)

// Período da Média Móvel
ma_length = input.int(title="Período da Média Móvel", defval=200, minval=1)

// Tipo de Média Móvel
ma_type = input.string(title="Tipo de Média Móvel", defval="SMA", options=["SMA", "EMA", "WMA", "VWMA"])

// ====== Cálculos ======
// Cálculo da Média Móvel baseada no tipo selecionado
ma = switch ma_type
    "SMA" => ta.sma(close, ma_length)
    "EMA" => ta.ema(close, ma_length)
    "WMA" => ta.wma(close, ma_length)
    "VWMA" => ta.vwma(close, ma_length)

// Cálculo da máxima dos últimos 'lookback_buy' candles
highest_buy = ta.highest(high, lookback_buy)

// Cálculo da mínima dos últimos 'lookback_sell' candles
lowest_sell = ta.lowest(low, lookback_sell)

// ====== Condições de Negociação ======
// Condição de entrada: fechamento acima da máxima dos últimos 'lookback_buy' candles E acima da MA
longCondition = (high == highest_buy) and (close > ma)

if (longCondition)
    strategy.entry("Comprar", strategy.long)

// Condição de saída: fechamento abaixo da mínima dos últimos 'lookback_sell' candles
exitCondition = (low == lowest_sell)

if (exitCondition)
    strategy.close("Comprar")

// ====== Plotagens ======
// Plotar a máxima de 'lookback_buy' candles
plot(highest_buy, color=color.green, title="Máxima", linewidth=2)

// Plotar a mínima de 'lookback_sell' candles
plot(lowest_sell, color=color.red, title="Mínima", linewidth=2)

// Plotar a Média Móvel
plot(ma, color=color.blue, title="Média Móvel", linewidth=2)

// ====== Sinais Visuais ======
// Sinal de entrada
plotshape(series=longCondition, location=location.belowbar, color=color.green, 
          style=shape.labelup, title="Sinal de Compra", text="")

// Sinal de saída
plotshape(series=exitCondition, location=location.abovebar, color=color.red, 
          style=shape.labeldown, title="Sinal de Venda", text="")