ワイルダーによって1978年に作成された原始的なトレンド均衡点システムであり,その取引規則は,彼の新鮮な概念である技術分析システムにある. このシステムは,動力の指標を使用して,トレンドを識別し,特定の方法でストップを設定し,より堅牢なトレンド追跡システムを形成します.
この戦略の主要構成要素と取引規則は以下の通りです.
動量指標:N周期の閉盘価格の変化を計算し,価格トレンドを判断する.
複数条件:現在のサイクルと過去2サイクルにおける動量値の連続した上昇.
空気条件:現在のサイクルと過去2サイクルにおける動量値が連続して下降する.
ストップポイント:前日の平均価格±前日の波動範囲.
ストップポイント:前日の平均価格の2倍 - 最低価格 ((多) や2倍平均価格 - 最高価格 ((空) 〜
入場後,ストップ・ロストまたはストップ・ストップ価格で退出する.
この戦略はシンプルで直接的で,動力を利用してトレンドの方向を判断し,特定のストップ・ストップ方式でリスクを制御し,より堅牢なトレンド追跡システムを形成する.
他のトレンド追跡戦略と比べると,この戦略の主な利点は以下の通りです.
動力指数計算はシンプルで簡単に実行できます.
複数の周期組を判断し,ノイズをフィルターする.
を止める方法はより堅牢である.
損失の大きさを制限できます.
収益は明確になった.
実現の難しさは少ないし,柔軟に操作できる.
パラメータは,異なる市場に適用できます.
戦略は直感的でシンプルです.
安定性やリスク管理能力は全体的に高い.
しかし,この戦略には次のリスクもあります.
動力指標が遅れているため,重要なターニングを逃す可能性があります.
効果はパラメータの最適化程度に依存する.
取引量を考慮しない場合,
ストップダメージストラップは,任意の設定で,失敗が予想される可能性があります.
検査周期は短く,長期の安定性を検証する必要があります.
固定ポジション操作,動的に調整できない。
余剰利益の不確実性がある.
収益の引き戻し比率に注意し,過適合を防止してください.
上記の分析を踏まえると,この戦略は以下の側面から最適化できます.
動力の計算方法を試す
トランザクションの量確認に参加してください.
ストップダストストップパラメータを最適化します.
機械学習が動的信号を生成する.
多種多周期の安定性を評価する
ダイナミックなポジション管理モデルの構築.
返却の最大許容範囲を設定します.
資金管理戦略の最適化
継続的な反省と検証により,過度な最適化が防止されます.
この戦略は,全体として比較的シンプルで直接的なトレンド追跡システムである.しかし,いかなる戦略も,市場への適応性を維持するために,継続的に最適化と検証が必要である.体系的な作業によって,戦略の効果と安定性を向上させることができる.
/*backtest
start: 2023-09-15 00:00:00
end: 2023-09-22 00: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/
// © 2020 X-Trader.net
//@version=3
strategy("Trend Balance Point System by Welles Wilder", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000)
MomPer = input(2, "Momentum Period")
isLong = strategy.position_size > 0
isShort = strategy.position_size < 0
longTrigger = mom(close, MomPer)[1] > mom(close, MomPer)[2] and mom(close, MomPer)[1] > mom(close, MomPer)[3]
shortTrigger = mom(close, MomPer)[1] < mom(close, MomPer)[2] and mom(close, MomPer)[1] < mom(close, MomPer)[3]
longEntry = (not isLong) and longTrigger
shortEntry = (not isShort) and shortTrigger
longStop = valuewhen(longEntry, ((high[1]+low[1]+close[1])/3 - (high[1]-low[1])), 0)
longTP = valuewhen(longEntry, (2*(high[1]+low[1]+close[1])/3 - low[1]), 0)
shortStop = valuewhen(shortEntry, ((high[1]+low[1]+close[1])/3 + (high[1]-low[1])), 0)
shortTP = valuewhen(shortEntry, (2*(high[1]+low[1]+close[1])/3 - high[1]), 0)
strategy.entry(id = "Long", long = true, when = longEntry)
strategy.exit("Exit Long", "Long", profit = longTP, loss = longStop, when = isLong)
strategy.entry(id = "Short", long = false, when = shortEntry)
strategy.exit("Exit Short", "Short", profit = shortTP, loss = shortStop, when = isShort)