モメンタムブレイクアウトバックテストサポートレジスタンス戦略


作成日: 2024-02-22 16:07:14 最終変更日: 2024-02-22 16:07:14
コピー: 0 クリック数: 619
1
フォロー
1617
フォロワー

モメンタムブレイクアウトバックテストサポートレジスタンス戦略

概要

この戦略は,主に前日取引の最高価格,最低価格,閉店価格を当日のサポートとレジスタンスとして使用し,レジスタンス値を突破する際に多額で,サポート値をテストする際に空白を空けて,典型的な突破戦略に属します.

戦略原則

コードはまず,サポートレジスタンス値を計算する関数calculateSupportResistanceを定義します.この関数は,その日のサポートレジスタンス値として,前日の取引日の最高価格,最低価格,および終了価格を抽出します.

この関数は,この3つの値位を主論理で呼び出し,図を表示します.

逆算の論理では,閉盘価格が前日の最低価格より低いのに,現在の価格がその最低価格より高いのが突破となるなら,多行する.閉盘価格が前日の最高価格より高いのに,現在の価格がその最高価格より低いのが突破となるなら,空行する.

この突破的なモデルによって,トレンドの判断と取引シグナルの生成が可能である.

戦略的優位性

  1. 前日取引のデータを使用して,その日のサポートレジスタンス値を構築し,パラメータ最適化の問題を回避します.
  2. サポートレジスタンスレベルは,実際の市場取引データから取り上げられ,一定の基準値を持つ
  3. 返信モデルがシンプルで直接で分かりやすい実装
  4. サポート・レジスタンス位置を視覚化して,価格の認識を形成する
  5. リアルタイムでブレイクを監視し,取引の機会を把握する

戦略リスク

  1. サポートレジスタンス位は時間とともに変化し,その有効性を決定することはできません.
  2. 予想できないトレンドの方向性,逆転を逃すリスク
  3. 偽の侵入に容易で,早期入学のリスク
  4. 破綻の持続可能性は不明で,早期停止の可能性がある
  5. 株価が急激に波動すると,株価の支柱の抵抗が失効する可能性が高い

対策として

  1. 突破の有効性を判断する要素
  2. ストップを適度に拡大してトレンドを把握する
  3. 株価変動の影響を軽減するために,ポジションをグループで構築する

戦略の最適化

  1. 5日線,10日線の価格など, 支持する抵抗点を判断するための,より多くの歴史的データを追加します.
  2. 取引量などの指標を組み合わせて突破の有効性を判断する
  3. 実際の変動率によるストップ・ロスの設定
  4. 資金管理を最適化し,単一損失を抑制する

要約する

この戦略は全体的に典型的な突破戦略であり,シンプルで直観的なもので,前日取引日のデータから当日のサポートレジスタンスを構築し,その突破を多空に追及する.利点は,実現を理解しやすく,サポートレジスタンスを直接見ることができることである.欠点は,偽突破のリスクが存在し,トレンドの持続性を決定することができないことである.次のステップは,突破の効果を特定し,リスクを制御し,資金管理を最適化するなどから最適化することができる.

ストラテジーソースコード
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Support and Resistance with Backtesting", overlay=true)

// Function to calculate support and resistance levels
calculateSupportResistance() =>
    highPrevDay = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
    lowPrevDay = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
    closePrevDay = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
    [highPrevDay, lowPrevDay, closePrevDay]

// Call the function to get support and resistance levels
[supResHigh, supResLow, supResClose] = calculateSupportResistance()

// Plotting support and resistance levels
plot(supResHigh, color=color.red, linewidth=2, title="Previous Day High")
plot(supResLow, color=color.green, linewidth=2, title="Previous Day Low")
plot(supResClose, color=color.blue, linewidth=2, title="Previous Day Close")

// Backtesting logic
backtestCondition = close[1] < supResLow and close > supResLow
strategy.entry("Long", strategy.long, when=backtestCondition)

// Plotting buy/sell arrows for backtesting
plotarrow(backtestCondition ? 1 : na, colorup=color.green, offset=-1, transp=0)