ダブルボックス トレンドフォローシステム

作者: リン・ハーンチャオチャン, 日付: 2023年11月2日 17:19:22
タグ:

概要

トレンドフォローシステム (Trend Following System) は,ダブルボックスシステムに基づいたトレンド追跡戦略である.長期のボックスを用いて全体的なトレンド方向を決定し,短期のボックスのトリガー時に主要なトレンドに準拠するシグナルをとる.この戦略はリスクを管理しながらトレンドをフォローする.

戦略の論理

戦略は,トレンドを決定するために2つのボックスを使用します.長期ボックスでは,主要なトレンド方向を判断するためにより長い期間を使用し,短期ボックスでは,より短い期間を使用して取引信号を生成します.

まず,戦略は,主要なトレンド方向を決定するために,長期ボックスで最も高い価格と最も低い価格を計算します.トレンド方向は以下のようなものかもしれません.

  • 最高値が前回のバーの最高値を超えると,上向き値として定義され,1の値が割り当てられます.
  • 最低値が前回のバーの最低値を下回る場合は,ダウントレンドとして定義され,1の値が割り当てられます.
  • そうでなければ,元のトレンド方向を維持する

主な傾向が決まった後,戦略は短期的なボックス信号に基づいてポジションを取ります.

  • 主なトレンドが上昇し,短期ボックスの最低価格が前回のボックスの最低価格に等しく,現在の短期ボックスの最低価格よりも低いとき,ロングします.
  • 主なトレンドが下がり,短期ボックスの最高価格が前回のバーの最高価格に等しく,現在の短期ボックスの最高価格よりも高くなった場合,ショートします.

さらに,ストップ・ロストとテイク・プロフィートが設定されています.

  • ロングストップ損失は,長期ボックスの最低価格であり,ショートストップ損失は,長期ボックスの最高価格です.
  • 短期ボックスの最も高い価格で,短期ボックスの最も低い価格です.

主なトレンドが逆転すると,すべてのポジションを閉じる.

利点分析

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

  1. ダブルボックスシステムは,トレンド方向性を効果的に識別し,不正な取引を減らす
  2. 主要なトレンドに一致する反転信号のみを取ると 短期的な市場の騒音に惑わされない
  3. 長期と短期間の組み合わせは,ポジション調整の柔軟性を維持しながら,主要なトレンドを把握することを保証します
  4. 合理的なストップ・ロストと得益ポイント 傾向を追跡しながらリスクをコントロールする
  5. 主なトレンドが逆転すると,すべてのポジションを迅速に平らにすることで損失を最小限に抑える.

リスク分析

この戦略のリスクは以下のとおりです.

  1. 不適切な長期および短期設定は,過剰取引または機会を逃す可能性があります.
  2. 短期的な逆転は長期的傾向の変化を反映しない可能性があり,損失リスクも伴います
  3. ストップ・ロスは近すぎると 早期に停止する可能性があります
  4. 利潤を過剰に取ると 利潤を最大化しないかもしれません
  5. 主要な傾向の誤った判断は損失につながります
  6. 解決策には,調整期間,停止/目標の最適化,フィルターの追加などが含まれます.

オプティマイゼーションの方向性

戦略は以下によって改善できます.

  1. 偽のブレイクを避けるためにフィルターを追加する
  2. 異なる製品に対する長期間と短期間を最適化
  3. ストップ・ロスのレベルを動的に調整し,利益を引き出す
  4. ポジションサイズに関する規則を組み込むこと
  5. トレンド変化の信頼性を判断するためにボリュームなどを使用する
  6. マシン学習を使用してパラメータとフィルターを自動最適化

概要

トレンドフォローシステム (Trend Following System) は,トレンド決定と短期調整を組み合わせた実践的なトレンドトレーディング戦略である.継続的な最適化により,リスクを制御しながらトレンドを追跡する強力な自動化されたシステムになることができる.トレンドトレーディングの核心哲学を含み,深く研究する価値がある.

[/トランス]


/*backtest
start: 2023-10-25 00:00:00
end: 2023-10-26 07:00:00
period: 5m
basePeriod: 1m
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/
// © LonesomeTheBlue

//@version=4
strategy("Grab Trading System", overlay = true)
flb = input(defval = 80, title = "Longterm Period", minval = 1)
slb = input(defval = 21, title = "Shortterm Period", minval = 1)
showtarget = input(defval = true, title = "Show Target")
showtrend = input(defval = true, title = "Show Trend")

major_resistance = highest(flb)
major_support = lowest(flb)
minor_resistance = highest(slb)
minor_support = lowest(slb)

var int trend = 0
trend := high > major_resistance[1] ? 1 : low < major_support[1] ? -1 : trend
strategy.entry("Buy", true, when = trend == 1 and low[1] == minor_support[1] and low > minor_support)
strategy.entry("Sell", false, when = trend == -1 and high[1] == minor_resistance[1] and high < minor_resistance)

if strategy.position_size > 0
    strategy.exit("Buy", stop = major_support, comment = "Stop Buy")
    if high[1] == minor_resistance[1] and high < minor_resistance
        strategy.close("Buy", comment ="Close Buy")
    
if strategy.position_size < 0
    strategy.exit("Sell", stop = major_resistance, comment = "Stop Sell")
    if low[1] == minor_support[1] and low > minor_support
        strategy.close("Sell", comment ="Close Sell")

if strategy.position_size != 0 and change(trend)
    strategy.close_all()
    
majr = plot(major_resistance, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na)
majs = plot(major_support, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na)
minr = plot(minor_resistance, color = showtarget and trend == 1 and strategy.position_size > 0 ? color.yellow : na, style = plot.style_circles)
mins = plot(minor_support, color = showtarget and trend == -1 and strategy.position_size < 0 ? color.yellow : na, style = plot.style_circles)

fill(majs, mins, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na, transp = 85)
fill(majr, minr, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na, transp = 85)


もっと