マルチタイムフレームストキャスティクスオシレーター戦略とトレンド確認取引システム

STOCH MTF HH/LL SL/TP KDJ
作成日: 2025-02-19 10:53:25 最終変更日: 2025-02-19 10:53:25
コピー: 5 クリック数: 413
1
フォロー
1617
フォロワー

マルチタイムフレームストキャスティクスオシレーター戦略とトレンド確認取引システム

概要

この戦略は,トレンド確認と価格形状の分析を組み合わせた多時間枠のランダムな振動指数 (Stochastic) に基づく取引システムである.この戦略は,15分,30分および60分の3つの時間周期を使用して,ランダムな指数の交差信号とより高い高点 (Higher High) とより低い低点 (Lower Low) の形状の確認によって取引機会を識別する.同時に,この戦略は,リスクを制御し,利益をロックするために,固定されたパーセントのストップ・ロズと利益の設定を採用する.

戦略原則

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

  1. 3つの異なる時間周期 (15分,30分,60分) のランダムな指標を使用して市場の動きを分析する
  2. 主要時間周期 (15分) の上で,K線がD線を突破し,超売り領域にあるとき,より高い低点形状と組み合わせて買入確認信号
  3. 同様に,K線がD線を下回り,オーバーバイの領域にあるとき,より低い高点形状の確認と組み合わせたセールシグナル
  4. 3.7%のストップ・ロスと1.8%のリターン・ゲインを使用して,各取引のリスクとリターンを管理する

戦略的優位性

  1. 多時周期分析により,市場全体像がよりよく理解され,偽の信号をよりよくフィルターできます.
  2. 価格形状分析と組み合わせた取引信号の信頼性を高めます.
  3. 固定されたリスク管理パラメータにより,取引結果がより安定し,制御できます.
  4. 戦略は波動性の高い市場環境に適用されます.
  5. 自動化された出入り信号は,主観的な判断による感情的影響を軽減します.

戦略リスク

  1. 不安定な市場では誤ったシグナルが頻繁に発生する可能性がある
  2. 固定ストップとトピックの設定は,すべての市場環境に適さない可能性があります.
  3. 複数の時間周期の信号は遅延が生じることがあります.
  4. ストップセットは,急速なトレンドの市場では,利益を早めに固定する可能性があります.
  5. 3.7%のストップ・ローンを負うには,より大きな資金管理が必要

戦略最適化の方向性

  1. 市場変動の動向に合わせて,ストップ・ロズと利益目標の調整を考慮できる
  2. 取引量指標の増強は,補足的な確認信号として
  3. トレンド強度指標の導入により,波動的な市場でのパフォーマンスを改善
  4. 複数のタイムサイクル間の重み設定を最適化
  5. 市場情緒指標の追加を検討し,信号の正確性を向上させる

要約する

これは,多時間周期分析とトレンド確認を組み合わせた完全な取引システムである.ランダムな指標と価格の形状の組み合わせによる使用により,市場の転換点をよりうまく捉えることができる.固定的リスク管理パラメータはシンプルですが,取引の一貫性を保証します.この戦略は,波動性の高い市場には適していますが,特定の市場環境に応じてパラメータを最適化する必要があります.

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

//@version=5
strategy("Swing Fairas Oil", overlay=true)

// Pilih Timeframe Utama & 2 Timeframe Konfirmasi
tf_main = "15"
tf_mid = "30"
tf_high = "60"

// Parameter Stochastic
length = input(15, title="Stochastic Length")
k_smooth = input(4, title="K Smoothing")
d_smooth = input(5, title="D Smoothing")

// Overbought & Oversold Levels
overbought = input(85, title="Overbought Level")
oversold = input(15, title="Oversold Level")

// Stochastic pada Timeframe Utama
k1 = ta.sma(ta.stoch(close, high, low, length), k_smooth)
d1 = ta.sma(k1, d_smooth)

// Stochastic pada Timeframe Menengah
k2 = request.security(syminfo.tickerid, tf_mid, ta.sma(ta.stoch(close, high, low, length), k_smooth))
d2 = request.security(syminfo.tickerid, tf_mid, ta.sma(k2, d_smooth))

// Stochastic pada Timeframe Tinggi
k3 = request.security(syminfo.tickerid, tf_high, ta.sma(ta.stoch(close, high, low, length), k_smooth))
d3 = request.security(syminfo.tickerid, tf_high, ta.sma(k3, d_smooth))

// **Konfirmasi Higher High & Lower Low**
hh = ta.highest(high, 5)   // Highest High dalam 5 candle terakhir
ll = ta.lowest(low, 5)     // Lowest Low dalam 5 candle terakhir

// **Kondisi Buy**
confirm_buy = ta.crossover(k1, d1) and k1 < oversold  // Stochastic Bullish
higher_low = low > ta.lowest(low[1], 5)  // Higher Low terbentuk

longCondition = confirm_buy and higher_low

// **Kondisi Sell**
confirm_sell = ta.crossunder(k1, d1) and k1 > overbought  // Stochastic Bearish
lower_high = high < ta.highest(high[1], 5)  // Lower High terbentuk

shortCondition = confirm_sell and lower_high

// Stop Loss & Take Profit
sl = input(3.7, title="Stop Loss (%)") / 100
tp = input(1.8, title="Take Profit (%)") / 100

longStopLoss = close * (1 - sl)
longTakeProfit = close * (1 + tp)

shortStopLoss = close * (1 + sl)
shortTakeProfit = close * (1 - tp)

// Eksekusi Order
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell TP/SL", from_entry="Buy", stop=longStopLoss, limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover TP/SL", from_entry="Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Label Buy & Sell
if longCondition
    label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down)

if shortCondition
    label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_up)

// Label Stop Loss & Take Profit
if longCondition
    label.new(bar_index, longStopLoss, "SL: " + str.tostring(longStopLoss, "#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_left)
    label.new(bar_index, longTakeProfit, "TP: " + str.tostring(longTakeProfit, "#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_left)

if shortCondition
    label.new(bar_index, shortStopLoss, "SL: " + str.tostring(shortStopLoss, "#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_left)
    label.new(bar_index, shortTakeProfit, "TP: " + str.tostring(shortTakeProfit, "#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_left)