この戦略は,柔軟な取引量加重移動平均線 (EVWMA) をベースとしたMACD取引戦略である.EVWMAの優位性を活用して,取引信号が明確で実用的な戦略を設計した.
EVWMA指標は,移動平均線計算に成交情報を統合し,移動平均線が価格変化をより正確に反映できるようにする.この戦略は,高速線と遅速線の計算を構成する.高速線のパラメータ設定は,短期間の価格変動を捕捉するより敏感であり,遅速線のパラメータ設定は,部分的なノイズをフィルターするより安定している.EVWMAを形成する2つのMACDは,交差し,空白を多用し,ヒストグラムを設計し,より視覚的な取引ヒントを与える.
この戦略の最大の利点は,EVWMAの力を活用することで,MACDの戦略パラメータ設定がより安定し,取引信号がより明確になる.EVWMAは,単純な移動平均線と比較して,市場の変化の傾向をよりよく把握できる.これは,この戦略をより広く適応させ,さまざまな市場環境で安定して動作できるようにする.
この戦略の主なリスクは,MACD自体で一定の遅延があり,価格逆転を間に合うように捉えることができないことである.さらに,EVWMAのパラメータ設定も戦略のパフォーマンスに影響を与える.もしスローラインパラメータを正しく設定しなければ,取引信号が乱れ,収益性が影響される.
リスクを軽減するために,パラメータを適切に調整し,高速線と遅速線との差を適度に調整し,ヒストグラムは調節が必要かどうかを判断するのに役立ちます.さらに,単一損失を過剰に避けるために停止損失戦略を設計することもできます.
この戦略は,主に以下の点から最適化することができます:
EVWMAのパラメータは,市場環境に合わせて自動的に調整され,取引信号の明確さを保証する自律パラメータ設定技術を使用します.
損失を抑えるための停止メカニズムが強化され,単一の損失を効果的に制御できます.
他の指標と組み合わせると,誤報信号をフィルターします.例えば,取引を組み合わせると,価格が大きく変化した場合に信号が発生します.
入場点選択を最適化する. 現在の戦略はMACDゼロ軸交差時に取引を開く. 深い引き込みに変更されるかどうかをテストする.
この戦略は,EVWMA指標の優位性を活用し,シンプルで実用的なMACD戦略を構築した.それはより安定性があり,より柔軟性がある.同時に,MACD自体も遅れの問題がある.我々は適応パラメータの最適化,停止損失,信号フィルタ設計などから改善を進め,戦略をより安定させることができる.
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("QuantNomad - EVWMA MACD Strategy", shorttitle = "EVWMA MACD", overlay = false)
// Inputs
fast_sum_length = input(10, title = "Fast Sum Length", type = input.integer)
slow_sum_length = input(20, title = "Slow Sum Length", type = input.integer)
signal_length = input(9, title = "Signal Smoothing", type = input.integer, minval = 1, maxval = 50)
// Calculate Volume Period
fast_vol_period = sum(volume, fast_sum_length)
slow_vol_period = sum(volume, slow_sum_length)
// Calculate EVWMA
fast_evwma = 0.0
fast_evwma := ((fast_vol_period - volume) * nz(fast_evwma[1], close) + volume * close) / (fast_vol_period)
// Calculate EVWMA
slow_evwma = 0.0
slow_evwma := ((slow_vol_period - volume) * nz(slow_evwma[1], close) + volume * close) / (slow_vol_period)
// Calculate MACD
macd = fast_evwma - slow_evwma
signal = ema(macd, signal_length)
hist = macd - signal
// Plot
plot(hist, title = "Histogram", style = plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #EF5350) ), transp=0 )
plot(macd, title = "MACD", color = #0094ff, transp=0)
plot(signal, title = "Signal", color = #ff6a00, transp=0)
// Strategy
strategy.entry("Long", true, when = crossover(fast_evwma, slow_evwma))
strategy.entry("Short", false, when = crossunder(fast_evwma, slow_evwma))