
この取引戦略は,MACD指数に基づく200日移動平均線による信号交差操作を行う量化戦略である.この戦略は,MACD指数による市場買付信号の判断と200日移動平均線による市場動向の判断の二重機能を組み合わせ,より正確な入場と出場のタイミングを掘り出すことを目的としている.
この戦略の核となる点は2つあります.
MACD指標の快速・遅い線が交差すると,買入・売出のシグナルが生じる. 快速線が下から遅い線を突破すると,買入のシグナルが生じる. 快速線が上から下から遅い線を突破すると,売出のシグナルが生じる.
200日移動平均線は市場全体の動きを判断する.価格は200日平均線の上では多頭市場,下では空頭市場である.多頭市場が買入シグナルを生じるときにのみ買入し,空頭市場が売り出そうとするシグナルを生じるときにのみ売る.
この2つのポイントに基づいて,この戦略の具体的な取引ルールは以下の通りです.
MACD快線が下方向からMACD慢線,柱状図が負値で,価格が200日移動平均線より上方向からMACD慢線,柱状図が正値で,価格が200日移動平均線より下方向からMACD快線が下方向からMACD慢線,柱状図が正値で,価格が200日移動平均線より下方向からMACD快線が下方向からMACD慢線,柱状図が正値で,価格が200日移動平均線より下方向からMACD快線が下方向からMACD慢線,柱状図が正値で,価格が200日移動平均線より下方向からMACD快線が下方向からMACD慢線,柱状図が正値で,価格が200日移動平均線より上方向からMACD快線が下方向からMACD慢線,柱状図が正値で,価格が200日移動平均線より下方向からMACD慢線,柱状図が正値でMACD慢線が200日移動平均線より上方向
双重判断は戦略の安定性と成功率を高める.MACDは,買い物シグナルを判断し,200日平均線は,市場の傾向を判断し,双重判断は,不確実性の高い取引シグナルをフィルターすることができます.
傾向が強い市場では,この戦略は高い利益をもたらすことができる.特に牛市では,価格上昇の機会を迅速に捉えることができる.
MACD指標は,震動整理段階から脱出するにも敏感であり,価格が長期の震動整理を終えてトレンド状態に入ると,この戦略は新しいトレンドの方向を迅速に捉えることができる.
この策略はパラメータ設定に敏感である. MACD指標パラメータが正しく設定されていない場合,誤入誤出が出る可能性があります.
トレンドの転換点の近くでは,MACD指標の買入シグナルが誤差を多く発生します.このとき,この戦略の利益は,大きな後退が起こる可能性があります.
価格が長期にわたって横横整理状態にあるとき,この戦略は明確なトレンド方向を決定することができません.これは,利益と損失の波動が増加し,撤回時間が延長されます.
異なるパラメータの組み合わせをテストして,信号を生成するより正確なMACDパラメータを見つけることができます.
戦略の信頼性を高めるために,RSI,KDなどの他の技術指標を添加することを検討することができます.
最大の引き下げを制御するためにストップポイントを設定できます. 価格がより大きな逆転突破を起こすと,すぐにストップアウトを停止し,ストップが拡大するのを効果的に防ぐことができます.
MACD200日平均線交差戦略は,トレンド判断と取引信号判断の双重機能を組み合わせて,収益の確率を効果的に高めることができる.これは,比較的安定した信頼性の高い量的な取引戦略である.しかし,この戦略は,パラメータと市場の状態にも一定の依存性があり,テストを継続して最適化することで,戦略の安定した収益性をさらに向上させることができる.[/
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
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/
// © x11joe
//@version=4
//This strategy is based on a youtube strategy that suggested I do this...so I did!
strategy(title="MacD 200 Day Moving Average Signal Crossover Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
moving_avg_length = input(title="Moving Average Length", type=input.integer, defval=200)
moving_avg = sma(close,moving_avg_length)
moving_avg_normalized = close - moving_avg
plot(moving_avg_normalized, title="Moving Average Normalized", style=plot.style_line, color=color.orange,linewidth=3)
plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
if(macd>signal and macd<0 and close>moving_avg)
strategy.entry("buy",strategy.long)
if(close<moving_avg and macd<signal and macd>0)
strategy.entry("sell",strategy.short)