移動平均と超越に基づくトレーリングストップロス戦略


作成日: 2024-01-17 11:46:01 最終変更日: 2024-01-17 11:46:01
コピー: 0 クリック数: 552
1
フォロー
1617
フォロワー

移動平均と超越に基づくトレーリングストップロス戦略

概要

この戦略は,平均線と超越指数を使用して市場動向を判断し,ストップを追跡するメカニズムと組み合わせて,ストップを追跡する取引戦略を設計します. 超越指数が上昇傾向であると判断された場合,収束価格に14サイクル平均線を突破した場合,多めにします.

戦略原則

この戦略は,平均線,超越指数,およびストップロスを追跡する3つの技術指標を使用しています.

まず,14周期と44周期の指数移動平均線を計算する.14周期の平均線は短期的な傾向を判断するために用いられ,44周期の平均線は長期的な傾向を判断するために用いられる.短期的な平均線を長期的平均線に切るときは多見信号として,逆に空見である.

次に,超越指数を計算して,現在の市場トレンドを判断する.超越指数は正向指数DI+と逆向指数DI−で構成されている.DI+がDI−より高いときは,看板傾向;DI−がDI+より高いときは,看板傾向である.

最後に,均線信号と超えた指標のトレンド判断を組み合わせて,取引信号を生成する.超えた指標が看板で,価格が14周期平均線を上越したときに,多めにする.超えた指標が看板で,価格が14周期平均線を下越したときに,空っぽにする.入場後,ストップロスを44周期平均線の近くに設定して,追跡ストップを実現する.

優位分析

この戦略は,3つの技術指標の優位性を総合的に利用し,正確な判断と時効性のある止損の判断を可能にし,以下の利点があります.

  1. 平均線は短期的・長期的傾向を判断し,信号を正確に識別する.
  2. 指標を超えて主要なトレンドの方向を判断し,誤った信号を減らす.
  3. ストップ・ロスを追跡し,単一のストップ・ロスを減らし,全体的にストップ・ロスの効果を上げます.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 破綻のリスク 価格が平均線を突破した後に再び回調が起こり,最適な入場点を逃してしまう
  2. ストップ・ロスは,リスクが引き起こす.ストップ・ロスを追跡することは,完全に損失を回避することはできず,単一の損失を一定範囲に制限するだけです.
  3. パラメータ最適化のリスク.平均線周期,指標パラメータを超えたなどの設定が不適切で,信号品質に影響する.

対応方法:

  1. 他の指標と組み合わせたフィルタリング信号により,突破の成功率が向上する.
  2. トラッキングストップパラメータを最適化し,ストップポイントを合理的な位置に設定します.
  3. パラメータをテスト最適化し,最適のパラメータ組み合わせを選択する.

最適化の方向

この戦略は,以下の方向から最適化できます.

  1. 他の指標の判断を追加し,誤った信号をフィルターし,戦略の勝利率を上げます.例えば,取引量指標と組み合わせて,トレンドを強化します.

  2. ストップ追跡の最適化により,ストップがよりスマートで柔軟にできます.例えば,ATRによるストップ,Chandelier Exitなどです.

  3. 遺伝的アルゴリズム,深層学習など,最適のパラメータの組み合わせを見つける.

  4. 高周波ノイズによる干渉を避けるため,より高い時間枠で戦略を実行します.

要約する

この戦略は,平均線,指数を超え,ストップ・ロスを追跡する技術を総合的に使用し,信号の正確さとストップ・ロスのタイミングを判断し,実用的で信頼性の高いストップ・ロスを追跡する取引戦略です.その後,信号の質を向上させ,ストップ・ロスの方法を最適化することによって,戦略の効果をさらに強化することができます.

ストラテジーソースコード
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

atrPeriod = input(3, "ATR Length")
factor = input.float(1, "Factor", step = 0.01)

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

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)

len = input.int(14, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.ema(src, len)

len44 = input.int(44, minval=1, title="Length")
out44 = ta.ema(src, len44)

isRising = ta.rising(out, 1)
isFalling = ta.falling(out, 1)

plotColor = color.black
if isRising
    plotColor := color.green
else if isFalling
    plotColor := color.red
    

plot(out, color=plotColor, title="MA", offset=offset)
plot(out44, color=color.blue, title="MA", offset=offset)

if direction < 0
    if close >= out
        //if low >= out44
        if isRising
            strategy.entry("Buy Now", strategy.long)

if direction > 0
    if close <= out
        //if high <= out44
        if isFalling
            strategy.entry("Sell Now", strategy.short)


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