Sumber dimuat naik... memuat...

Strategi Dagangan Komposit Mengikut Trend Kuantitatif Lanjutan dan Pembalikan Awan

Penulis:ChaoZhang, Tarikh: 2025-01-06 10:56:42
Tag:EMASMA

img

Ringkasan

Strategi ini adalah sistem perdagangan komposit yang menggabungkan crossover Exponential Moving Average (EMA) dan Ichimoku Cloud. EMA crossover terutamanya digunakan untuk menangkap isyarat permulaan trend dan mengesahkan peluang membeli, sementara Ichimoku Cloud digunakan untuk mengenal pasti pembalikan pasaran dan menentukan titik jual. Melalui penyelarasan penunjuk teknikal berbilang dimensi, strategi dapat menangkap trend secara berkesan sambil mengelakkan risiko tepat pada masanya.

Prinsip Strategi

Strategi ini beroperasi melalui dua komponen teras:

  1. Sinyal Beli EMA Crossover: Menggunakan persilangan purata bergerak eksponensial jangka pendek (9 hari) dan jangka panjang (21-hari) untuk mengesahkan arah trend. Sinyal beli dihasilkan apabila EMA jangka pendek melintasi di atas EMA jangka panjang, menunjukkan penguatan momentum jangka pendek.
  2. Isyarat Jual Awan Ichimoku: Menentukan pembalikan trend melalui kedudukan harga berbanding awan dan struktur awan dalaman. Isyarat jual dipicu apabila harga pecah di bawah awan atau apabila Leading Span A melintasi di bawah Leading Span B. Strategi termasuk stop-loss pada 1.5% dan mengambil keuntungan pada 3%.

Kelebihan Strategi

  1. Pengesahan Isyarat Berbilang Dimensi: Gabungan silang EMA dan Ichimoku Cloud mengesahkan isyarat perdagangan dari perspektif yang berbeza.
  2. Kawalan Risiko yang Komprehensif: Sasaran penangguhan kerugian dan keuntungan peratusan tetap mengawal risiko untuk setiap perdagangan dengan berkesan.
  3. Keupayaan Pengambilan Trend yang Kuat: Perpindahan EMA menangkap permulaan trend manakala Ichimoku Cloud secara berkesan mengenal pasti akhir trend.
  4. Isyarat yang jelas dan objektif: Isyarat perdagangan dihasilkan secara automatik oleh penunjuk teknikal, mengurangkan gangguan penilaian subjektif.

Risiko Strategi

  1. Risiko pasaran yang berkisar: Boleh menghasilkan isyarat palsu yang kerap di pasaran sampingan, yang membawa kepada berhenti berturut-turut.
  2. Risiko Lag: Kedua-dua purata bergerak dan Ichimoku Cloud mempunyai lag yang melekat, berpotensi kehilangan titik masuk yang optimum dalam pergerakan pasaran yang cepat.
  3. Sensitiviti Parameter: Prestasi strategi sensitif kepada tetapan parameter, yang memerlukan penyesuaian dalam keadaan pasaran yang berbeza.

Pengoptimuman Strategi

  1. Tambah Penapis Lingkungan Pasaran: Sertakan penunjuk turun naik atau kekuatan trend untuk menyesuaikan parameter strategi berdasarkan keadaan pasaran.
  2. Mengoptimumkan Mekanisme Hentikan Kerugian: Pertimbangkan untuk melaksanakan hentian dinamik, seperti hentian belakang atau hentian berasaskan ATR.
  3. Meningkatkan Pengesahan Isyarat: Tambah indikator jumlah dan momentum untuk meningkatkan kebolehpercayaan isyarat.
  4. Melaksanakan Ukuran Posisi: Sesuaikan saiz kedudukan secara dinamik berdasarkan kekuatan isyarat dan turun naik pasaran.

Ringkasan

Strategi ini membina sistem perdagangan yang mampu mengikuti trend dan menangkap pembalikan melalui gabungan organik silang EMA dan Ichimoku Cloud. Reka bentuk strategi adalah rasional dengan kawalan risiko yang betul, menunjukkan nilai aplikasi praktikal yang baik. Melalui arah pengoptimuman yang dicadangkan, terdapat ruang untuk penambahbaikan lanjut. Untuk perdagangan langsung, disyorkan untuk terlebih dahulu menentukan kombinasi parameter yang sesuai melalui backtesting dan membuat penyesuaian dinamik berdasarkan keadaan pasaran sebenar.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Buy + Ichimoku Cloud Sell Strategy", overlay=true)

// Input Parameters for the EMAs
shortEmaPeriod = input.int(9, title="Short EMA Period", minval=1)
longEmaPeriod = input.int(21, title="Long EMA Period", minval=1)

// Input Parameters for the Ichimoku Cloud
tenkanPeriod = input.int(9, title="Tenkan-Sen Period", minval=1)
kijunPeriod = input.int(26, title="Kijun-Sen Period", minval=1)
senkouSpanBPeriod = input.int(52, title="Senkou Span B Period", minval=1)
displacement = input.int(26, title="Displacement", minval=1)

// Calculate the EMAs
shortEma = ta.ema(close, shortEmaPeriod)
longEma = ta.ema(close, longEmaPeriod)

// Ichimoku Cloud Calculations
tenkanSen = ta.sma(close, tenkanPeriod)
kijunSen = ta.sma(close, kijunPeriod)
senkouSpanA = ta.sma(tenkanSen + kijunSen, 2)
senkouSpanB = ta.sma(close, senkouSpanBPeriod)
chikouSpan = close[displacement]

// Plot the EMAs on the chart
plot(shortEma, color=color.green, title="Short EMA")
plot(longEma, color=color.red, title="Long EMA")

// Plot the Ichimoku Cloud
plot(tenkanSen, color=color.blue, title="Tenkan-Sen")
plot(kijunSen, color=color.red, title="Kijun-Sen")
plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement)
plot(senkouSpanB, color=color.purple, title="Senkou Span B", offset=displacement)
plot(chikouSpan, color=color.orange, title="Chikou Span", offset=-displacement)

// Buy Condition: Short EMA crosses above Long EMA
buyCondition = ta.crossover(shortEma, longEma)

// Sell Condition: Tenkan-Sen crosses below Kijun-Sen, and price is below the cloud
sellCondition = ta.crossunder(tenkanSen, kijunSen) and close < senkouSpanA and close < senkouSpanB

// Plot Buy and Sell signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Execute Buy and Sell Orders
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.entry("Sell", strategy.short)

// Optional: Add Stop Loss and Take Profit (risk management)
stopLossPercentage = input.float(1.5, title="Stop Loss Percentage", minval=0.1) / 100
takeProfitPercentage = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100

longStopLoss = close * (1 - stopLossPercentage)
longTakeProfit = close * (1 + takeProfitPercentage)

shortStopLoss = close * (1 + stopLossPercentage)
shortTakeProfit = close * (1 - takeProfitPercentage)

strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)
strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)


Berkaitan

Lebih lanjut