資源の読み込みに... 荷物...

RSI 平均逆転ブレイクストラテジー

作者: リン・ハーンチャオチャン, 日付: 2024-12-05 16:53:44
タグ:RSISMAATR

img

戦略の概要

この戦略は,RSI指標と平均逆転原理に基づいた定量的な取引システムである. 価格範囲分析と閉値ポジションと組み合わせて,過剰購入および過剰販売条件を検出することによって市場逆転機会を特定する. 核心コンセプトは,極端な市場状況の後,リスク管理を厳格なエントリー基準とダイナミックストップロストメカニズムを通じて,平均逆転機会を把握することです.

戦略の原則

この戦略は,取引シグナルを決定するために複数のフィルタリングメカニズムを使用します. まず,価格は10期低値に達し,過剰販売の市場状態を示す必要があります. 둘째,日の価格範囲は過去10日間の最大値で,市場の変動が増加することを示唆します.最後に,閉じる価格が日の範囲の上位クォーティルの内にあるかどうかを確認することによって潜在的な逆転信号を確認します. 入場はブレイクアウトの確認を通じて実行され,取引条件を満たしてから2日以内に価格が前の最高値を超えるとロングになります.ストップ・ロスは利益を保護するためにトレーリングメカニズムを通じて実装されます.

戦略 の 利点

  1. 複数のフィルタリング条件により信号の質が向上し,偽信号は減少する
  2. テクニカル価格パターン,波動性,インパントを含む複数の次元を統合します
  3. 効果的利益保護のために遅延停止損失メカニズムを使用する
  4. 入国メカニズムは早速入国を防ぐために 突破確認を使用します
  5. トレーディングロジックは明確で,理解し,実行するのが簡単です

戦略リスク

  1. 強いトレンド市場では頻繁にストップ・ロスを引き起こす可能性があります
  2. 厳格な参入条件は,いくつかの取引機会を逃す可能性があります
  3. 取引頻度が高くなり,取引コストが高くなる可能性がある
  4. 低変動環境で効果的な取引信号を見つけるのに苦労する可能性があります.
  5. ストップ・ロスの設定は,全体的な収益に影響を与える,あまりにも保守的かもしれない

戦略の最適化方向

  1. 強いトレンド環境で取引を一時停止するためにトレンドフィルターを導入できます
  2. 追加的な確認のために,ボリューム指標を追加することを検討します.
  3. 市場変動に基づく動的調整でストップ・ロスの設定を最適化
  4. 長期振動を避けるために位置保持時間制限を追加
  5. 信号の信頼性を向上させるため,複数のタイムフレーム分析を実施することを検討する

概要

この戦略は,明確な論理を持つ構造化された平均逆転戦略である.複数の条件フィルタリングとダイナミックストップ・ロスの管理を通じて,リスクを制御しながら,市場過剰売り回転機会を効果的に捉える.いくつかの制限があるにもかかわらず,合理的な最適化と精製によって全体的なパフォーマンスを改善することができる. 投資家は,実際の取引で戦略を適用する際に,特定の市場特性とそのリスク耐性をベースにパラメータを調整することをお勧めする.


/*backtest
start: 2024-11-04 00:00:00
end: 2024-12-04 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Larry Conners SMTP Strategy", overlay=true, margin_long=100, margin_short=100)

// --- Inputs ---
// Corrected the input type declaration by removing 'type='
tickSize = input.float(0.01, title="Tick Size (e.g., 1/8 for stocks)")

// --- Calculate conditions ---
// 1. Today the market must make a 10-period low
low10 = ta.lowest(low, 10)
is10PeriodLow = low == low10

// 2. Today's range must be the largest of the past 10 bars
rangeToday = high - low
maxRange10 = ta.highest(high - low, 10)
isLargestRange = rangeToday == maxRange10

// 3. Today's close must be in the top 25 percent of today's range
rangePercent = (close - low) / rangeToday
isCloseInTop25 = rangePercent >= 0.75

// Combine all buy conditions
buyCondition = is10PeriodLow and isLargestRange and isCloseInTop25

// --- Buy Entry (on the next day) ---
var float buyPrice = na
var bool orderPending = false
var float stopLoss = na  // Initialize stopLoss at the top level to avoid 'Undeclared identifier' errors

if (buyCondition and strategy.position_size == 0)
    buyPrice := high + tickSize
    stopLoss := low
    orderPending := true

// Condition to place buy order the next day or the day after
if orderPending and ta.barssince(buyCondition) <= 2
    strategy.entry("Buy", strategy.long, stop=buyPrice)
    orderPending := false

// --- Stop-Loss and Trailing Stop ---
if (strategy.position_size > 0)
    stopLoss := math.max(stopLoss, low) // Move stop to higher lows (manual trailing)
    strategy.exit("Exit", from_entry="Buy", stop=stopLoss)

// --- Plotting ---
// Highlight buy conditions
bgcolor(buyCondition ? color.new(color.green, 50) : na)
//plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy Setup")

// Plot Stop-Loss level for visualization
//plot(strategy.position_size > 0 ? stopLoss : na, color=color.red, linewidth=2, title="Stop-Loss Level")

関連性

もっと