動向平均の二重トレンド追跡戦略

作者: リン・ハーンチャオチャン開催日:2023年12月19日 14:49:52
タグ:

img

概要

ダブル・ムービング・アベア・トレンド・トラッキング・ストラテジー (Dual Moving Average Trend Tracking Strategy) は,市場のトレンド方向を決定するために,異なる期間の2つの移動平均を使用する定量的な取引戦略である.トレンドを特定し,トレンド方向に沿って取引を行うために,高速および遅い移動平均の長/短の状態を使用する.

原則

この戦略は,高速移動平均 (例えば10期) と遅い移動平均 (例えば30期) を含む2つの移動平均を使用する.両方の移動平均が上向きである場合,上昇傾向を示します.両方の移動平均が下向きである場合,下向きを示します.

具体的には,戦略はまず高速移動平均と遅い移動平均を計算します.その後,現在の高速移動平均を前期と比較して,現在の平均が前期よりも大きいかどうかを確認します.もしそうであれば,上昇傾向を示す値1を割り当てます.そうでなければ,ダウン傾向のために -1を割り当てます.遅い移動平均も同じことをしてください.

最後に,2つの移動平均値の値でトレンドを決定する.両値が1である場合,最終決定は1であり,上昇傾向を示す.両値が-1である場合,最終決定は-1であり,下落傾向を示す.値が異なる場合,以前のトレンド決定を維持する.

トレンド方向が特定されると,戦略は上昇傾向でロング,下落傾向でショートになります.

利点

この戦略には以下の側面があります.

  1. 論理はシンプルで 分かりやすく 実行できます
  2. 二重移動平均は市場の騒音をフィルターし,傾向を特定するのに役立ちます.
  3. 移動平均のパラメータは,異なる製品と時間枠に調整できます.
  4. ストップ・ロスを設定したり 利益を取ったりする必要はありません 取引頻度が低下し 傾向を追うのに役立ちます
  5. 柔軟に長引くか短引くか

リスク

この戦略にはいくつかのリスクもあります.

  1. 変動平均値は急激な価格変動に遅れがみられ,ベストエントリータイミングが欠けている可能性があります.
  2. 偽のブレイクアウトや不正なクロスオーバーが起こり,間違った取引信号が生じる可能性があります.
  3. ストップ・ロスは設定されず,単一の取引損失を効果的に制限することはできません.
  4. デフォルトの完全な位置は より大きなリスクをもたらし 慎重に操作する必要があります

リスクを減らすために,移動平均のパラメータをより合理的に設定し,他の指標を導入し,ストップ損失と収益を設定し,ポジションサイズをそれに応じて調整することができます.

最適化

この戦略は,次の側面においてさらに最適化することができる.

  1. より多くのチャートツールを使用するためにSMAとEMAのような移動平均の種類を追加します.
  2. MACDやBOLLなどの他の補助指標を導入して正確性を向上させる.
  3. 傾向線とサポート/レジスタンスの分析を追加し,より正確な取引信号を得る.
  4. ストップ・ロスを設定し,単一の取引損失を制御するために利益を取ります.
  5. 資金利用,利益率などに基づいてポジションのサイズを最適化します

結論

ダブル・ムービング・平均トレンド・トラッキング戦略は,ノイズをフィルターし,トレンドを特定し,トレンド方向に沿って取引するためにダブル・ムービング・平均を使用するという明確な論理を持っています.これはトレンドをフォローする典型的な戦略です.トレーダーは好みに基づいてのみロングまたはショートを選択できます.戦略にはまだいくつかのリスクがあります.リスクを管理するために追加の指標,ストップ・ロスト/テイク・プロフィートを追加する必要があります.そうすることで,長期的な安定した利益を達成することができます.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 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/
// © noro
// 2020

//@version=4
strategy(title = "Noro's TrendMA Strategy", shorttitle = "TrendMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)

//Settings
needlong = input(true, title = "Long")
needshort = input(true, title = "Short")
fast = input(10, minval = 1, title = "MA Fast (red)")
slow = input(30, minval = 2, title = "MA Slow (blue)")
type = input(defval = "SMA", options = ["SMA", "EMA"], title = "MA Type")
src = input(ohlc4, title = "MA Source")
showma = input(true, title = "Show MAs")
showbg = input(false, title = "Show Background")

//MAs
fastma = type == "EMA" ? ema(src, fast) : sma(src, fast)
slowma = type == "EMA" ? ema(src, slow) : sma(src, slow)

//Lines
colorfast = showma ? color.red : na
colorslow = showma ? color.blue : na
plot(fastma, color = colorfast, title = "MA Fast")
plot(slowma, color = colorslow, title = "MA Slow")

//Trend
trend1 = fastma > fastma[1] ? 1 : -1
trend2 = slowma > slowma[1] ? 1 : -1
trend = 0
trend := trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : trend[1]

//Backgrouns
colbg = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na
bgcolor(colbg, transp = 80)

//Trading
if trend == 1
    if needlong
        strategy.entry("Long", strategy.long)
    if needlong == false
        strategy.close_all()

if trend == -1
    if needshort
        strategy.entry("Short", strategy.short)
    if needshort == false
        strategy.close_all()
    

もっと