ダイナミック・オシレーション・ブレークアウト戦略

作者: リン・ハーンチャオチャン開催日:2023年11月16日 15:40:25
タグ:

img

概要

この戦略は,価格動きに基づいてエントリー・ストップ・ロスのポイントを決定するために動的振動チャネルブレイクアウトを採用する.この戦略はシンプルで,モメントストックに適しています.

戦略の論理

この戦略は,まず,動的振動チャネルを得るために過去20日間の最高高と最低低を計算する.その後,8日および32日指数関数移動平均を計算する.閉じる価格がチャネルの上部帯を突破し,8日EMAが32日EMAを超えると,ロングになります.価格が下部帯を突破したり,8日EMAが32日EMAを下回ると,終了します.ストップロスはチャネルの中部帯以下に設定されます.

具体的には,入国条件は次のとおりです.

  1. 閉じる価格は過去20日間の最高値で形成された ダイナミックな上部帯を突破します

  2. 8日間のEMAは32日間のEMAより高い.

出口条件は次のとおりです

  1. ストップ・ロスは,価格が中間帯を下回るときに起動します.

  2. 8日間のEMAは32日間のEMAを下回る.

戦略は,動的チャネルを用いてトレンド方向と,EMAクロスオーバーを用いて現在の上昇トレンド状態を特定します.これはリスクを制御するのに役立ちます.

利点

  • ダイナミックチャネルブレイクは 動向方向を効果的に特定し 挫折を避けます
  • 8日間のEMAと32日間のEMAのクロスオーバーフィルターは 取引が順調です
  • シンプルでわかりやすいルールです
  • 合理的なストップ損失メカニズム

リスク

  • 失敗した脱出は 損失を招くかもしれない
  • チャンネル範囲のパラメータ調節が正しくない場合,チャンネル範囲が幅も狭すぎます.
  • 不適切な EMA 期間が業績に影響を与える可能性があります.
  • ストップ・ロスは太りすぎると,過剰なストップが起こる可能性があります.

リスクはチャネル期間,EMA期間,ストップ・ロスのポジショニングを最適化することで管理できる.

改善 の 分野

  • 異なる株のチャネル期間を最適化する.
  • 適正な周期を見つけるために EMAの異なる組み合わせをテストします
  • ボリュームを組み込み 突破を確認する
  • 入り口後 追跡停止

概要

動的振動ブレイクアウト戦略は,チャネルブレイクアウトとEMAクロスオーバーに基づいてトレンドとエントリーを識別するための明確な論理を持っています.ストップロスはリスクを制御するのに役立ちます.チャネル期間とEMA期間などのパラメータチューニングは利益因子を改善することができます.この戦略は,特に以前の高値を突破する継続パターンを持つ株式にうまく機能します.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Robrecht99

//@version=5
strategy("My Strategy", overlay=true, margin_long=100, margin_short=100)

fast = ta.sma(close, 8)
slow = ta.sma(close, 32)

plot(fast, color=color.red)
plot(slow, color=color.navy)

entrycondition1 = ta.crossover(fast, slow)
entrycondition2 = fast > slow
sellcondition1 = ta.crossunder(fast, slow)
sellcondition2 = slow > fast

atr = ta.atr(14)

//Donchian Channels
days = 20
h1 = ta.highest(high[1], days)
l1 = ta.lowest(low[1], days)
mid = math.avg(h1, l1)
plot(mid, "channel", color=#FF6D00)
u = plot(h1, "Upper", color=#2962FF)
l = plot(l1, "Lower", color=#2962FF)
fill(u, l, color.new(color.blue, 90))

if (close > h1 and entrycondition2)
    strategy.entry("long", strategy.long)
    stoploss = close - atr * 3
    trail = close - atr * 3
    strategy.exit("exit", "long", stop=stoploss, trail_offset=trail)
if (sellcondition1 and sellcondition2)
    strategy.close(id="long")


もっと