動的ストップの戦略をフォローする傾向

作者: リン・ハーンチャオチャン, 日付: 2023年11月1日 13:46:28
タグ:

img

概要

この戦略は,価格がEMAを突破したときの取引信号を生成し,リスク管理のために動的ストップロスをATRとして使用します.

機能 する 方法

鍵となる論理は

  1. ストップ損失線としてATRを計算します.ATR値はストップ距離 nLossを決定します.

  2. 価格ソースはデフォルトで閉じる価格です.オプション h が有効になっている場合,Heikin Ashi close を使用します.

  3. xATRTrailingStopは前回のストップとの価格比較に基づいて動的ストップ損失ラインを追跡します

  4. ポジションposは,価格がストップ・ロスの線を超えると長引で1で,ストップ・ロスの線を超えると短引で-1で,そうでなければ0です.

  5. EMAのクロスオーバーシグナル,EMAの上のシグナルは購入シグナル,下のシグナルは販売シグナル

  6. 買/売シグナルで取引を開始し,反対のシグナルで取引を終了する

  7. 位置,マーク信号,ストップ・ロストラインに基づく色帯

この戦略は,ATRに基づく動的停止で動向を追跡し,動向を特定し,リスクを効果的に管理することができます.

利点

その利点とは

  1. ATRベースの動的ストップは市場の変動に適応する

  2. EMAフィルターはノイズからの偽信号を減らす

  3. オプション ハイキンアシ 騒音フィルターとトレンドを識別

  4. Clear long/short position avoids whipsaws from trailing stop order (CLEAR LONG/SHORT POSITION) は,この命令を削除している.

  5. 線,ラベル,色付けなどの視覚的支援

  6. シンプルで理解しやすい 変更の論理

  7. 異なる市場で調整可能なATR期間とマルチプリキューター

この戦略は,トレンドフォローとダイナミックストップを組み合わせることで,トレンドを把握し,スウィング取引のリスクをうまく管理することができます.

リスク

考慮すべきリスクは:

  1. EMAの信号は短期的な動きに遅れることがある.

  2. 不安定な市場では頻繁にストップロスのトリガーが可能です.

  3. コミッションなどの費用は考慮されません

  4. 位置サイズ制御の欠如

  5. 性能はパラメータ調節に依存する

  6. 変動市場における不確実性のリスク

  7. 監視と介入が必要です

パラメータを最適化し フィルターを追加し 位置を適切にサイズし パフォーマンスを監視し 必要に応じて介入することで リスクを軽減できます

最適化

戦略を改善する方法:

  1. 異なる市場のためのATRパラメータを調整する

  2. 他の移動平均値をフィルター信号にテストする

  3. より高い確率のためにトレンドフィルター指標を追加する

  4. 位置サイズ制限を実装する

  5. 容量,MAからの距離などのエントリー条件を追加します

  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)

もっと