
この戦略は,通常の移動平均の交差をベースに買付信号を策定しているが,より正確な取引信号を生成するためにいくつかの変更が行われている.この戦略は,急速な移動平均と遅い移動平均の交差を組み合わせてトレンドを判断し,トレンド追跡戦略に属している.
急速移動平均線が下からゆっくり移動平均線を突破すると,買入信号とみなされ,急速移動平均線が上から下からゆっくり移動平均線を突破すると,売出信号とみなされる.すなわち,金叉は多めに,死叉は空っぽに.一度多めに/空っぽにすると,過大損失を避けるために止損位置が設定される.
この戦略の鍵は,快慢平均線の選択にある。この戦略は,長さそれぞれ50と100の指数移動平均を快線と慢線として採用している。平均線パラメータを調整することで,戦略の効果を最適化することができる。
この戦略は,双均線判断トレンドの方向と組み合わせて,市場ノイズを効果的にフィルターしてトレンドを識別できます.単一の均線戦略と比較して,この戦略は,利益の確率を高めることができます.さらに,ストップ・ロスの設定は,個々の取引の損失を制限することができます.
この戦略は交差原理を用いてトレンドの転換点を判断し,トレンドの機会をタイムリーに捉える.複雑な条件ロジックを含む戦略と比較して,この戦略は容易に理解し,容易に実施できる.
この戦略には3つの大きなリスクがある:平均線パラメータが不適切であるリスク,ポジションの保持時間が不適切であるリスク,ストップ・ポジションが不適切であるリスク.
平均線パラメータの選択が不適切で,偽信号が生成する.平均線長が短すぎるとか長すぎると,市場を誤判する.特定の品種特性をマッチするように適切に調整すべきである.
ポジションを長時間または短期間保持し,利益の最大化またはリスクの制御ができない.異なる出場方法をテストして,最適なポジション保持期間を決定する必要があります.
止損位置の設定が不適切で,止損が過度に緩やかまたは過度に緊張する.適切な止損位は,品種変動率に基づいて決定されるべきである.
この戦略は以下の点で最適化できます.
より多くの平均線参数組み合わせをテストし,最適な参数を見つけます.
最近のN日間の価格変動またはATRに基づいて動的ストップポジションを決定する
MACD,KDなどの指標を組み合わせて
トレンドフィルタリングルールを加え,取引を回避する
より多くの品種に適用するか,または,品種間の戦略に改善することを検討できます.
この移動平均の交差最適化戦略は,トレンドの方向を判断する快速平均線の優位性を統合し,リスクを制御するためにストップロスを設定し,実行しやすいトレンド追跡戦略の1つである.この戦略は,パラメータ最適化,ストップロス最適化,信号フィルタリングなどの手段によって,安定性と効率性をさらに向上させることができる.この戦略は,複雑な論理を含む戦略と比較して,理解しやすく,実施のスレッジは低い.
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ashishchauhan
strategy(title="MA CO Strategy Test", overlay=true, pyramiding=0, initial_capital=100000)
fastEMALen = input(title="Fast EMA Length", type=input.integer, defval=50)
slowEMALen = input(title="Slow EMA Length", type=input.integer, defval=100)
fastEMA = ema(close, fastEMALen)
slowEMA = ema(close, slowEMALen)
enterLong = crossover(fastEMA, slowEMA)
enterShort = crossunder(fastEMA, slowEMA)
longStop = 0.0
longStop := enterShort ? close : longStop[1]
shortStop = 0.0
shortStop := enterLong ? close : shortStop[1]
plot(series=fastEMA, color=color.orange, title="Fast EMA")
plot(series=slowEMA, color=color.teal, linewidth=3, title="Slow EMA")
if enterLong
strategy.entry(id="GoLong", long=true)
if enterShort
strategy.entry(id="GoShort", long=false)
if strategy.position_size > 0
strategy.exit(id="ExLong", from_entry="GoLong", stop=longStop)
if strategy.position_size < 0
strategy.exit(id="ExShort", from_entry="GoShort", stop=shortStop)
strategy.close_all()