サポートとレジスタンスのトレンド追跡戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-27 15:11:04
タグ:

img

概要

この戦略は,3つの技術指標 - サポート,レジスタンス,トレンドライン - を利用し,エントリーとストップ損失を自動化します.まず,主要なサポートとレジスタンスレベルを特定し,その後,エントリータイミングを決定するためにトレンド方向を組み合わせます.

戦略の論理

  1. 主要なサポートとレジスタンスのレベルを特定します.
  2. トレンドラインを使用して市場のトレンド方向を決定します. 上向きは,価格が前回の閉じる値よりも高くなったとき定義されます.そうでなければ,それは下向きです.
  3. 価格がサポートレベルに近づき 上向きの傾向が示されると 購入信号が発信されます
  4. 価格がレジスタンスレベルに近づき 下行傾向が起こると,セールシグナルが起動します.
  5. 利得目標はリスク・リターン比に基づいて計算され ストップロスはサポートレベルに近い.
  6. ストップ・ロスは利益の確保に使えます

利点分析

  1. サポート,レジスタンス,トレンドの力を完全に利用します 3つの強力な技術指標です
  2. 自動入力タイムリングは 主観的なエラーを排除します
  3. 制御可能なリスクで,ストップロスはキーサポートレベルに近い.
  4. 利回りを避けるため フォローするストップ損失を選択できます

リスク分析

  1. 失敗したブレイクリスク - 価格は最初のブレイク後に破られたサポートまたはレジスタンスレベルを再テストすることができます.
  2. トレンド誤判リスク - トレンドラインのみを使用すると,誤ったトレンドバイアスが起こる可能性があります.
  3. ストップ・ロスはリスクを取り除く - ストップ・ロスはサポートから近い距離にあるにもかかわらず,変動する価格変動の影響を受けることがあります.

解決策:

  1. サポート/抵抗の検証のためにより広い範囲を許可する.
  2. 傾向偏差を確認するために複数の指標を使用します
  3. 範囲に基づくストップ・ロストや 適切な手動介入を 採用する

オプティマイゼーションの方向性

  1. 入力シグナルを確認するためのより多くの指標を追加します.例えば,ボリュームベースの指標,移動平均等です.これは精度を向上させることができます.
  2. サポート,レジスタンス,ストップ・ロスのレベルを最適化して 異なるパラメータをテストします
  3. マシン学習方法を使って パラメータを自動最適化します

結論

この戦略は,複数の技術ツールの力を組み合わせます.適切なパラメータ調整によって,リスク調整された良いリターンを達成できます.鍵はパラメータとエントリーシーケンスを最適化することです.全体的に見ると,戦略の枠組みは健全で,改善の可能性が豊富です.


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Support Resistance Trend Strategy", overlay=true)

// Input parameters
supportLevel = input(100, title="Support Level")
resistanceLevel = input(200, title="Resistance Level")
riskRewardRatio = input(2, title="Risk-Reward Ratio")
trailStopLoss = input(true, title="Use Trailing Stop Loss")

// Calculate trend direction based on trend lines
trendUp = close > request.security(syminfo.tickerid, "D", close[1])
trendDown = close < request.security(syminfo.tickerid, "D", close[1])

// Buy signal condition
buySignal = close < supportLevel and trendUp

// Sell signal condition
sellSignal = close > resistanceLevel and trendDown

// Entry point and exit conditions
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)

// Calculate targets and stop-loss levels
targetPrice = close + (close - supportLevel) * riskRewardRatio
stopLossLevel = supportLevel

// Plot support and resistance levels
plot(supportLevel, color=color.green, linewidth=2, title="Support Level")
plot(resistanceLevel, color=color.red, linewidth=2, title="Resistance Level")

// Plot targets and stop-loss levels
plot(targetPrice, color=color.blue, linewidth=2, title="Target Price")
plot(stopLossLevel, color=color.orange, linewidth=2, title="Stop Loss Level")

// Trailing stop-loss
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLossLevel, profit=targetPrice)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", loss=targetPrice, profit=stopLossLevel)

// Plot trail stop loss
if (trailStopLoss)
    strategy.exit("Trailing Stop Loss", from_entry="Buy", loss=stopLossLevel)
    strategy.exit("Trailing Stop Loss", from_entry="Sell", loss=stopLossLevel)


もっと