
Strategi ini melakukan beberapa pengoptimuman terhadap indikator MACD klasik untuk menghasilkan isyarat perdagangan yang lebih tepat dan lebih dipercayai dan kawalan risiko yang lebih ketat. Pengoptimuman utama termasuk: 1 memperkenalkan indikator RSI untuk mengelakkan pembelian berlebihan; 2 menambah pengesahan jumlah transaksi; 3 menetapkan stop loss; 4 mengoptimumkan kombinasi parameter.
Asas asasnya masih menjadi penunjuk MACD yang cepat dan perlahan, garpu bercahaya lebih banyak, garpu mati kosong. Pengoptimuman utama ditunjukkan oleh:
Memperkenalkan RSI untuk mengelakkan isyarat palsu apabila pasaran terlalu tinggi atau terlalu rendah. RSI dapat mencerminkan tekanan jual beli pasaran dengan berkesan.
Menambah jumlah urus niaga, hanya apabila jumlah urus niaga meningkat akan menghasilkan isyarat, untuk mengelakkan penembusan yang tidak berkesan. Peningkatan jumlah urus niaga dapat mengesahkan kekuatan trend.
Setting stop loss stop brake mechanism, yang boleh secara dinamik mengikuti turun naik pasaran mengawal risiko dalam julat yang boleh diterima. Stop loss boleh mengawal kerugian tunggal dengan berkesan; Stop brake boleh mengunci keuntungan, mengelakkan keuntungan kembali.
Mengoptimumkan set parameter MACD, menyesuaikan parameter garis laju dan garis isyarat, mendapatkan set parameter yang lebih baik, menghasilkan isyarat perdagangan yang lebih tepat.
MACD yang dioptimumkan secara berganda mempunyai kelebihan yang ketara:
Pengurangan penjanaan isyarat palsu dan peningkatan kebolehpercayaan dan ketepatan isyarat.
Mekanisme penangguhan kerugian yang ketat mengawal risiko perdagangan dan mengunci keuntungan maksimum.
Parameter MACD telah disesuaikan dengan lebih baik untuk pelbagai jenis dan tempoh masa.
Kombinasi pelbagai indikator menghasilkan isyarat, sistematik, dan sesuai dengan persekitaran pasaran yang lebih luas.
Secara keseluruhannya, kecekapan kewangan dan risiko pendapatan meningkat dengan ketara.
Strategi ini juga mempunyai risiko yang perlu diwaspadai:
Parameter yang dioptimumkan tidak semestinya seratus peratus sesuai untuk semua varieti dan kitaran, perlu disesuaikan dengan keadaan sebenar.
Frekuensi penjanaan isyarat akan berkurangan dan terdapat risiko untuk kehilangan isyarat.
Dalam keadaan pasaran yang melampau, beberapa petunjuk mungkin memberi isyarat konflik yang memerlukan penilaian manual.
Hentian automatik mungkin berhenti terlalu awal dalam keadaan melompat cepat, membawa risiko tertentu kepada keuntungan.
Penanggulangan ini adalah berdasarkan penilaian pemantauan buatan, menyesuaikan parameter yang sesuai dengan keadaan pasaran, dan mengawal saiz kedudukan.
Strategi ini boleh terus dioptimumkan dengan:
Uji kombinasi lebih banyak penunjuk, seperti pita Brin, KD, dan lain-lain, untuk membentuk penentuan kumpulan penunjuk.
Menggunakan algoritma pembelajaran mesin untuk mengoptimumkan parameter secara automatik dan menjadikannya lebih pintar.
Menambah strategi pengurusan wang yang lebih ketat, seperti bahagian tetap, formula Kelly dan sebagainya.
Membangunkan strategi penangguhan automatik, menyesuaikan penangguhan mengikut trend dan kadar turun naik.
Menggunakan algoritma canggih seperti pembelajaran mendalam untuk meramalkan lebih tepat.
Strategi ini melalui pengoptimuman ganda dari penunjuk MACD asal, menyelesaikan kelemahan MACD yang mudah menghasilkan isyarat palsu dan kawalan risiko yang tidak mencukupi. Penggunaan gabungan pelbagai penunjuk dan penghentian kerugian membuat isyarat lebih tepat dan lebih dipercayai, dan kawalan risiko lebih ketat. Strategi ini layak untuk dikembangkan dan digunakan lebih lanjut, dan merupakan contoh penambahbaikan penunjuk MACD.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("优化版MACD交易策略 ", overlay=true)
// 输入参数
fastLength = input(16, "快速线周期")
slowLength = input(34, "慢速线周期")
signalSmoothing = input(10, "信号线平滑")
rsiPeriod = input(19, "RSI周期")
overboughtRsi = 70
oversoldRsi = 30
volumeAvgPeriod = input(13, "成交量平均周期")
stopLossPerc = input.float(10.5, "止损百分比", step=0.1)
takeProfitPerc = input.float(0.3, "止盈百分比", step=0.1)
// 计算指标
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
rsi = ta.rsi(close, rsiPeriod)
volumeAvg = ta.sma(volume, volumeAvgPeriod)
// 交易信号
longCondition = ta.crossover(macdLine, signalLine) and macdLine > 0 and rsi < overboughtRsi and volume > volumeAvg
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine < 0 and rsi > oversoldRsi and volume > volumeAvg
// 止损和止盈
longStopLossPrice = close * (1 - stopLossPerc / 100)
longTakeProfitPrice = close * (1 + takeProfitPerc / 100)
shortStopLossPrice = close * (1 + stopLossPerc / 100)
shortTakeProfitPrice = close * (1 - takeProfitPerc / 100)
// 执行交易
if longCondition
strategy.entry("买入", strategy.long)
strategy.exit("买入止损止盈", "买入", stop=longStopLossPrice, limit=longTakeProfitPrice)
if shortCondition
strategy.entry("卖出", strategy.short)
strategy.exit("卖出止损止盈", "卖出", stop=shortStopLossPrice, limit=shortTakeProfitPrice)