この戦略は,移動平均値とスーパートレンドインジケーターを使用して市場のトレンドを決定し,追跡ストップ損失メカニズムと組み合わせて,追跡ストップ損失取引戦略を設計する.スーパートレンドインジケーターが上昇傾向を判断すると,閉じる価格が14期間の移動平均を突破した場合,ロング;スーパートレンドインジケーターがダウントレンドを判断すると,閉じる価格が14期間の移動平均を突破した場合,ショートする.ロングまたはショートした後,ストップ損失はストップ損失の位置に基づいて起動されます.
この戦略は,移動平均,超トレンド,ストップロスの追跡という3つの技術指標を使用します.
まず,14期間の指数関数移動平均と44期間の指数関数移動平均を計算する.14期間の移動平均は短期トレンドを決定するために使用され,44期間の移動平均は長期トレンドを決定するために使用されます.短期移動平均が長期移動平均を上回ると,それは上昇信号であり,その逆です.
2つ目は,現在の市場傾向を判断するためにスーパートレンド指標を計算する.スーパートレンド指標は,ポジティブな指標DI+とネガティブな指標DIから構成される.DI+がDI−より高いとき,それは上昇傾向であり,DI−がDI+より高いとき,それは下落傾向である.
最後に,移動平均信号とスーパートレンドインジケーターのトレンド判断を組み合わせて取引信号を生成します.スーパートレンドインジケーターが上昇傾向を示し,価格が14期移動平均を突破すると,ロング;スーパートレンドインジケーターが下落傾向を示し,価格が14期移動平均を突破すると,ショートします.市場に参入した後,ストップ・ロスのポイントを44期移動平均に近い位置に設定して,ストップ・ロスを追跡することを実現します.
この戦略は,3つの技術指標の優位性を組み合わせて,正確な判断と迅速なストップ損失を行うため,以下の優位性を有します.
この戦略にはいくつかのリスクもあります:
対応する解は次のとおりです.
この戦略は,次の方向でも最適化できます.
間違った信号をフィルタリングし,戦略の勝利率を改善するために他の指標を増やします.例えば,トレンドを強化するために取引量指標を組み合わせます.
ストップロスの追跡方法を最適化し,ストップロスをよりインテリジェントで柔軟にする.例えば,ATRストップロース,チェンデリア出口など.
より最適なパラメータを見つけるために機械学習方法を使用します.例えば,遺伝子アルゴリズム,ディープラーニング,その他の方法により最適なパラメータの組み合わせを見つけることができます.
高周波の騒音の干渉を避けるため より長い時間枠で戦略を実行します
この戦略は,移動平均値,スーパートレンド指標,ストップロスの追跡技術を組み合わせて,正確な判断とタイムリーなストップロスを行う.これは実用的で信頼性の高いストップロスのトレーディング戦略です.シグナル品質を改善し,ストップロスの方法を最適化することで,戦略の効果はさらに強化できます.
/*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)