2重移動平均突破戦略

作者: リン・ハーンチャオチャン開催日:2023年12月5日 10:46:05
タグ:

img

概要

双移動平均突破戦略は,速いEMAがスローEMAを超えると購入信号を生成し,速いEMAがスローEMAを下回るとポジションを閉鎖する.この戦略には,MACD指標も補助判断指標として組み込まれている.MACDヒストグラムが0線を超えると,購入信号が生成され,シグナルをさらに検証するために移動平均戦略と一致する.さらに,この戦略は,単日上昇が一定の百分比の値に達するかどうかを監視する.単日上昇が設定された値を超えると,購入信号も生成される.

アクシスの場合,ストップ・ロスはエントリー価格を下回るリスクを制御するために,エントリー価格を下回る一定パーセントで固定され,テイク・ロフはエントリー価格を下回る一定パーセントで固定される.

要するに,この戦略は,トレンドフォローと短期間の取引機会の両方を考慮して,明確なエントリー&アウトリースルールを伴う複数の指標を組み合わせています.最適化後に非常に不安定な株式の市場タイミング取引に適用できます.

戦略の論理

二重移動平均突破戦略のコア指標は,高速EMAと遅いEMAである. EMAは指数的な移動平均を表し,トレンドをたどる指標である.高速EMAは通常,短期トレンドを把握するための短いパラメータを持ち,遅いEMAは通常,長期トレンド方向を決定するための長いパラメーターを有する.高速EMAが遅いEMAを超えると,短期トレンドの強化を示し,ロングに行くことを示唆する.高速EMAが遅いEMAを下回ると,短期トレンドの弱まりを示し,ポジションの閉じることを示唆する.

この戦略のデフォルトパラメータは,速いEMAは12日,遅いEMAは26日である.このパラメータのセットは典型的であり,マッチングタイムフレームは適切である.株式の閉場価格は,EMAを計算するための価格入力として使用される.

また,戦略はMACD指標を補助判断ツールとして導入している.MACD指標の定義は,MACDの信号線平滑を伴う速いEMA (12日デフォルト) を減算し,遅いEMA (26日デフォルト) を減算する.MACDが0線を超えると,短期利益が長期利益を超えると表示され,購入信号が発信される.この信号は移動平均戦略に一致し,検証の役割を果たし,取引信号の信頼性を向上させる.

最後に,この戦略は,株の1日間の上昇が既定の値 (8%デフォルト) を超えているかどうかを監視する.非常に不安定な株の場合,大きな1日間の上限は一般的な市場特徴である.この値を超えると,短期的な取引機会を把握するための信号も与えます.

出口の場合,ストップ・ロストレベルとテイク・プロフィートレベルを事前に設定する.出口を制御するためにエントリー価格より一定の割合 (デフォルト5%) でストップ・ロストを固定する.収益をロックするためにエントリー価格より一定の割合 (デフォルト40%) でテイク・プロフィートを固定する.

利点分析

二重移動平均のクロスオーバー戦略には以下の利点があります.

  1. トレンドフォローと短期取引の柔軟な組み合わせ.ダブル・ムービング・メアリーは,中期および長期のトレンドを決定するのに適しています.MACD指標とボリューム・ブレイクアウト判断を追加することで,短期的な取引機会を考慮することができます.

  2. 判断しやすい信頼性の高い取引信号. 遅いEMAの上のEMAの高速横断は,シンプルで直感的に決定できる標準のゴールデンクロス信号を形成する. MACDインジケーターを組み込むことは検証の役割を果たし,信号品質を改善することができます.

  3. ストップ・ロストとテイク・プロフィートの原則を通じて制御可能なリスク.ストップ・ロストレベルを事前に設定することで,損失を迅速に削減し,巨大な引き下げを回避することができます.テイク・プロフィートのレベルを設定することで,部分的な利益もロックできます.

  4. 適応性の高い調整可能なパラメータ. 急速なEMA期間,遅いEMA期間,および1日間の増加しきい値などのパラメータは自由に設定できます. 適応性を向上させるために,戦略は異なる株に最適化できます.

リスク分析

双重移動平均のクロスオーバー戦略には,次のリスクもあります.

  1. 単一指標の組み合わせは誤った信号を生む可能性があります. 双向移動平均値とMACDの両方が誤った信号と追跡効果が悪い可能性があります. マッチング検証のためにより多くのタイプの指標を導入する必要があります.

  2. 主要なストップ損失レベルは考慮されていない.ブラック・スワン・イベントの場合,十分な総ストップ損失の限界値がない場合,大きな損失を引き起こす可能性があります.これはリスク管理のために手動的介入を必要とする.

  3. 適切なEMA期間の設定は戦略を無効にすることがあります.パラメータが正しく設定されていない場合,複数の振動が起き,誤った信号が生じます.パラメータは,株の特徴に応じてテストおよび最適化する必要があります.

  4. 入口と出口点を選択する際の不正確なタイミング.戦略は最良の入口と出口スポットを選択しない.最適化にはより複雑なルールや機械学習技術が必要である.

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

二重移動平均のクロスオーバー戦略は,次の側面で最適化できます.

  1. 信号品質を改善するために検証指標を増やす.KDJやBOLLのような他の指標は,偽信号を減らすために多指標検証システムを形成するためにテストすることができます.

  2. 最適なエントリーとアウトプット点を特定するための機械学習モデルを増やし,最大限の取引タイミングを決定し,タイミングリスクを低減するモデルを構築するために大量の歴史的データを収集します.

  3. EMA期間のパラメータと戦略へのテスト影響を最適化する.最適なセットを見つけ,安定性を向上させるために異なるパラメータ組み合わせをグリッドで検索することができます.

  4. 市場体制に基づいて適応可能なストップ損失メカニズムを追加する. ストップ損失レベルを動的に追跡する. 勝利率を改善するために特別な市場条件下で適切なストップ損失範囲を緩和する.

  5. 最適の利益率を調査することで利益のレベルを最適化します. ダイナミックな利益の目標を設定し,牛市中に適切なトレリングストップを設定するなどです.

結論

ダブル移動平均クロスオーバー戦略は,完全なフレームワーク,合理的な指標選択およびパラメータ設定を有する.非常に不安定な株式のための短期取引戦略に従うのに適したトレンドである.しかし,判断指標を増やし,機械学習を追加し,戦略パフォーマンスをさらに向上させるためにパラメータ最適化を含む最適化のための余地があります.


/*backtest
start: 2022-11-28 00:00:00
end: 2023-12-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Volatile Stocks", overlay=true)

//Trading Strategy for Highly Volitile Stocks//
// by @ShanghaiCrypto //

////EMA////
fastLength = input(12)
slowLength = input(26)
baseLength = input(100)
price = close

emafast = ema(price, fastLength)
emaslow = ema(price, slowLength)
emabase = ema(price, baseLength)

///MACD////
MACDLength = input(9)
MACDfast = input(12)
MACDslow = input(26)
MACD = ema(close, MACDfast) - ema(close, MACDslow)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

////PUMP////
OneCandleIncrease = input(8, title='Gain %')
pump = OneCandleIncrease/100

////Profit Capture and Stop Loss//////
stop = input(5.0, title='Stop Loss %', type=float)/100
profit = input(40.0, title='Profit %', type=float)/100
stop_level = strategy.position_avg_price * (1 - stop)
take_level = strategy.position_avg_price * (1 + profit)

////Entries/////
if crossover(emafast, emaslow)
    strategy.entry("Cross", strategy.long, comment="BUY")

if (crossover(delta, 0))
    strategy.entry("MACD", strategy.long, comment="BUY")
    
if close > (open + open*pump)
    strategy.entry("Pump", strategy.long, comment="BUY")

/////Exits/////
strategy.exit("SELL","Cross", stop=stop_level, limit=take_level)
strategy.exit("SELL","MACD", stop=stop_level, limit=take_level)
strategy.exit("SELL","Pump", stop=stop_level, limit=take_level)

////Plots////
plot(emafast, color=green)
plot(emaslow, color=red)
plot(emabase, color=yellow)
plot(take_level, color=blue)
plot(stop_level, color=orange)

もっと