3つのスーパートレンド戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-15 15:59:15
タグ:

スーパートレンド戦略の原則分析

スーパートレンド戦略は,トレンド方向を計算し,スーパートレンドラインをプロットすることで決定するトレンドをフォローする戦略である.この戦略は,3つのスーパートレンドラインをプロットするために3つのパラメータを使用し,価格がラインを突破すると取引信号を生成する.

この戦略は,まず3つのスーパートレンドラインをプロットするために3つのセットのATRと要素を計算する.ATRは価格変動を反映し,因子は価格に対するスーパートレンドラインの感度を決定する.この戦略は,異なるタイムフレームでトレンド変化を把握するために短期,中期,長期パラメータの組み合わせを採用する.

価格がスーパートレンドラインを越えると,上昇傾向を示し,ストラテジーはロングになる.価格がラインを下に越えると,ダウントレンドを示し,ストラテジーはショートになる. 3つのスーパートレンドラインは,より多くの取引機会を生むと同時に,偽信号を減らすためにシグナルを検証することができます.

さらに,戦略は変更関数を使用して,スーパートレンドラインの方向が変化したかどうかを確認する.方向が変化するときにのみ新しい信号が生成され,ポジションを閉じた直後に新しい取引を避ける.最後に,戦略は取引能力を向上させるためにすべての関数を閉じてキャンセルすることを提案する.

概要すると,スーパートレンド戦略は,複数のパラメータセットを使用して,複数の時間枠のトレンドを把握するためにスーパートレンド指標の利点を完全に利用しています.また,適切なエントリーと出口システムを組み込み,トレンドフォロー戦略の参照として機能することができます.

スーパートレンド戦略の利点

スーパートレンド戦略には以下の利点があります

  1. トレンド変化を把握する強い能力 - ダイナミックなスーパートレンドラインは,市場のトレンド変化を柔軟に把握し,さまざまな市場からの誤った信号を回避することができます.

  2. 複数のパラメータセット - 3つのスーパートレンドラインをプロットするために3つのパラメータセットを使用することで,より多くの機会のために,短,中,長いタイムフレームのトレンドを把握できます.

  3. 逆転検証メカニズム - スーパートレンドラインの方向が変化するときにのみ新しい信号を生成することで,不必要なウィップソーを回避し,信号の信頼性を検証する.

  4. 実用的な設計 - すべてのポジションを閉鎖し,すべてのオーダーをキャンセルする機能は,現実世界の取引性を向上させる.

  5. シンプルで明確な論理 - シンプルなシグナルルールの基礎としてSupertrendを使用することで,操作とテストが簡単になります.定量取引の初心者にとって適しています.

スーパートレンド戦略のリスク

超トレンド戦略には以下のリスクもあります

  1. 誤ったシグナルに易い - スーパートレンドラインの頻繁な交差は,過剰な誤ったシグナルと範囲市場での損失を生む可能性があります.

  2. 難しいパラメータ最適化 - 複数のパラメータセットを最適化することは困難である.不適切なパラメータはパフォーマンスを低下させる可能性があります.

  3. トレンド逆転点を特定できない - 潜在的なトレンド逆転を決定することなく,トレンド方向だけに依存する.追加の指標が必要である.

  4. 極端なイベントリスク - 極端な市場条件でリスクを効果的に制御できない.リスクを管理するためにストップ損失戦略が必要です.

  5. 曲線適合バイアス - 最適化されたパラメータは,歴史的なデータに過剰に適合するが,将来的には有効にはなっていない可能性があります.慎重な評価が必要です.

スーパートレンド戦略の概要

スーパートレンド戦略は,シンプルで実践的なトレンドフォローシステムである.動的なスーパートレンドラインを活用してトレンド方向を決定し,パフォーマンスを向上させるために複数のパラメータセットを使用する.戦略メカニズムも取引可能性のために合理的に設計されている.しかし,誤った信号や難しいパラメータ最適化などの問題は,改善のために他の技術指標と組み合わせることが必要です.一般的に,スーパートレンド戦略は中長期トレンド追跡にうまく機能し,初心者のための参照戦略テンプレートとして機能することができます.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MarketShree 

//@version=4
// strategy("Supertrend Strategy", overlay=true, default_qty_value=15)
closs_all=input(title="Close_all_Position", type=input.bool, defval=false)
cancel=input(title="Check To Cancel", type=input.bool, defval=false)

atrPeriod1 = input(7, "ATR Length-1")
factor1 = input(1.5,"Factor-1",type=input.float)
atrPeriod2 = input(10, "ATR Length-2")
factor2 = input(2, "Factor-2")
atrPeriod3 = input(20, "ATR Length-3")
factor3 = input(3, "Factor-3")

[superTrend1, direction1] = supertrend(factor1, atrPeriod1)
[superTrend2, direction2] = supertrend(factor2, atrPeriod2)
[superTrend3, direction3] = supertrend(factor3, atrPeriod3)

if change(direction1) < 0
    strategy.entry("LONG", strategy.long)

if change(direction1) > 0
    strategy.entry("SHORT", strategy.short)
strategy.close_all(when=closs_all,comment ="All postion are closed")
strategy.cancel_all(when=cancel)

if change(direction2) < 0
    strategy.entry("LONG", strategy.long)

if change(direction2) > 0
    strategy.entry("SHORT", strategy.short)
strategy.close_all(when=closs_all,comment ="All postion are closed")
strategy.cancel_all(when=cancel)
    
if change(direction3) < 0
    strategy.entry("LONG", strategy.long)

if change(direction3) > 0
    strategy.entry("SHORT", strategy.short)
strategy.close_all(when=closs_all,comment ="All postion are closed")
strategy.cancel_all(when=cancel)

colResistance = direction1 == 1 and direction1 == direction1[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport = direction1 == -1 and direction1 == direction1[1] ? color.new(color.green, 0) : color.new(color.green, 100)
plot(superTrend1, color = colResistance, linewidth=2)
plot(superTrend1, color = colSupport, linewidth=2)    

colResistance1 = direction2 == 1 and direction2 == direction2[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport1 = direction2 == -1 and direction2 == direction2[1] ? color.new(color.green, 0) : color.new(color.green, 100)
plot(superTrend2, color = colResistance, linewidth=2)
plot(superTrend2, color = colSupport, linewidth=2)

colResistance2 = direction3 == 1 and direction3 == direction3[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport2 = direction3 == -1 and direction3 == direction3[1] ? color.new(color.green, 0) : color.new(color.green, 100)
plot(superTrend3, color = colResistance1, linewidth=2)
plot(superTrend3, color = colSupport1, linewidth=2)


もっと