この戦略は,スーパートレンドラインを使用してトレンド方向を決定するためのスーパートレンド指標に基づい,スーパートレンドトレンドをフォローする自動取引戦略を実装するために,スーパートレンドラインをストップ損失ラインとして使用します.これは明らかなトレンド傾向を持つ製品に適しており,強いトレンドをフォローするために中長期トレンドを把握することができます.
スーパートレンドインジケーターは,平均真の範囲 (ATR) と倍数から計算され,価格のトレンド方向を効果的に決定することができます.価格が上部のスーパートレンドラインの上にあるとき,それは上向きの傾向です.価格が下部のスーパートレンドライン下にあるとき,それは下向きの傾向です.
戦略は,まず上下スーパートレンドラインを計算する.上下スーパートレンドラインは,最高価格と最低価格の平均をマイナスATRをNで掛け算して計算する.下下スーパートレンドラインは,最高価格と最低価格をプラスATRをNで掛け算して計算する.ここでNはユーザーによって設定された倍数パラメータである.
価格に対するトレンドの方向性を計算します.価格が前のバーの下のスーパートレンドラインより高くなった場合,それは上向きのトレンドとして定義されます.価格が前のバーの上向きのスーパートレンドラインより低くなった場合,それは下向きのトレンドとして定義されます.
決定されたトレンド方向に応じて,上部スーパートレンドラインまたは下部スーパートレンドラインをスーパートレンドラインとして選択します. 上部スーパートレンドラインが上部トレンドラインである場合,上部スーパートレンドラインをスーパートレンドラインとして選択します. 下部トレンドラインが下部トレンドラインである場合,下部スーパートレンドラインをスーパートレンドラインとして選択します.
最後に,ストップ・ロスのラインとしてスーパートレンドラインを採用する.価格はスーパートレンドラインを超えるとロングになり,スーパートレンドラインを下回るとショートする.価格はスーパートレンドラインに触るとポジションを終了する.
この戦略の主な利点は以下の通りです.
スーパートレンド指標を使用して価格傾向の方向性を決定することで,効果的にトレンドを追跡することができます.
スーパートレンドラインはストップ損失ラインとして損失を制限できます
この戦略は,2.51のシャープ比率で,わずかな引き上げを示し,安定したパフォーマンスを示しています.
1988の取引が多く 勝率を向上させるパラメータの最適化が可能です
手動の介入なしで完全に自動化された取引を実施します
この戦略にはいくつかのリスクもあります:
スーパートレンドインジケーターは価格変動に敏感で,より多くのウィップソー信号を生成し,収益性を低下させる可能性があります.
範囲限定のトレンドでは損失を停止する傾向があり,横向的な製品には適していません.
この計算では,その期間中に大きな損失を引き起こす可能性がある大きな経済出来事の影響は考慮されません.
利潤率はわずか41%で 勝利率は改善が必要です
パラメータは異なる製品と時間枠に最適化する必要があります.
単一の取引で過度の損失を防ぐために,厳格なマネー管理が必要です.
戦略は以下の側面で最適化できます.
他の指標のフィルターを追加して,マウント・マウント,MACDなど,ウィップソーを回避し,勝率を向上させる.
スーパートレンドラインの誤判から誤った信号を避けるためにトレンド確認を増やす.例えば,チャネルブレイク確認を追加する.
異なる製品と時間枠に合わせてパラメータを調整する.例えば,ATR期間を調整する.
重要な経済ニュースを避けるための戦略を追加します.
ストップ・ロスの戦略を最適化する
市場状況に基づいてポジションのサイズを最適化し,リスクの露出を制御するためにxposを調整する.
この戦略は,スーパートレンド指標に基づくシンプルなトレンドフォロー戦略を設計し,良質なパフォーマンスを有しますが,より多くの取引信号と勝利率を改善する余地があります. フィルタリングのための他の指標と最適化し,異なる製品のためのパラメータを調整し,慎重なマネーマネジメントを適用することで,この戦略は軽度の引き下げの戦略を伴う安定したトレンドフォロー戦略になることができます. しかし,誤判に関連するリスクに気づいてください.
/*backtest start: 2023-10-16 00:00:00 end: 2023-10-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("QuantNomad - SuperTrend - XBTUSD - 1m", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) // INPUTS // st_mult = input(2, title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01) st_period = input(14, title = 'SuperTrend Period', minval = 1) // CALCULATIONS // up_lev = hl2 - (st_mult * atr(st_period)) dn_lev = hl2 + (st_mult * atr(st_period)) up_trend = 0.0 up_trend := close[1] > up_trend[1] ? max(up_lev, up_trend[1]) : up_lev down_trend = 0.0 down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev // Calculate trend var trend = 0 trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1) // Calculate SuperTrend Line st_line = trend ==1 ? up_trend : down_trend // Plotting plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_line, linewidth = 2, title = "SuperTrend") plotshape(crossover( close, st_line), location = location.belowbar, color = color.green) plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red) // Strategy with stop orders strategy.entry("long", true, stop = st_line) strategy.entry("short", false, stop = st_line)