Strategi ini menggabungkan moving average dan indikator MACD untuk menentukan tren dan menghasilkan sinyal perdagangan. Ini termasuk dalam strategi trend berikut yang khas. Ini menggunakan dua moving average ZLSMA dari kerangka waktu yang berbeda untuk menentukan arah tren, dan crossover MACD untuk menghasilkan sinyal beli dan jual tertentu. Hal ini memungkinkan untuk secara efektif menangkap tren jangka menengah hingga panjang sambil menghindari tertipu oleh kebisingan pasar jangka pendek.
Strategi ini terdiri dari komponen utama berikut:
ZLSMA cepat dan ZLSMA lambat: Membandingkan ZLSMA moving average dari jangka waktu yang berbeda menentukan arah tren keseluruhan. Garis cepat terdiri dari ZLSMA 32 periode, dan garis lambat terdiri dari ZLSMA 400 periode. Ketika garis cepat melintasi di atas garis lambat, itu adalah sinyal bullish, dan sebaliknya.
Indikator MACD: MACD dihitung dengan mengurangi garis lambat (EMA 26 periode) dari garis cepat (EMA 12 periode).
Sinyal perdagangan: Sinyal beli dan jual hanya dihasilkan ketika arah tren ZLSMA sejajar dengan sinyal crossover MACD. Secara khusus, pergi panjang ketika tren bull bertepatan dengan salib emas MACD, dan pergi pendek ketika tren bear bertepatan dengan salib kematian MACD.
Stop loss and take profit: Strategi saat ini tidak mencakup stop loss and take profit logic, yang membutuhkan optimasi lebih lanjut.
Kombinasi menggunakan moving average untuk menentukan tren utama dan MACD untuk waktu entri dapat secara efektif menyaring breakout palsu dan menghindari tertipu oleh kebisingan pasar jangka pendek.
Keuntungan utama dari strategi ini adalah:
Menangkap tren: Menggunakan rata-rata bergerak dari kerangka waktu yang berbeda untuk menentukan arah tren memungkinkan perdagangan dengan tren dan menangkap tren jangka menengah hingga panjang secara efektif.
Menyaring kebisingan: Menerapkan indikator MACD membantu menyaring kebisingan pasar jangka pendek dan menghindari disesatkan oleh pasar dengan kisaran kecil.
Parameter yang dapat disesuaikan: Periode rata-rata bergerak dan parameter MACD dapat disesuaikan dan dapat dioptimalkan untuk pasar yang berbeda.
Mudah diimplementasikan: Semua indikator yang digunakan adalah indikator teknis umum.
Risiko yang dapat dikendalikan: Dengan stop loss yang jelas dan mengambil keuntungan, risiko dan imbalan dari setiap perdagangan dapat dikendalikan.
Risiko utama dari strategi ini adalah:
Penentuan tren yang salah: Jika tren utama ditentukan secara salah, semua perdagangan dapat mengakibatkan kerugian.
Optimasi parameter yang tidak benar: Parameter moving average dan MACD harus diuji dan dioptimalkan secara menyeluruh, jika tidak hasilnya mungkin tidak memuaskan.
Kurangnya stop loss: Saat ini tidak ada stop loss yang ada, menimbulkan risiko kerugian yang terlalu besar.
Potensi keuntungan terbatas: Sebagai tren mengikuti strategi, potensi keuntungan dari setiap perdagangan terbatas, membutuhkan volume tinggi untuk meningkatkan profitabilitas.
Frekuensi perdagangan yang tinggi: Penyesuaian parameter yang tidak tepat dapat mengakibatkan frekuensi perdagangan yang berlebihan, meningkatkan biaya transaksi dan slippage.
Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:
Tambahkan mekanisme stop loss: Atur titik stop loss yang tepat untuk mengontrol kerugian maksimum per perdagangan.
Mengoptimalkan parameter: Backtest dan mengoptimalkan untuk menemukan kombinasi rata-rata bergerak dan parameter MACD yang optimal.
Frekuensi perdagangan yang lebih rendah: Sesuaikan parameter untuk memastikan sinyal perdagangan hanya dihasilkan ketika tren dinyatakan.
Masukkan faktor lain: Faktor seperti perubahan volume dapat ditambahkan untuk mengkonfirmasi tren dan sinyal.
Meningkatkan waktu entri: Lebih lanjut meningkatkan penggunaan MACD untuk meningkatkan akurasi entri.
Membuat aplikasi universal: Mengoptimalkan parameter untuk membuat strategi dapat diterapkan secara luas di berbagai produk, memperluas penerapan.
Sebagai kesimpulan, strategi ini secara efektif menangkap tren jangka menengah hingga panjang melalui kombinasi sederhana namun efektif dari moving average dan MACD, menjadikannya dasar strategi perdagangan kuantitatif yang solid.
/*backtest start: 2023-11-07 00:00:00 end: 2023-11-10 05: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/ // © veryfid //@version=5 strategy("Stratégie ZLSMA Bruno", shorttitle="Stratégie ZLSMA Bruno", overlay=false) source = close useCurrentRes = input(true, title="Use Current Chart Resolution?") smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below") sd = input(true, title="Show Dots When MacD Crosses Signal Line?") sh = input(true, title="Show Histogram?") macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?") hist_colorChange = input(true,title="MacD Histogram 4 Colors?") //res = useCurrentRes ? period : resCustom fastLength = input(12), slowLength=input(26) signalLength=input(9) fastMA = ta.ema(source, fastLength) slowMA = ta.ema(source, slowLength) macd = fastMA - slowMA signal = ta.sma(macd, signalLength) hist = macd - signal outMacD = macd outSignal = signal outHist = hist histA_IsUp = outHist > outHist[1] and outHist > 0 histA_IsDown = outHist < outHist[1] and outHist > 0 histB_IsDown = outHist < outHist[1] and outHist <= 0 histB_IsUp = outHist > outHist[1] and outHist <= 0 //MacD Color Definitions macd_IsAbove = outMacD >= outSignal macd_IsBelow = outMacD < outSignal //plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray macd_color = macd_colorChange ? macd_IsAbove ? color.lime : color.red : color.red //signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime circleYPosition = outSignal //plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4) //plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2) //plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4) plot(sd and ta.cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=plot.style_circles, linewidth=4, color=macd_color) hline(0, '0 Line', linestyle=hline.style_solid, linewidth=2, color=color.white) // Paramètres de la ZLSMA length = input(32, title="Longueur") offset = input(0, title="Décalage") src = input(close, title="Source") lsma = ta.linreg(src, length, offset) lsma2 = ta.linreg(lsma, length, offset) eq = lsma - lsma2 zlsma = lsma + eq length_slow = input(400, title="Longueur") offset_slow = input(0, title="Décalage") lsma_slow = ta.linreg(src, length_slow, offset_slow) lsma2_slow = ta.linreg(lsma_slow, length_slow, offset_slow) eq_slow = lsma_slow - lsma2_slow zlsma_slow = lsma_slow + eq_slow // Paramètres de la sensibilité sensitivity = input(0.5, title="Sensibilité") // Règles de trading longCondition = zlsma < zlsma_slow and zlsma_slow < zlsma_slow[1] and zlsma > zlsma[1] and ta.cross(outMacD, outSignal) and macd_color == color.lime//ta.crossover(zlsma, close) and ta.crossover(zlsma, zlsma[1]) // Croisement vers le haut shortCondition = zlsma > zlsma_slow and zlsma_slow > zlsma_slow[1] and zlsma < zlsma[1] and ta.cross(outMacD, outSignal) and macd_color == color.lime //ta.crossunder(zlsma, close) and ta.crossunder(zlsma, zlsma[1]) // Croisement vers le bas // Entrée en position strategy.entry("Achat", strategy.long, when=longCondition) strategy.entry("Vente", strategy.short, when=shortCondition) botifySignalZLSMA = longCondition ? 1 : shortCondition ? -1 : 0 plot(botifySignalZLSMA, title='Botify_signal', display=display.none) // Sortie de position strategy.close("Achat", when=ta.crossunder(zlsma, close)) // Close the "Achat" position strategy.close("Vente", when=ta.crossover(zlsma, close)) // Close the "Vente" position // Tracé de la courbe ZLSMA plot(zlsma, color=color.yellow, linewidth=3) plot(zlsma_slow, color=color.red, linewidth=3)