自動高値・安値予測と取引戦略


作成日: 2024-03-15 17:22:36 最終変更日: 2024-03-15 17:22:36
コピー: 0 クリック数: 653
1
フォロー
1617
フォロワー

自動高値・安値予測と取引戦略

概要

この戦略は,早盤9:15の高低点を識別し,空白ポジションのターゲット価格とストップ価格を自動的に計算し,条件を満たしたときに自動的にポジションを開きます.戦略は,比較的強い指標 ((RSI)) を使用して,超買と超売り状態を判断し,9:15の高低点突破と組み合わせて,入場機会を決定します.

戦略原則

  1. 9時から9時15分までの高低点形成区間を決定する.
  2. 9時15分に記録された最高値と最低値は,sessionHighとsessionLowでした.
  3. 多頭目標価格 ((sessionHigh+200) と空頭目標価格 ((sessionLow-200) と相応のストップ・ロスト価格をそれぞれ計算する.
  4. RSI指標と現在の閉店価格を表示する.
  5. 多頭ポジション開設条件:閉盘価格がセッションハイを突破し,RSIが超買いレベルより大きい.
  6. 空頭ポジション開設条件:閉盘価格がセッションローを下回り,RSIが超売りレベルより小さい.
  7. 関連価格をグラフ化し,ポジション開設条件に応じて自動で多頭または空頭を開きます.

優位分析

  1. シンプルで使いやすい:戦略は,明確な9:15の高低点とRSI指標に基づいており,論理が明確で,理解し,実行しやすい.
  2. 自動化度が高い:戦略は,目標価格とストップ・ロスの計算と開設条件の判断を内蔵し,取引の実行を自動化することができる.
  3. タイムリーストップ: 9:15の高低の基準でストップを設定し,ポジションを開設すると明確なストップが設定され,リスクを効果的にコントロールできます.
  4. トレンド追跡: RSI指標によって過買過売を判断し,トレンド形成の初期に介入し,順調に進むのに役立ちます.

リスク分析

  1. パラメータ最適化リスク:RSIの長さや超買い超売り値などの戦略パラメータは,市場の特徴に応じて最適化され,異なるパラメータは異なる結果をもたらす可能性があります.
  2. 単一指標リスク:戦略は主にRSI指標に依存し,特定の市場状況で指標が失敗する可能性があります.
  3. 9: 15以降の価格変動は,ストップ・ロスを引き起こす可能性があり,トレンドを逃す可能性があります.
  4. ポジション管理の欠如: ポジションのコントロールと資金管理の欠如,ポジションを頻繁に開くことは追加のリスクをもたらす可能性があります.

最適化の方向

  1. 動的ストップ:価格変動幅度またはATRなどの指標に基づいてストップポイントを動的に調整し,価格の変化を追跡する.
  2. 他の指標と組み合わせ:MACD,均線システムなどの他の指標を導入し,トレンド判断に印証を形成し,ポジション開設の正確性を向上させる.
  3. 入場条件の最適化: RSIの超買い超売り値に自律的な調整を行い,固定値による制限を回避する.
  4. ポジション管理の導入:市場の変動状況に応じてポジションをコントロールする.例えば,パーセントリスクモデルなどの方法を採用する.

要約する

この戦略は9:15の高低点に基づいて,RSI指標を使用してトレンドを判断し,ターゲット価格とストップ価格を自動的に計算し,開設条件に応じて自動で多頭または空頭ポジションを開きます.戦略の論理は単純で,自動化の程度は高く,トレンドの状況を迅速に捉えることができます.しかし,戦略にはパラメータ最適化,単一の指標盤,中間の波動,ポジション管理などのリスクもあります.将来,戦略は動態損失から,他の指標と組み合わせ,エントリー条件の最適化,ポジション管理の導入などの面で最適化され,改善され,より安定した取引パフォーマンスを得ることができます.

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

//@version=5
strategy("9:15 AM High/Low with Automatic Forecasting", overlay=true)

// Parameters
showSignals = input(true, title="Show Signals")

// Define session time
sessionStartHour = input(9, title="Session Start Hour")
sessionStartMinute = input(0, title="Session Start Minute")
sessionEndHour = input(9, title="Session End Hour")
sessionEndMinute = input(15, title="Session End Minute")

// Calculate session high and low
var float sessionHigh = na
var float sessionLow = na
if (hour == sessionStartHour and minute == sessionStartMinute)
    sessionHigh := high
    sessionLow := low

// Update session high and low if within session time
if (hour == sessionStartHour and minute >= sessionStartMinute and minute < sessionEndMinute)
    sessionHigh := high > sessionHigh or na(sessionHigh) ? high : sessionHigh
    sessionLow := low < sessionLow or na(sessionLow) ? low : sessionLow

// Plot horizontal lines for session high and low
plot(sessionHigh, color=color.green, title="9:00 AM High", style=plot.style_stepline, linewidth=1)
plot(sessionLow, color=color.red, title="9:00 AM Low", style=plot.style_stepline, linewidth=1)

// Calculate targets and stop loss
longTarget = sessionHigh + 200
longStopLoss = sessionLow
shortTarget = sessionLow - 200
shortStopLoss = sessionHigh

// Plot targets and stop loss
plot(longTarget, color=color.blue, title="Long Target", style=plot.style_cross, linewidth=1)
plot(longStopLoss, color=color.red, title="Long Stop Loss", style=plot.style_cross, linewidth=1)
plot(shortTarget, color=color.blue, title="Short Target", style=plot.style_cross, linewidth=1)
plot(shortStopLoss, color=color.red, title="Short Stop Loss", style=plot.style_cross, linewidth=1)

// RSI
rsiLength = input(14, title="RSI Length")
overboughtLevel = input(60, title="Overbought Level")
oversoldLevel = input(40, title="Oversold Level")
rsi = ta.rsi(close, rsiLength)

// Entry conditions
longCondition = close > sessionHigh and rsi > overboughtLevel
shortCondition = close < sessionLow and rsi < oversoldLevel

// Long entry
if (showSignals and longCondition)
    strategy.entry("Long", strategy.long)

// Short entry
if (showSignals and shortCondition)
    strategy.entry("Short", strategy.short)