移動平均クロスオーバー戦略


作成日: 2023-09-28 15:15:54 最終変更日: 2023-09-28 15:15:54
コピー: 0 クリック数: 631
1
フォロー
1617
フォロワー

概要

この戦略は,潜在的な買入と売却の機会を検出するために,移動平均の金叉死叉を使用してトレンドを判断します.それは,高速移動平均と遅い移動平均の両方を同時に使用して,それらの交差状況に応じて取引信号を生成します.

戦略原則

この戦略は,2つの異なる期間を持つ移動平均を使用している.最初の移動平均は,短期的な価格の傾向を捉えるために20日間設定され,短期間であり,第二の移動平均は,長期的な価格の傾向を測定するために120日間設定され,長い期間である.

急速移動平均線が下からゆっくり移動平均線を横切るときは,金叉信号とみなされ,短期トレンドを上向きに表示し,買えます. 急速移動平均線が上から下からゆっくり移動平均線を横切るときは,死叉信号とみなされ,短期トレンドを下向きに表示し,売ることができます.

この戦略は,ta.crossoverとta.crossunderを使用して,移動平均の交差を判断し,交差が発生すると,対応する買入または売却のシグナルを誘発します.

優位分析

この戦略の最大の優点は,使いやすさである.移動平均は,最もよく使用される技術分析ツールの一つであり,その戦略の原理は,容易に理解され,非専門家でもすぐに習得することができます.同時に,移動平均は,市場騒音を効果的にフィルターし,トレンドの方向を識別することができます.

移動平均は,他の複雑な指標と比較して,戦略を構築する難しさが低い.それは,移動平均の周期パラメータを最適化するだけで,安定した戦略システムを構築することができます.

さらに,移動平均戦略は柔軟性があります. 異なる取引品種や時間周期に応じて異なるパラメータを設定することができ,長期から短期まで使用できます.

リスク分析

この戦略の最大のリスクは,誤ったシグナルが頻繁に発生することにある.市場の傾向が繰り返し変化するときに,急速な移動平均と遅い移動平均が互いに交差し,大量に不必要な取引シグナルを生じさせる.このとき,移動平均周期を適切に調整し,いくつかのノイズをフィルターする必要があります.

もう一つの潜在的なリスクは,移動平均が遅滞性を持つことにある.新しいトレンドが生じるとき,移動平均が反映されるまでに一定の時間がかかるため,この時間差は一定の滑点損失を引き起こす可能性がある.

さらに,この戦略は,重大利益/利空ニュースのような突発的な出来事の影響を考慮していません. このようなイベントは,移動平均の有効性を破壊し,リスクを制御するためにストップを設定する必要があります.

最適化の方向

この戦略をさらに改善するには,次のことを行う必要があります.

  1. 取引量などのフィルタリング条件を追加し,波動的な状況で誤った信号を回避する.

  2. 適応移動平均を採用し,移動平均の周期が波動率に応じて動的に調整され,市場の変化により迅速に適応させる.

  3. MACD,Stochasticなどの他の指標と組み合わせて,より多くの要因を使用して移動平均の信号を確認します.

  4. 価格チャネルを確立し,チャネルを突破する時にのみ取引信号を考慮し,不必要な重複取引を避ける.

  5. 戦略の安定性を高めるため,止損停止条件を設定します.

要約する

総括すると,移動平均線横断戦略は,高速と遅い移動平均線の交差を利用して取引信号を形成する.それは簡単で,トレンドの方向を識別できますが,誤信号と遅れの問題を発生させるリスクもあります.パラメータを最適化して設定し,フィルタリング条件を追加し,他の指標と組み合わせることで,この戦略の実用性を大幅に向上させることができます.全体的に,移動平均線戦略は,非常に実用的なトレンドフォロー戦略であり,トレーダーの重点研究と適用に値します.

ストラテジーソースコード
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 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/
// © brandlabng

//@version=5
//study(title="Holly Grail FX", overlay = true)
strategy('HG|E30m', overlay=true)
src = input(close, title='Source')

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(20, title='1st MA Length')
type1 = input.string('EMA', '1st MA Type', options=['EMA'])

ma2 = input(120, title='2nd MA Length')
type2 = input.string('EMA', '2nd MA Type', options=['EMA'])

price1 = if type1 == 'EMA'
    ta.ema(price, ma1)

price2 = if type2 == 'EMA'
    ta.ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=plot.style_line, title='1st MA', color=color.new(#219ff3, 0), linewidth=2)
plot(series=price2, style=plot.style_line, title='2nd MA', color=color.new(color.purple, 0), linewidth=2)


longCondition = ta.crossover(price1, price2)
if longCondition
    strategy.entry('Long', strategy.long)

shortCondition = ta.crossunder(price1, price2)
if shortCondition
    strategy.entry('Short', strategy.short)