超トレンド追跡戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-23 15:36:27
タグ:

img

概要

この戦略は"スーパートレンドトラッキング戦略"と呼ばれる.これは,スーパートレンド指標に基づいて,ロングとショートの両方の自動取引システムを開発し,トレンド方向を自動的に特定し,RSIとADX指標と組み合わせてエントリーとアウトートをすることができます.

原則

この戦略の核心は,現在の価格傾向を決定するためにスーパートレンド指標を使用している.スーパートレンドは,移動平均値とATRを組み合わせ,価格傾向の方向性を判断するのに有効である.スーパートレンドの方向性が逆転すると,価格傾向が変化していることを示す.

この戦略は,まずスーパートレンドの方向,RSI,ADXを計算します.スーパートレンドがダウンし,RSIが上昇傾向が消えていることを示したとき,ショートエントリします.スーパートレンドが再び現れるとき,ショートポジションを閉じる.

利点

この戦略の最大の利点は,手動判断なしで,価格動向を自動的に特定し,動向に基づいてエントリーと出口を行うことができるということです.さらに,RSIとADXをフィルターとして使用することで,誤ったブレイクを効果的に回避し,収益性を向上させることができます.

リスク

最大のリスクは,スーパートレンド自体は価格動向を判断する上で非常に正確ではないため,誤った信号を生む可能性があります.また,ストップロスは設定されていません.したがって,取引ごとに損失は大きくなります.

リスクを減らすために,スーパートレンドパラメータを調整し,ストップ損失を後押しすることで最適化することができます.

最適化

この戦略のいくつかの側面を最適化することができる:

  1. 精度を向上させるため,Supertrendパラメータを最適化

  2. トレーリングストップ損失をトレード損失毎のコントロールに追加する

  3. 収益性を向上させるため,ボリンガーバンド,KDJなどのフィルターを追加します.

  4. 戦略を完了させるための類似の長引入と退出規則を開発

結論

結論として,これはスーパートレンドに基づいてトレンドを判断する自動化されたトレード戦略である.利点は高度な自動化と自動トレンド検出である.欠点はスーパートレンドそのものの低精度であり,ストップ損失がない.パラメータチューニング,フィルターを追加し,ストップ損失は収益性とリスク管理を向上させることができる.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true)

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truerange = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
    minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
    adx

sig = adx(dilen, adxlen)

if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
    strategy.entry("My Long Entry Id", strategy.long)

if ta.change(direction) > 0
    strategy.close("My Long Entry Id")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


もっと