スーパートレンド トリプル戦略

作者: リン・ハーンチャオチャン開催日:2023年12月21日 16:02:57
タグ:

img

概要

スーパートレンドトリプル戦略は,複数のタイムフレームのスーパートレンド指標と移動平均をベースとしたトレンドフォロー戦略である.トレンド方向を効果的に特定し,トレンドが形成されているときにタイミングで入力し,トレンドが逆転しているときにタイミングで退出し,利益を得ることができる.単一のスーパートレンド戦略と比較して,スーパートレンドトリプル戦略は市場のトレンドをより正確に描画し,偽のブレイクによって引き起こされる損失を回避することができます.

戦略の論理

この戦略は,異なるパラメータ設定を持つ3つのスーパートレンド指標を同時に採用する.スーパートレンド1,スーパートレンド2およびスーパートレンド3.それらの期間は,それぞれ入力パラメータであるスーパートレンド1_ペリオド,スーパートレンド2_ペリオドおよびスーパートレンド3_ペリオドから長から短まで範囲に及ぶ.この3つのスーパートレンド指標は移動平均線EMAで動作する.具体的な論理は:

ロングエントリー信号: 閉じる価格が3つのスーパートレンドラインと移動平均線より高くなった場合,ロングします.
ショートエントリー信号: 閉じる価格が3つのスーパートレンドラインと移動平均線よりも低いとき,ショートに行く.

このように,異なる期間のスーパートレンド指標は,市場のトレンドを誤った解釈を避けるために互いに検証することができます.移動平均線EMAの追加は,いくつかの偽のブレイクをフィルタリングすることができます.

戦略 の 強み

  1. トリプルスーパートレンドシステムを使用すると 傾向をより正確に判断し 偽のブレイクによって誤導されるのを避けることができます

  2. 異なるパラメータ設定のスーパートレンドインジケーターは互いに検証し,戦略をより信頼性のあるものにします.

  3. 移動平均線フィルターを追加すると,小サイクルの騒音がさらに避けられます.

  4. 戦略は合理的に参加し,利益を追及し,リスクを制御するために時間内に退場することができます.

戦略リスクと解決策

  1. スーパートレンド指標は遅延効果があり,少し遅いエントリータイムにつながる可能性があります.パラメータはそれに応じて調整したり,他の主要指標を追加したりできます.

  2. フィルターとしての移動平均線も遅延の問題がある. EMA やモメント指標などの他のスムージングインジケーターは置き換えるためにテストすることができます.

  3. トレンド逆転時の潜在的な大きな損失.停止損失を設定したり,潜在的な逆転を判断するために追加の指標を追加したりできます.

  4. 不適切なパラメータ設定も戦略のパフォーマンスに影響を与える可能性がある.最適なパラメータ組み合わせを見つけるには十分なバックテストと最適化が必要である.

戦略の最適化のための方向性

  1. トレンド判断の正確性を検証するために,MACD,DMIなどの他のトレンド判断指標を追加してテストする.

  2. スーパートレンドの期間と倍数を 異なる市場環境に適応できるようにします

  3. 戦略がリアルタイム変動に応じてリスク・リターン比を自動的に調整できるように ダイナミックなストップ・ロスト・アンド・テイク・プロフィート基準を設定します

  4. 移動平均線のパラメータを最適化するか,誤ったブレイクシグナルをフィルターするために他の指標を導入します.

  5. 主要なトレンドを把握する有効性を判断するために,より長い時間枠 (毎日,毎週,など) で実行戦略をテストします.

結論

スーパートレンドトリプル戦略は,トレンド方向を検証するために異なるパラメータを持つ3つのスーパートレンドインジケーターを同時に採用し,フィルタリングのために移動平均線を組み合わせます.トレンドを効果的に識別し,タイミングで入力し,偽のブレイクアウトを回避し,したがって信頼できるトレンドフォロー戦略です. 戦略はパラメータ最適化,ストップ損失メカニズム改善,その他の指標を統合するなどさまざまな方法でアップグレードすることができます. 最適化スペースで中長期トレンドを把握しながらリスクを制御することで,最適化のための広い余地があります.


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

//@version=5
strategy("Triple Supertrend Strategy", shorttitle = "TSS", overlay = true, pyramiding = 1) // Added pyramiding = 1

// Define input settings for Supertrend indicators
supertrend1_period = input.int(3, title = "Supertrend 1 Period")
supertrend1_multiplier = input.int(12, title = "Supertrend 1 Multiplier")
supertrend2_period = input.int(2, title = "Supertrend 2 Period")
supertrend2_multiplier = input.int(11, title = "Supertrend 2 Multiplier")
supertrend3_period = input.int(1, title = "Supertrend 3 Period")
supertrend3_multiplier = input.int(10, title = "Supertrend 3 Multiplier")

// EMA settings with user-defined length
ema_length = input.int(100, title = "EMA Length")

// Calculate Supertrend values for all three indicators
[supertrend1_value, _] = ta.supertrend(supertrend1_period, supertrend1_multiplier)
[supertrend2_value, _] = ta.supertrend(supertrend2_period, supertrend2_multiplier)
[supertrend3_value, _] = ta.supertrend(supertrend3_period, supertrend3_multiplier)

// Calculate EMA
ema = ta.ema(close, ema_length)

// Define long entry condition
longCondition = close > ema and close > supertrend1_value and close > supertrend2_value and close > supertrend3_value

// Define short entry condition
shortCondition = close < ema and close < supertrend1_value and close < supertrend2_value and close < supertrend3_value

// Strategy orders
if (longCondition)
    strategy.entry("Buy Order", strategy.long)
if (shortCondition)
    strategy.entry("Sell Order", strategy.short)

// Plot Supertrends and EMA for reference
plot(supertrend1_value, title="Supertrend 1", color=color.green)
plot(supertrend2_value, title="Supertrend 2", color=color.blue)
plot(supertrend3_value, title="Supertrend 3", color=color.red)
plot(ema, title="EMA", color=color.orange)

// Plot strategy entry signals
plotshape(series=longCondition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition,title="Short Entry Signal", location=location.abovebar,color=color.red ,style=shape.triangledown,size=size.small)


もっと