二重移動平均ストキャスティックトレンドフォロー取引戦略

EMA SMA RSK
作成日: 2024-12-13 10:48:46 最終変更日: 2024-12-13 10:48:46
コピー: 0 クリック数: 372
1
フォロー
1617
フォロワー

二重移動平均ストキャスティックトレンドフォロー取引戦略

概要

この戦略は,双均線とランダムな指標 (ストキャスティック) をベースにしたトレンド追跡取引システムである.この戦略は,均線システムを組み合わせて市場トレンドを判断し,同時にランダムな指標を使用して,オーバーバイのオーバーセール領域の交差信号を捕捉し,リスクを制御するために動的なストップ・ローズ・レベルを設定する.この方法は,取引信号の信頼性を保証するとともに,各取引のリスク/リターン比率を効果的に管理する.

戦略原則

この戦略は,以下の要素を中心に取引を行います.

  1. 50期と150期の指数移動平均 ((EMA) を使って市場のトレンド方向を判断する
  2. ランダムな指標 ((14,3,3) を使って,超買超売領域を識別する
  3. トレンドの方向でランダムな指標を探し出す交差点
  4. 最近の価格変動に基づいて設定された動的ストップポイント
  5. リスクと利益の比率を1:2で設定する

購入条件は同時に満たされている必要があります:

  • 50日平均線と150日平均線より高い閉盘価格
  • 50日平均線は150日平均線の上にある
  • ランダムな指標K値が30未満で,K線がD線を上向きに通過する

売る条件は逆です

  • 50日平均線と150日平均線を下回る
  • 50日平均線は150日平均線の下にある.
  • ランダムな指標K値は70以上で,K線はD線を下向きに通過する

戦略的優位性

  1. 複数の認証メカニズムの信頼性向上
  • 平均線システムによる大トレンド確認
  • ランダムな指標を使用して偽信号をフィルタリング
  • 信号は複数の条件を満たす必要があります
  1. 優れたリスク管理システム
  • 最近のサポートレジスタンスに基づく動的ストップ
  • 固定リスクの収益は,最適化された期待収益より大きい
  • 偽突破のリスクを減らす傾向が確認された
  1. 適応性が高い
  • 複数のタイムサイクルに適用できます.
  • パラメータは市場特性に合わせて調整できます.
  • 波動性のある市場に適しています.

戦略リスク

  1. 市場が揺れ動いた
  • 平均線を頻繁に突破すると,偽信号が発生します.
  • 傾向がはっきりしたときに使用することが推奨されます.
  • トレンドフィルターの改善
  1. ストップオフの設定リスク
  • 過剰な圧縮は,頻繁に停止する可能性があります.
  • 松山は大きな損失を被る可能性がある.
  • 市場変動に合わせて調整する必要がある
  1. 遅滞のリスク
  • 均線システムは遅れている.
  • トレンドの始まりを見逃しているかもしれません
  • 入り口の選択は慎重にしてください

戦略最適化の方向性

  1. トレンド強度フィルター
  • ADX指標が追加され,トレンドの強さを測定します.
  • 設定する 最小トレンド強度値
  • 弱いトレンドで取引を避ける
  1. ランダムな指標パラメータを最適化
  • 市場特性に合わせたパラメータ
  • 適応パラメータを使用する
  • 他の技術指標の確認を追加
  1. 止装置の改善
  • 追跡・ストップを考慮する
  • 変動率の動向による調整
  • リスクと利益の相関を最適化する設定

要約する

これは,トレンド追跡と動的取引を組み合わせた完全な戦略システムである.均線システムとランダムな指標の組み合わせによる使用により,取引方向が主動トレンドに適合することを保証するとともに,適切な価格領域で取引することができる.また,戦略は,ダイナミックな止損と固定されたリスク収益比率を使用してリスクを制御するための完善したリスク管理機構を含んでいる.いくつかの固有の制限があるが,推奨された方向の最適化によって戦略の全体的なパフォーマンスはさらに向上することができる.実際のアプリケーションでは,取引者は,特定の市場特性と自身のリスク好みに応じてパラメータを適切に調整することを推奨する.

ストラテジーソースコード
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © quadawosanya

//@version=5
//indicator("My script")
//@version=5
strategy("EMA-Stochastic Strategy", overlay=true)

// EMA settings
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)

// Stochastic settings
kLength = 14
dLength = 3
smoothK = 3
stochK = ta.sma(ta.stoch(close, high, low, kLength), smoothK)
stochD = ta.sma(stochK, dLength)

// Parameters for Stop Loss and Take Profit
var float stopLossLevel = na
var float takeProfitLevel = na

// Buy condition
buySignal = (close > ema50 and close > ema150) and (ema50 > ema150) and (stochK < 30 and ta.crossover(stochK, stochD))

// Sell condition
sellSignal = (close < ema50 and close < ema150) and (ema50 < ema150) and (stochK > 70 and ta.crossunder(stochK, stochD))

// Previous low for Stop Loss for Buy
lowBeforeBuy = ta.lowest(low, 5)

// Previous high for Stop Loss for Sell
highBeforeSell = ta.highest(high, 5)

// Entry and exit logic
if (buySignal)
    stopLossLevel := lowBeforeBuy
    risk = close - stopLossLevel
    takeProfitLevel := close + 2 * risk
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=stopLossLevel, limit=takeProfitLevel)

if (sellSignal)
    stopLossLevel := highBeforeSell
    risk = stopLossLevel - close
    takeProfitLevel := close - 2 * risk
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=stopLossLevel, limit=takeProfitLevel)

// Plotting EMAs
plot(ema50, color=color.blue, title="50 EMA")
plot(ema150, color=color.red, title="150 EMA")

// Visualize Buy and Sell signals
plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Visualize Stop Loss and Take Profit levels
plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss")
plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit")


plot(close)