この戦略は,MACD (移動平均収束差異) 指標のダイナミックな特徴に基づいた取引決定をベースにしている.コアアプローチは,潜在的な金と死亡のクロスを予測するためにMACDヒストグラムの変化を観察することに重点を置く.この戦略は,よりよいエントリータイミングを得るためにヒストグラムのダイナミックな特徴を強調することによって,伝統的なMACDクロスオーバー信号を超えて行なわれる.
この戦略は,迅速な (EMA12) と遅い (EMA26) 移動平均の違いを組み込む修正されたMACD指標システムを採用し,2期間の信号線を併用しています.コア取引論理はいくつかの重要なポイントに基づいています:
この戦略は,従来のMACD取引システムより改善するためにMACDヒストグラムのダイナミック特性を革新的に利用している.予測メカニズムは早期入場信号を提供し,厳格な取引条件とリスク管理措置は戦略の安定性を保証している.さらなる最適化と精錬により,この戦略は実際の取引条件で改善されたパフォーマンスを期待している.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Demo GPT - Moving Average Convergence Divergence", shorttitle="MACD", commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // 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.int(title="Signal Smoothing", minval=1, maxval=50, defval=2) // Set smoothing line to 2 sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"]) // Date inputs start_date = input(title="Start Date", defval=timestamp("2018-01-01T00:00:00")) end_date = input(title="End Date", defval=timestamp("2069-12-31T23:59:59")) // Calculating fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) hist = macd - signal // Strategy logic isInDateRange = true // Calculate the rate of change of the histogram hist_change = hist - hist[1] // Anticipate a bullish crossover: histogram is negative, increasing, and approaching zero anticipate_long = isInDateRange and hist < 0 and hist_change > 0 and hist > hist[1] and hist > hist[2] // Anticipate an exit (bearish crossover): histogram is positive, decreasing, and approaching zero anticipate_exit = isInDateRange and hist > 0 and hist_change < 0 and hist < hist[1] and hist < hist[2] if anticipate_long strategy.entry("Long", strategy.long) if anticipate_exit strategy.close("Long") // Plotting hline(0, "Zero Line", color=color.new(#787B86, 50)) plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist > hist[1] ? #26A69A : #B2DFDB) : (hist < hist[1] ? #FF5252 : #FFCDD2))) plot(macd, title="MACD", color=#2962FF) plot(signal, title="Signal", color=#FF6D00) // Plotting arrows when anticipating the crossover plotshape(anticipate_long, title="Long +1", location=location.belowbar, color=color.green, style=shape.arrowup, size=size.tiny, text="Long +1") plotshape(anticipate_exit, title="Short -1", location=location.abovebar, color=color.red, style=shape.arrowdown, size=size.tiny, text="Short -1")