強いトレンドブレイクアウト戦略


作成日: 2023-10-30 14:53:32 最終変更日: 2023-10-30 14:53:32
コピー: 0 クリック数: 605
1
フォロー
1617
フォロワー

強いトレンドブレイクアウト戦略

概要

この戦略は,一定の周期内の最高価格と最低価格を計算して,上下線を形成し,価格が上線を突破すると多めにし,価格が下線を突破すると平仓する. この戦略は,トレンドの強さの段階を捕捉し,トレンドの突破によって入場タイミングを判断する.

戦略原則

この戦略は,まず,過去20のK線の最高値と最低値を計算し,上線と下線を形成する.現在のK線の閉盘価格が上線より高いとき,多めに行い,価格が下線を突破したとき,平仓停止する.

具体的には,戦略は,最高と最低の関数を使用して,最近20のK線の最高価格と最低価格を計算して,範囲を形成します. そして,現在のK線の閉盘価格が上線より高いかどうかを判断し,もしそうなら,さらに行います.

この戦略は,トレンドブレイクによる入場タイミングを判断し,トレンドフォロー戦略の1つである.これは,空白をなくして多量的に行うのみで,明らかなトレンド特性を有する品種に適用される.

優位分析

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

  1. 戦略はシンプルでわかりやすく,実行は簡単です.

  2. トレンドブレイクを活用して入場タイミングを判断し,トレンドの強さを捉えることができます.

  3. モバイル・ストップは,単一の損失を効果的に制限するために,リスクを制御します.

  4. 傾向が顕著な品種に適用されます.

  5. カスタマイズ可能なパラメータ,周期長さ,およびストップ損失の幅.

リスク分析

この戦略には以下のリスクもあります.

  1. 予想通り,この傾向が逆転すると予想されず,追及殺戮が起こりうる.

  2. ストップポジションは,瞬間の大幅な価格上昇によって引き起こされやすい.

  3. 傾向が変化すると,複数の小ストップが発生する可能性があります.

  4. ダウントレンドの利得を得られない.

  5. パラメータの設定を間違えた場合,過度に敏感または鈍感になる可能性があります.

最適化の方向

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

  1. トレンド判断の指標を増やし,トレンドが逆転したときにまだ多くなることを避ける.例えば,MACDなどの指標をトレンド判断の方向に追加する.

  2. モバイル・ストップ戦略を最適化し,リスクコントロールを合理的に設定する.例えば,価格変動に伴うモバイル・ストップを採用する.

  3. 空頭戦略を追加し,下向きのトレンドでも空頭で利益を得ることができます.

  4. パラメータをテスト最適化し,最適なパラメータ組み合わせを見つける.

  5. 市場状況に応じてパラメータを動的に調整する自動パラメータ最適化機能を追加.

  6. 複数のタイムサイクルを組み合わせて戦略的判断を行い,単一のサイクルに誤解されないようにする.

要約する

この戦略の全体的な考え方は明確で分かりやすく,トレンドの突破を利用して入場タイミングを判断し,トレンドの強い段階を捉えることができる。同時に,移動止損を採用してリスクを制御する。しかし,この戦略には,トレンドの判断が正確でないこと,止損が突破されるなどの問題など,いくつかのリスクもあります。我々は,トレンドの判断,止損戦略,空頭戦略などの最適化方面で改善することができ,戦略をより包括的かつ安定にすることができる。

ストラテジーソースコード
/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-24 17:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Donchian Wicks Strategy - Long Only with Customizable Donchian Exit and Stop Loss", "DWS", overlay = true)

// INPUTS
iLength = input(20, "Length", minval = 1)
stopLossPercent = input(1.0, "Stop Loss Percentage", type=input.float) / 100

// SETTING
float up = na
up := close > open ? high : nz(up[1])
float down = na
down := close < open ? low : nz(down[1])

highest = highest(up, iLength)
lowest = lowest(down, iLength)

// PLOT
p1 = plot(highest, "Highest", color.black, 2)
p2 = plot(lowest, "Lowest", color.black, 2)
fill(p1, p2, color.new(color.navy, 90), title="Range")

// ENTRY SIGNALS
wickDown = low < lowest

// STRATEGY IMPLEMENTATION
strategy.entry("Buy", strategy.long, when = wickDown)
strategy.exit("Sell at Donchian High", from_entry="Buy", limit=highest)

// Customizable Stop Loss
stopLossLevel = close * (1 - stopLossPercent)
strategy.exit("Stop Loss", from_entry="Buy", stop=stopLossLevel)