モメントブレイク 移動平均戦略

作者: リン・ハーンチャオチャン,日付: 2023-09-19 16:33:13
タグ:

概要

この戦略は,トレンドフォロー戦略に属する移動平均値とモメンタム指標を組み合わせます.特定の期間の移動平均値を計算することによって市場の傾向方向を判断します.価格が移動平均値を突破すると,トレンドが逆転すると考えられ,取引が行うことができます.同時に,誤ったブレイクによって騙されないように確認信号として,特定の期間の連続した上下日の数を導入します.

戦略原則

この戦略は主に2つの指標に基づいています.

  1. シンプル・ムービング・アベア (SMA): 一般的な傾向の方向性を決定するために,一定の期間における平均閉店価格を計算する.

  2. 連続した上昇/下落日: トレンド逆転の確認信号として,価格が持続的な上昇傾向または下落傾向にあった日の数を数えます.

戦略は,まず,一般的なトレンド方向を表す520日SMAを計算する.価格が上昇してSMAを突破した場合,上昇日の数を数え始める.価格が落ちてSMAを突破した場合,ダウン日の数を数え始める.上昇日数またはダウン日数が27日に達すると,対応する指向取引が行われる.

例えば,価格が上昇してSMAを突破し,27日間上昇し続けると,ロングトレードが行われます.価格が落ちてSMAを突破し,27日間下落し続けると,ショートトレードが行われます.

利点分析

この戦略は,移動平均値とモメント指標を組み合わせて,短期間の市場騒音干渉を回避しながら,動向を効果的に追跡します.その主な利点は次のとおりです.

  1. 長期SMAを使用して主要な傾向を判断することで,短期変動とノイズを効果的にフィルタリングすることができます.

  2. 連続した上下日の確認信号を増やすことで,短期間の誤ったブレイクに騙されないようにし,不必要な取引を減らすことができます.

  3. トレンドが逆転する時のみ取引することで トレンドの方向性と勢いを最大限に把握できます

  4. ルールが明確で 実行が簡単で 複雑なパラメータの最適化も不要で 普通の投資家に適しています

リスク分析

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

  1. 長期的に走る牛市に 早期に入場する機会を逃すかもしれません

  2. 範囲限定の市場で頻繁に誤ったブレイクが発生し,過剰な無効な取引が起こるため,騙されやすい.

  3. SMAパラメータが正しく設定されていない場合,戦略は傾向の変化に緩慢に対応する可能性があります.

  4. 輸液パラメータが正しく設定されていない場合,取引信号は頻繁すぎたり 稀すぎたりする可能性があります.

オプティマイゼーションの方向性

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

  1. 複数サイクル検証のための複数のタイムフレームのSMAを追加し,単一サイクルの制限を回避する.

  2. 詳細な判断のためにMACDなどの他の傾向指標を追加し,正確性を向上させる.

  3. バランスポイントを見つけるために,注射パラメータを最適化し,頻繁すぎるまたは稀な取引信号を避ける.

  4. ストップ・ロスの戦略を追加して 単一の損失を制御します

  5. 容量差のリスクを回避するために,容量指標を組み込む.

概要

概して,この戦略は,シンプルで実践的なトレンドフォロー戦略である.長期間のSMAで主要なトレンドを判断し,トレンド逆転信号を確認するためにパーフュージョンを使用し,ノイズ欺瞞を回避しながら,効果的にトレンドを追跡することができます.いくつかの最適化により,信頼できるトレンド戦略になることができます.しかし,依然として特定の市場条件の下での制限を認識する必要があります.一般的に,この戦略は,いくつかの取引経験を持つ投資家にとって適しています. ポートフォリオ戦略の一部として使用されます.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


strategy(title="Mbit Moving Average",overlay=true)

length = input(520)
confirmBars = input(27)
price = close
ma = ta.sma(price, length)

bcond = price > ma

bcount = bcond ? nz(bcount[1]) + 1 : 0

scond = price < ma

scount = scond ? nz(scount[1]) + 1 : 0

long =  scount == confirmBars

short = bcount == confirmBars


//Strategy

strategy.entry("long", strategy.long, when=long)

strategy.entry("short",strategy.short, when=short)


もっと