デュアルタイムフレームスーパートレンドフォロー戦略


作成日: 2023-09-22 14:27:52 最終変更日: 2023-09-22 14:27:52
コピー: 1 クリック数: 760
1
フォロー
1617
フォロワー

概要

この戦略は,2つのタイムフレームの超トレンド追跡戦略である.これは,2つの異なる周期の超トレンド指標を同時に適用し,1つの主要タイムフレームでトレンドの方向を判断し,1つの補助タイムフレームでフィルター入場する. 2つのタイムフレームの超トレンド指標が同定時に入場し,トレンドの転換点をより正確に捕捉することができる.

戦略原則

この戦略の核心指標は超トレンド指標である.超トレンド指標は,価格の離散差を計算して価格の相対的な傾向の方向を判断する.戦略は,2つの時間周期の超トレンド指標を使用して,主時間枠と補助時間枠の超トレンドラインをそれぞれ計算する.

取引の論理は以下の通りです.

  1. 主時間枠の超トレンドラインの方向を大トレンドの方向として判断する.

  2. 待機補助時間枠超トレンドラインがポジション同向信号を発した時に入場する.

  3. ストップダストストップポイントを設定します.

  4. 主時間枠の超トレンドラインが再び回転した時に平仓.

この2つの周期指標を組み合わせることで,いくつかの偏差信号をフィルターして,入場をより正確にすることができる.

優位分析

この戦略の利点は以下の通りです.

  1. ツータイムフレームの組み合わせにより,トレンドを正確に判断できます.

  2. 超トレンド指数は,トレンドの変化に敏感で,入場時に正確である.

  3. 危険をコントロールする Stop Loss Stop Stop セット

  4. 戦略の論理はシンプルで直感的で分かりやすい.

  5. パーメータを自己最適化して,異なる品種に適応する.

リスク分析

この戦略のリスクは以下の通りです.

  1. 超トレンド指標の遅滞は信号を誤判する可能性がある.

  2. 止損ブレーキの設定が不適切である場合,過剰な追及または故意の止損が起こる可能性があります.

  3. 双時間枠の組み合わせは,より短い反転の機会を逃す可能性があります.

  4. パラメータの最適化は,過去データに依存し,過適合のリスクが存在する.

  5. 取引コストの影響は考慮されていません.

対応方法:

  1. 指標パラメータを適切に調整し,他の指標の組み合わせを検証する.

  2. 回測データに基づいて動的にストップダメージストップの位置を最適化する。

  3. テストの周期が短くなれば 判断の助けになります

  4. データの追及範囲を拡大し,多市場追及検証を行う.

  5. 取引コストの計算に手数料,スライドポイントなどを追加します.

最適化の方向

この戦略は以下の点でさらに改善できます.

  1. より多くの指標の組み合わせをテストし,最適の組み合わせを探す.

  2. 動的に最適化するパラメータを導入する機械学習の方法.

  3. ストップ・ストップ・ストップ戦略を最適化し,利益・損失比率を改善する.

  4. 複数の時間周期の組み合わせを試す

  5. 取引回数に応じてストップ・ストップ・ロスの区間を調整する.

  6. 手数料とスライドポイントの計算の論理

  7. 図形化パラメータ最適化ツールの開発.

要約する

この戦略は,二時間枠超トレンド指標により,より正確なトレンド判断とエントリーを実現する. ストップ・ストップ・コントロール・リスクを設定する. 戦略の論理は,シンプルで明確で,拡張しやすい. 戦略をさらに安定させるために,より多くの指標,動態最適化パラメータ,取引コスト計算などの導入によって後期的に改善することができます. 全体として,この戦略は,二時間枠のトレンドを追跡する考え方を提供し,優れた参照価値を持っています.

ストラテジーソースコード
/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator

// strategy("Super Trend 2", overlay=true, default_qty_value=100)
TrendUp = 0.0
TrendDown = 0.0
Trend = 0.0
MTrendUp = 0.0
MTrendDown = 0.0
MTrend = 0.0

res = input(title="Main SuperTrend Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=security(syminfo.tickerid,res,close)

TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)