ゴールデンクロスとデスクロスのダイナミックストップロス戦略


作成日: 2023-11-01 13:46:28 最終変更日: 2023-11-01 13:46:28
コピー: 1 クリック数: 707
1
フォロー
1617
フォロワー

ゴールデンクロスとデスクロスのダイナミックストップロス戦略

概要

この戦略は,ATR指標をストップラインとして計算し,価格がEMAを突破したときに買入シグナルを生じ,価格がEMAを突破したときに売出シグナルを生じ,ダイナミックストップを使用してリスクを管理する.

戦略原則

この戦略の核心的な論理は:

  1. ATR指標をストップラインとして計算し,ATR値はストップ距離nLossを計算する

  2. Heikin Ashi のオプションhに基づいて価格源を決定する. 標準的には,閉店価格 close を使用し,Heikin Ashi が選択された場合はそのの閉店価格を使用します.

  3. xATRTrailingStopを定義します. 動的にストップラインを追跡し,価格と前Kラインのストップラインを比較して,現在のKラインのストップラインを決定します.

  4. ポジションposを定義し,価格が止境線を上から突破するときは 1 (多) に設定し,価格が止境線を下から突破するときは -1 (空) に設定し,そうでない場合は 0 (空) に設定する.

  5. K線のEMA平均線値を計算し,指標の上穿 (買入信号) と下穿 (売出信号) を定義する.

  6. 買い/売却のシグナルが発生したときに,取引の入場と出場を設定します.

  7. barcolor関数を使用して,位置に応じてK線の色をマークする

  8. plotshapeで買ったり売ったりする際の標識信号

この戦略は,ATRの動的ストップによってリスクを管理し,トレンドが発生する時に間に合うように入場し,ストップラインが発動する時に間に合うようにストップします.

戦略的優位性

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

  1. ATRのダイナミックストップを使用すると,市場の波動程度に応じてストップ距離を調整することができ,ストップを保証しながら,価格の短期的な変動によって引き起こされる過剰なストップを避ける.

  2. EMAは,偽の突破による不必要な取引をフィルタリングするために取引信号を生成します.

  3. 価格の源としてHeikin Ashiのを選択し,トレンドを識別するためにノイズをフィルターすることができます.

  4. ポジション管理が明確で,多額の空白ポジションが明確で,ストップ損失を生む取引が頻繁に追跡されない

  5. 線,マーク,染色で取引信号とストップを直視的に表示する

  6. 戦略の論理はシンプルで明快で,理解し,変更しやすい.

  7. 異なる市場環境に対応するために,ATRサイクルとATRストップローズ倍数をカスタマイズできます.

全体として,この戦略は,トレンド追跡とダイナミックストップの技術を統合し,トレンドを効果的に識別し,リスクを管理し,中長期トレンドを追跡する取引に適用されます.

戦略リスク

この戦略にはリスクもあります.

  1. EMA平均線が取引シグナルを生成し,ショートラインのチャンスを逃す可能性

  2. ストップ距離はATRによって決定され,市場変動時に頻繁にストップされる

  3. コストを考慮しない場合,実際の取引における双方の手数料が利益に影響する

  4. 適切なポジションコントロールが設定されていないため,資金管理の改善が必要

  5. 効果はパラメータ最適化に依存し,異なる市場ではパラメータを調整する必要があります.

  6. 市場が揺れ動いていると 囚われやすい

  7. 適時監視,介入,停止策略

適切なパラメータの最適化,ポジション制御の設定,その他の指標フィルター信号などの方法と組み合わせることでリスクを軽減することができます. 实体取引では,ポジションのサイズを制御し,戦略の効果を継続的に監視し,必要に応じて人工介入または閉鎖する必要があります.

最適化の方向

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

  1. ATRのパラメータを調整し,異なる市場でのストップ距離を合理化

  2. 異なる均線指標をテストし,偽信号をさらにフィルターする

  3. トレンド判断の指標を追加し,トレンドの方向を特定し,その後入場する

  4. ポジションコントロールを設定し,一方向ポジションの数を制限します.

  5. 取引量,平均線から離れている閉盘価格などの開場条件を増加させる

  6. コストを考慮し,手数料に応じてストップダストを設定する

  7. 複数のシグナルと指標を組み合わせて,買い売りのタイミングを最適化する

  8. 部分停止または移動停止を設定

  9. パラメータ最適化機能を追加し,テストパラメータを自動的に最適化します.

複数の技術指標と最適化方法を統合して,この戦略をさらに完善し,より多くの市場でより安定した効果を得ることができます.

要約する

この戦略は,動的ストップとトレンド追跡技術を統合し,ストップが有効,追跡がスムーズ,理解しやすく最適化などの利点を持ち,中中長線トレンドパターンを追跡するのに適しています.しかし,リスク管理,最適化パラメータにも注意してください.この戦略を正しく使用すると,傾向が顕著な市場では,良い結果が得られます.全体的に,この戦略は,簡潔で実用的トレンド追跡とリスク管理の取引理念を提供します.

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

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

xATR  = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

buy  = src > xATRTrailingStop and above 
sell = src < xATRTrailingStop and below

barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

strategy.entry("long",   true, when = buy)
strategy.entry("short", false, when = sell)