スーパートレンド盲目戦略


作成日: 2023-12-13 16:49:44 最終変更日: 2023-12-13 16:49:44
コピー: 0 クリック数: 705
1
フォロー
1621
フォロワー

スーパートレンド盲目戦略

概要

この策略は,超トレンド指標を盲目的にフォローした場合に何が起こるかを示しています.超トレンド指標はすぐには現れませんので,次のK線を待って,ポジションに入るかどうかを決定する必要があります.

戦略原則

この戦略は,超トレンド指標を使用して価格の傾向を判断する.超トレンド指標は,平均実際の波幅と高低価格の中央点に基づいて構築されている.

閉盤価格が上線より高いときは,継続的な看板を表す.閉盤価格が下線より低いときは,継続的な下落を表す.

この策略は,FactorとPdの2つのパラメータを設定している. ファクターは超トレンドチャネルの幅を制御し,PdはATRの計算周期長さを制御している. この2つのパラメータに基づいて上線と下線を構築することができる.

上軌式:hl2 - (Factor * ATR ((Pd)) 下線式:hl2 + (Factor * ATR ((Pd))

価格が高く,価格が低い,価格が低い,価格が低い,価格が低い,価格が低い.

そして,現在の閉盤価格と上下線を比較して,継続的な看板か下落かを判断し,ブル型のトレンド変数を出力する.

トレンドに応じて超トレンドの上下軌道を描く. トレンドの状態が変化したときに,入場と出場信号を配置する.

シグナル設定戦略による開場論理.

優位分析

この戦略は以下の利点があります.

  1. 超トレンド指数は,価格の傾向と枢軸を明確に判断する.

  2. 明確な出入りのロジックが設定されています.

  3. 矢印で入場時刻を表示する.

  4. 戦略の論理は単純でわかりやすい.

リスク分析

この戦略には以下のリスクがあります.

  1. 盲目的に超トレンドの指標をフォローし,他の補助指標と効果管理を怠ると,大きな逆転が起こる可能性があります.

  2. 単一損失をコントロールできない.

  3. 信号が遅れて,ターニングポイントの近くで間に合わない場合もある.

  4. パラメータを正しく設定しない場合,超トレンドチャネルがあまりにも広いか狭すぎる可能性があります.

リスク管理策:

  1. MACD,KDJなどの他の指標と組み合わせて効果検証を行い,盲目フォローを避ける.

  2. 合理的なストップ・ロスを設定し,単一損失を最大限に制御する.

  3. 超トレンドチャネルを合理化して,あまりにも広いか狭いのを防ぐためにパラメータを調整する.

最適化の方向

この戦略は,以下の点で最適化できます.

  1. 効果検証のための補助指標を追加し,失効を防止する.例えば,MACD指標の追加を検討することができる.

  2. 合理的なストップロジックを設定する.ATRに基づいてパーセンテージストップを設定する.

  3. 超パラメータファクターとPdを最適化して,最適なパラメータ組み合わせを見つける.例えば,横断の方法を使用して最適なパラメータを探す.

  4. 入場時刻を最適化し,信号遅延を回避する.例えば,強弱パターンを判断する動力指標を導入して入場時刻を調整する.

  5. ポジション管理戦略を追加する.例えば,固定シェアをポジション管理に用いることができる.

要約する

この戦略は,価格の傾向を判断し,ターニングポイントを見つけ出すために超トレンド指標を使用しています.補助指標や止損手段の欠如のために,超トレンド指標を盲目的に追跡することは大きなリスクをもたらすものです.リスク管理,止損戦略,パラメータ最適化,入場タイミングなどの多くの面で改善を提案し,戦略の安定性と収益性を大幅に向上させることができます.

ストラテジーソースコード
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Supertrend blind follow", overlay=true)

Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))


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

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

linecolor = Trend == 1 ? green : red

plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "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)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")

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

longCondition = cross(close,Tsl) and close>Tsl
if (longCondition)
    strategy.entry("long", strategy.long)
shortCondition = cross(Tsl,close) and close<Tsl
if (shortCondition)
    strategy.entry("short", strategy.short)