移動平均偏差に基づくトレンドブレイク戦略

作者: リン・ハーンチャオチャン,日付: 2023年10月23日 15:38:37
タグ:

img

概要

この戦略は,スムーズ移動平均値から価格の偏差を計算することで,市場のトレンドと逆転機会を特定する.これは,スムーズ移動平均値のブレイクに基づいて取引するトレンドフォロー戦略に属します. 基本的なアイデアは,価格がスムーズ移動平均線を突破すると購入または販売することです.

戦略の論理

  1. 価格の3期間の重度の移動平均値を FPrice の平滑MA線として計算する.

  2. FPrice の 17 日標準偏差 stdev と 17 日単純な移動平均 ema2 を計算する.

  3. 平均値から値の偏差率1を (FPrice-ema2)/stdevとして計算する.

  4. Rate1が -1を下回って上昇すると ダウントレンドラインを下回るブレイクが示され 買い信号が発信されます

  5. Rate1が1を超えて下がり始めると 上向きトレンドラインを突破し 売り信号を生成します

  6. シグナルに応じて ポジションを開くか閉じるか

この戦略は,MAからの価格偏差の標準偏差範囲を使用して,トレンド逆転を特定する.基準範囲を動的に調整することで,市場の変動に適応する.価格がMAから1つ以上の標準偏差で突破すると,取引信号を誘発する.これは短期市場のノイズを効果的にフィルタリングし,中期から長期間のトレンドシフトをキャッチする.

利点分析

  1. 動的基準範囲は,市場の変動に自動的に適応する.

  2. 滑らかなMAは 短期間のノイズを効果的にフィルターします

  3. 標準偏差は,合理的なブレイクアウトの限界値を設定し,過剰取引を避ける.

  4. モメントフィルターは 偽の突破を防ぎます

  5. 戦略の論理は シンプルで明快で 分かりやすく実行できます

  6. このパラメータは,異なる取引手段に合わせて調整できます.

  7. 他の指標と組み合わせることで 業績を向上させることができます

リスク分析

  1. 長期にわたる低変動期間に取引機会が少なくなる可能性があります.

  2. 不適切な標準偏差パラメータは,良い取引を逃すか,過剰な誤った信号を生む可能性があります.

  3. 標準偏差は極端な価格変動で失敗し,間違った信号を引き起こす可能性があります

  4. トレンド移行の際に 偽のブレイクが多く発生する可能性があります

  5. 短期的なシフトを検出する際の遅延がある.短期的な機会が逃れることもあります.

  6. パラメーターやフィルターは 特定の市場環境に適して調整する必要があります

改善の方向性

  1. 計器の特徴に基づいて MA 日とタイプを最適化する.

  2. 標準偏差倍数を調整して最適な基準範囲を 求めます

  3. 誤った信号を減らすために 価格動向フィルターを追加します

  4. 変動指標を組み込み,変動によってパラメータを動的に調整する.

  5. 他の類似のブレークアウト戦略と組み合わせて 勝利率を上げる

  6. リスク管理のため,トレンドターニングポイントの周りに ポジションサイズを減らすことを検討する.

  7. ストップロスを追加して単一の取引損失を制御します.

結論

この戦略は,トレンド逆転を特定するための明確な論理を持っています.パラメータ調節と組み合わせにより,異なる市場に適応できます. しかし,リスク管理は,高変動期間の誤った信号を避けるために重要です.適切に最適化された場合,それはシンプルで実践的なトレンドフォローシステムです.


/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 4h
basePeriod: 15m
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/
// © Mustafaozver

//@version=4
strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)
//strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)

src = input(ohlc4,"Source")
FPrice = wma(src,3)
len = input(17,"Length")

stdev = stdev(FPrice,len)
ema2 = ema(FPrice,len)

Rate1 = (FPrice - ema2) / stdev
//bgcolor(color=((stdev/ema)>0.0015)?color.green:#00000000,transp=80)

colorG = color.lime
colorR = color.red

hline(0,linestyle=hline.style_solid,editable=false)
hline1=hline(1,linestyle=hline.style_dotted,editable=false)
hlinen1=hline(-1,linestyle=hline.style_dotted,editable=false)
fill(hline1,hlinen1,color=color.silver,transp=85,editable=true)

//plot(Rate,color=(Rate>0?colorG:colorR),transp=75,style=plot.style_area,editable=false)

plot(Rate1,title="ESC1",color=(Rate1>0?colorG:colorR),style=plot.style_line,linewidth=1,editable=true)

BUYSIGNAL = Rate1 < -1 and change(Rate1) > 0
SELLSIGNAL = Rate1 > 1 and change(Rate1) < 0

if (BUYSIGNAL)
    strategy.order("LONG1",true)
    //strategy.close("SHORT1")

if (SELLSIGNAL)
   // strategy.order("SHORT1",false)
    strategy.close("LONG1")

もっと