ストキャスティックモメンタムブレイクアウト戦略


作成日: 2023-10-24 16:35:24 最終変更日: 2023-10-24 16:35:24
コピー: 0 クリック数: 816
1
フォロー
1617
フォロワー

ストキャスティックモメンタムブレイクアウト戦略

概要

動力の突破戦略は,主にストキャスティックオシレータ指標を使用して市場の傾向の方向を判断し,ADX指標と組み合わせてトレンドの強さを判断し,取引シグナルを形成する.この戦略は,主に中長線のトレンド取引に適用される.

戦略原則

この戦略は主に2つの技術指標に基づいています.

  1. ストキャスティック・オシレータ指数:市場のトレンド方向を判断するために使用される.ストキャスティック・オシレータの値は0から100で,周期は14で,値は45から55の範囲で,明確なトレンドがないことを意味します.ストキャスティックは55以上は看板信号で,45以下は下落信号です.

  2. ADX指標:トレンドの強さを判断する.ADXは20以下でトレンドが弱いことを示す.

戦略はまず,ストキャスティック・オシレータの値に基づいて,市場が現在明確な上下トレンドがあるかどうかを判断する.ストキャスティックが55以上であるときは,看板トレンドがあると考える.ストキャスティックが45以下であるときは,看板トレンドがあると考える.

戦略は,ADXが20以上であるか否かを検出し,ADXが20以上であれば,トレンドが強いことを示し,トレンド取引を行うことができます.ADXが20以下であれば,トレンドが十分に目立たないことを示し,戦略は取引信号を生じしません.

ストキャスティック・オシレータとADXを組み合わせた判断では,次の2つの条件が同時に満たされている場合,戦略は買い/売りシグナルを生成します.

  1. ストキャスティックは55以上で,看板の傾向を示している.
  2. ADXは20以上で,強気な看板傾向を示している.

策略は,以下の2つの条件が同時に満たされている場合,セールシグナルを生成します.

  1. ストキャスティックは45以下で,下落傾向を示している.
  2. ADXは20以上で,強烈な下落傾向を示している.

このような判断ルールによって,この戦略はトレンド主導の中長線取引戦略を形成する.

戦略的優位性

この戦略の利点は以下の通りです.

  1. 中長線トレンドを捉える:ストキャスティックとADXを組み合わせて,市場の中長線トレンドの方向と強さを効果的に判断し,主要トレンドを把握する.

  2. 逆転制御:トレンドが明らかであるときにのみ取引し,無意味な逆転取引による逆転を効果的に制御することができる.

  3. パラメータ最適化空間:ストキャスティック周期とADX周期は最適化され,異なる市場向けにパラメータを調整することができる.

  4. シンプルで直感的な:この戦略の全体的な論理はシンプルで明確で,常用技術指標の2つで構成され,直感的に理解しやすい.

  5. universality:The strategy can be applied to different markets with parameter tuning.

戦略リスク

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

  1. 突破点を逃す:ストキャスティックとADXはトレンドフォロー型の指標であり,潜在的なトレンド転換点を逃し,早期の突破取引機会を逃す可能性があります.

  2. トレンドの逆転リスク: トレンドの終わりに,ストキャスティックとADXは,トレンドが継続していると誤って判断し,間に合った退出の機会を逃し,損失を拡大する可能性があります.

  3. 参数最適化の難しさ:StochasticとADXの参数には,異なる市場向けに最適化する必要があるため,一定の難しさがある.

  4. whipsaws: この戦略は,明確なトレンドがない市場では,無効な取引信号を何度も生み出す可能性があります.

  5. Divergence:When the price trend conflicts with the Stochastic oscillator trend, divergence emerges, which may lead to losing trades.

リスクは以下の方法で軽減できます.

  1. 他の指標と組み合わせて局所的なトレンドを判断し,潜在的突破点を見つけます.

  2. トレンド反転の信号を追加し,トレンドが明らかに反転したときに,タイムアウトする.

  3. 機械学習などの方法によってパラメータを自動的に最適化します.

  4. Increase the ADX threshold to filter out weak trend signals in ranging markets.

  5. Apply additional indicators to confirm the Stochastic signals and avoid divergence trades.

戦略最適化の方向性

この戦略は以下の点で最適化できます.

  1. ストキャスティックパラメータの最適化:K周期,D周期などのパラメータを調整し,買賣点の位置を最適化する.

  2. ADXパラメータの最適化: ADX周期を調整し,トレンドの強さや弱さを決定するパラメータを最適に決定する.

  3. トレンド反転シグナルの増幅:ストキャスティックの超買超売り領域でポジションを拡大し,ストップ・ロスを設定する.

  4. 他の指標と組み合わせる: RSI,MACDなどの指標と組み合わせて,購入や売却のタイミングを決定する.

  5. 機械学習: 最適なパラメータの組み合わせを機械学習で得ること.

  6. ストップを増やす戦略:移動ストップを設定するか,ストップストップに切り替える戦略を設定し,単一損失を制御する.

  7. Trailong stop loss: Add trailing stop loss to lock in profits as the trend extends.

  8. Money management: Optimize the risk management by adjusting position sizing based on ADX strength.

要約する

概要として,この動量突破戦略は全体的にトレンド主導で,ストキャスティックを使用してトレンドの方向を判断し,ADXでトレンドの強さを判断し,中長期線取引戦略を形成する.戦略の優点は,トレンドを捕捉し,逆転を制御し,単純に直観する,欠点は,早期の突破点を逃す可能性があり,トレンド逆転のリスクがある.パラメータを調整し,信号,止損などの方法を追加することで,この戦略を最適化することができ,リスクを制御しながら,より良い収益とリターンを得ることができる.

ストラテジーソースコード
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Created by Bitcoinduke
//Original Creator is Jake Bernstein 
// Link: https://school.stockcharts.com/doku.php?id=trading_strategies:stochastic_pop_drop
// Tested: XBTUSD 3h | BTCPERP FTX 3h
//@version=4
// strategy(shorttitle="Stochastic Pop and Drop", title="Pop and Drop", overlay=false, 
//      calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
//      default_qty_value=1000, currency=currency.USD, initial_capital=1000,
//      commission_type=strategy.commission.percent, commission_value=0.075)

upper_threshold_buy = input(55, minval=50, title="Buy Entry/Exit Line")
lower_threshold_sell = input(45, maxval=50, title="Sell Entry/Exit Line")

oscillator_length = input(14, minval=1, title="Stochastic Length - Default 14")
sma_length = input(2, minval=1, title="SMA Length - 3-day (3 by default) simple moving average of stoch")

stoch_oscillator = sma(stoch(close, high, low, oscillator_length), sma_length)

//Upper and Lower Entry Lines
upper_line = upper_threshold_buy
lower_line = lower_threshold_sell

stoch_color = stoch_oscillator >= upper_line ? green : stoch_oscillator <= lower_line ? red : purple

//Charts
plot(stoch_oscillator, title="Stochastic", style=histogram, linewidth=4, color=stoch_color)
upper_threshold = plot(upper_line, title="Upper Line", style=line, linewidth=4, color=green)
lower_threshold = plot(lower_line, title="Lower Line", style=line, linewidth=4, color=red)

// Strategy Logic
LongSignal = stoch_oscillator >= upper_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false
ShortSignal = stoch_oscillator <= lower_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false

strategy.entry("POP_Short", strategy.short, when=ShortSignal)
strategy.entry("POP_Long", strategy.long, when=LongSignal)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(5, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END