この戦略は,Logarithmic MACD指標を使用して取引信号を生成します.市場勢力と機会を測定するために,高速と遅いログリズム移動平均の違いを計算します.
主な論理は
速対数MA (デフォルト 12) と遅対数MA (デフォルト 26) を計算する
ロガリズムMACDは,市場の勢いを表現する,彼らの違いです.
シグナルラインはMA (MACD) の平坦化 (デフォルト9)
MACDが下からの信号を上から横切るとロング
MACDが上からの信号を下回るとショート
MACD-シグナル差はヒストグラムとしてグラフ化
単純なMACDと比較して,対数MACDは指数関数成長傾向をよりよく強調することができる. ログ変換は,チャート上の変動値の比較性を維持する.
ロガリズム変換を用いて指数値値変動を検出する
ログ MACD は価格変動の情報を強調します
シグナルラインはMACDを取引信号に滑らかにします.
MACDヒストグラムは,トレンドの方向性を直感的に示しています.
ログ変換は価格騒音を増幅する可能性があります
頻繁なシグナル,過剰取引のリスク
ストップ損失管理がない,リスク管理が不完全
緩和策
信号周波数を減らすためにパラメータを調整する
フィルターを追加して,揺れる条件でシグナルを避ける
ストップ・ロスを実行し,トレード毎の損失を制御する
安定性パラメータを最適化
移動平均線のような他の変換を試してみてください.
スクリーン信号にトレンドフィルターを追加する
ストップ・ロスの戦略を組み込む
信号の信頼性を判断するために機械学習を使用する
ロガリズムの変換は,早期トレンド検出のためのMACDの感度を高めます.しかし,取引頻度は制御する必要があります.パラメータ,リスク管理などの最適化により,この戦略は安定しユニークな定量システムになることができます.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Logarithmic Moving Average Convergence Divergence Strategy", shorttitle="LMACD Strategy") // Getting inputs fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", defval=false) sma_signal = input(title="Simple MA(Signal Line)", 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) lmacd = log(fast_ma) - log(slow_ma) signal = sma_signal ? sma(lmacd, signal_length) : ema(lmacd, signal_length) hist = lmacd - signal plot(hist, title="Histogram", 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(lmacd, title="LMACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) if (crossover(hist, 0)) strategy.entry("Long", strategy.long, comment="LMACD long") if (crossunder(hist, 0)) strategy.entry("Short", strategy.short, comment="LMACD short")