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


作成日: 2023-12-22 15:05:24 最終変更日: 2023-12-22 15:05:24
コピー: 2 クリック数: 561
1
フォロー
1621
フォロワー

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

概要

この戦略は,EMA指数移動平均とMACD指数を計算し,両者の交差信号を組み合わせて,入場と出場を判断する.価格がEMA線を上越し,MACD線を上越しする際は多行し,価格がEMA線を下越し,MACD線を下越しする際は空行する.

戦略原則

この戦略は,EMA指数移動平均を使って現在のトレンドの方向を判断する.同時に,MACD指数の二均線交差を用い,買入シグナルを生成する.価格がEMA線を破るときのみ,MACDの金叉死叉シグナルを判断する.このようにして,誤ったシグナルを避ける.

この戦略は,主に移動平均取引戦略とMACD取引戦略の優位性に基づいています.移動平均は,トレンドの方向を比較的によく判断できます.MACD指数平滑移動平均の快慢線交差は,買賣ポイントを提示することができます.両方を組み合わせて使用すると,信号の正確性が向上します.

優位分析

この戦略はEMAとMACDの二重指標判断を組み合わせて,誤った信号を効果的にフィルターして信号の質を向上させる.同時に,EMAは主動トレンドを判断し,MACDは特定の買い売りポイントを判断し,両者は互補し,よりよい利益を得ることができる.

さらに,この戦略は,価格がEMA平均線を突破したときにのみMACD信号を考慮し,波動的な状況で誤った取引を回避します. これは,戦略の安定性を強化します.

リスク分析

この戦略の主なリスクは,パラメータ設定である.EMAとMACDのパラメータが正しく設定されていない場合,信号を逃すか間違った信号を生成する.さらに,市場トレンドが逆転した場合,戦略は一定損失を生成する.

リスクを軽減するために,EMAとMACDのパラメータを現在の市場周期にマッチするようにパラメータを適切に調整する必要があります.また,単一損失を制御するために,ストップを適用することを推奨します.市場が底盤に突入したり,サポートレベルに触れたとき,継続的な損失を避けるために,適切な取引停止を考慮する必要があります.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 動的最適化パラメータ,EMAとMACDのパラメータをリアルタイムな状況と周期に合わせて調整できるようにし,パラメータの有効性を保証する

  2. BOLLチャネルやKD指標などの他の指標の組み合わせを追加し,戦略信号を豊かにします.

  3. 自動最適化戦略のパラメータを機械学習方法を使用して,フィードバック結果に応じてパラメータを調整する

  4. EMA平均線を突破する際,方向の強さを判断し,偽突破を避ける

  5. 利潤を固定し,損失を削減するために,ストップ・ストップ・ストラトジーを追加します.

要約する

この均線交差量化戦略は,EMAとMACDの二重指標を組み合わせて,高品質の信号を効果的に生成できます.パラメータ設定を最適化し,ストップ・ロスを追加し,他の指標を追加することで,戦略の安定性と収益性をさらに高めることができます.この戦略は,効果的でシンプルで,量化トレーダーにとって優れた参照および応用価値があります.

ストラテジーソースコード
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("LONERTESTV2", overlay=true)

// Input definitions
fastLength = input(12, title="Fast Length")
slowlength = input(26, title="Slow Length")
MACDLength = input(9, title="MACD Length")
emaLength = input(13, title="EMA Length")
//smaLength = input(200, title="SMA Length")

// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
//SMA = ta.ema(close, smaLength)

// EMA Indicator - Are we in a rally or not?
EMA = ta.ema(close, emaLength)

// MACD Indicator - Is the MACD bullish or bearish?
MACD = ta.ema(close, fastLength) // - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD

// Set Buy/Sell conditions
buy_entry = close > EMA and delta > 5 ? true : close > EMA and delta > -5
sell_entry = close < EMA and delta < -5 ? true : close < EMA and delta < 5

if buy_entry
    strategy.entry(id='EL', direction=strategy.long)

if sell_entry
    strategy.entry(id='ES', direction=strategy.short)

// strategy.entry("Buy", strategy.long)
// strategy.entry("Sell", strategy.short)