複数期間の主要価格レベルに基づくリープフロッグ価格ブレイクスルートレンド戦略定量取引システム

HOD LOD PMH PML PDH PDL MA RSI ATR ADX
作成日: 2025-01-06 16:06:30 最終変更日: 2025-01-06 16:06:30
コピー: 1 クリック数: 328
1
フォロー
1617
フォロワー

複数期間の主要価格レベルに基づくリープフロッグ価格ブレイクスルートレンド戦略定量取引システム

概要

この戦略は、複数の主要な価格レベルに基づいたブレイクアウト取引システムです。主に、日中高値 (HOD)、日中安値 (LOD)、プレマーケット高値 (PMH)、プレマーケット安値 (PML)、前日高値 (PDH)、前日安値 (PDL) の 6 つの主要ポイントを追跡します。価格レベルでは、価格がこれらのレベルを突破することで取引シグナルが生成されます。この戦略では、自動取引を使用して、主要なレベルの価格交差に基づいて売買操作を実行します。

戦略原則

戦略の中核となるロジックには、次の主要な部分が含まれます。

  1. 主要な価格レベルの計算: request.security 関数を使用して、さまざまな期間の価格データを取得し、6 つの主要な価格レベルを計算します。
  2. オープン条件設定: 価格が PMH または PDH を上方に突破したときにロングポジションを開き、価格が PML または PDL を下方に突破したときにショートポジションを開きます。
  3. 決済条件設定:ロングポジションを保持している場合、価格が HOD に達するとポジションを決済します。ショートポジションを保持している場合、価格が LOD に達するとポジションを決済します。
  4. グラフィック視覚化: 異なる色の水平線を使用して各価格レベルをマークします。HOD は白、LOD は紫、PDH はオレンジ、PDL は青、PMH は緑、PML は赤です。

戦略的優位性

  1. 多次元価格参照: 複数の期間にわたって主要な価格レベルを監視することで、市場動向を包括的に把握します。
  2. ブレイクスルー取引のロジックは明確です。取引シグナルは価格ブレイクスルーに基づいて生成され、取引ルールは明確で理解しやすいものです。
  3. 高度な自動化: システムはさまざまな価格レベルを自動的に計算し、取引を実行するため、人間の介入が削減されます。
  4. 強力な視覚化効果: 各価格レベルは異なる色の水平線を通じて直感的に表示され、分析や判断に便利です。
  5. 高い適応性: この戦略は、さまざまな取引商品や期間に適用できます。

戦略リスク

  1. 誤ったブレイクアウトのリスク: 市場で誤ったブレイクアウトが発生し、誤ったシグナルが発生する可能性があります。
  2. ボラティリティ依存性: ボラティリティが低い環境では、戦略のパフォーマンスが低下する可能性があります。
  3. 不十分なリスク管理: 動的なストップロスと利益確定のメカニズムが欠如しています。
  4. 市場環境への依存性: トレンドが明確でない横ばい市場では頻繁に取引が行われる可能性があります。
  5. スリッページの影響: 流動性の低い市場では、より大きなスリッページが発生する可能性があります。

戦略最適化の方向性

  1. テクニカル指標のフィルタリングを追加します。
  • 買われすぎと売られすぎをフィルタリングするRSIインジケーターの紹介
  • ATRを使用して動的ストップロスを設定する
  • ADXを組み合わせてトレンドの強さを判断する
  1. リスク管理の改善:
  • 動的なストップロスメカニズムを設定する
  • トレーリングストップ機能を追加
  • バッチで利益を生み出す仕組みを構築する
  1. 最適化シグナルの確認:
  • 音量を上げる確認
  • 複数期間のトレンド確認を追加
  • 信号遅延確認メカニズムの設定

要約する

この戦略は、複数の主要な価格レベルを監視および活用することで市場機会を捉え、明確なロジックと高度な自動化を特徴としています。しかし、特定のリスクも存在し、テクニカル指標のフィルタリングを追加したり、リスク管理メカニズムを改善したりして最適化する必要があります。この戦略の核となる利点は、多次元の価格参照システムにあり、これにより市場動向をよりよく把握できますが、実際の適用では、さまざまな市場環境に応じてターゲットを絞ったパラメータ調整が必要になります。

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=6
strategy("HOD/LOD/PMH/PML/PDH/PDL Strategy by tradingbauhaus ", shorttitle="HOD/LOD Strategy", overlay=true)

// Daily high and low
dailyhigh = request.security(syminfo.tickerid, 'D', high)
dailylow = request.security(syminfo.tickerid, 'D', low)

// Previous day high and low
var float previousdayhigh = na
var float previousdaylow = na
high1 = request.security(syminfo.tickerid, 'D', high[1])
low1 = request.security(syminfo.tickerid, 'D', low[1])
high0 = request.security(syminfo.tickerid, 'D', high[0])
low0 = request.security(syminfo.tickerid, 'D', low[0])

// Yesterday high and low
if (hour == 9 and minute > 30) or hour > 10
    previousdayhigh := high1
    previousdaylow := low1
else
    previousdayhigh := high0
    previousdaylow := low0

// Premarket high and low
t = time("1440", "0000-0930") // 1440 is the number of minutes in a whole day.
is_first = na(t[1]) and not na(t) or t[1] < t
ending_hour = 9
ending_minute = 30

var float pm_high = na
var float pm_low = na

if is_first and barstate.isnew and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    pm_low := low
else 
    pm_high := pm_high[1]
    pm_low := pm_low[1]

if high > pm_high and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    
if low < pm_low and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_low := low

// Plotting levels
plot(dailyhigh, style=plot.style_line, title="Daily high", color=color.white, linewidth=1, trackprice=true)
plot(dailylow, style=plot.style_line, title="Daily low", color=color.purple, linewidth=1, trackprice=true)
plot(previousdayhigh, style=plot.style_line, title="Previous Day high", color=color.orange, linewidth=1, trackprice=true)
plot(previousdaylow, style=plot.style_line, title="Previous Day low", color=color.blue, linewidth=1, trackprice=true)
plot(pm_high, style=plot.style_line, title="Premarket high", color=color.green, linewidth=1, trackprice=true)
plot(pm_low, style=plot.style_line, title="Premarket low", color=color.red, linewidth=1, trackprice=true)

// Strategy logic
// Long entry: Price crosses above PMH or PDH
if (ta.crossover(close, pm_high) or ta.crossover(close, previousdayhigh)) and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)

// Short entry: Price crosses below PML or PDL
if (ta.crossunder(close, pm_low) or ta.crossunder(close, previousdaylow)) and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)

// Exit long: Price reaches HOD
if strategy.position_size > 0 and ta.crossover(close, dailyhigh)
    strategy.close("Long")

// Exit short: Price reaches LOD
if strategy.position_size < 0 and ta.crossunder(close, dailylow)
    strategy.close("Short")