Strategi ini menghasilkan sinyal perdagangan berdasarkan crossover rata-rata bergerak 9 hari dan 15 hari, dikombinasikan dengan beberapa pola lilin intraday yang khas. Ini panjang ketika MA cepat melintasi di atas MA lambat dan memenuhi kondisi sudut tertentu dan pola lilin. Ini pendek ketika MA cepat melintasi di bawah MA lambat. Stop loss dan take profit level diatur untuk mengendalikan risiko.
Strategi ini terutama memanfaatkan kemampuan mengikuti tren rata-rata bergerak dan karakteristik pola candlestick tertentu.
Strategi ini menggabungkan indikator rata-rata bergerak dan pola lilin intraday untuk secara efektif menyaring kebisingan dan membuat sinyal perdagangan lebih dapat diandalkan. Terutama dengan ambang ambang, ini memastikan ada momentum perubahan harga yang cukup sebelum menghasilkan sinyal, menghindari sinyal palsu yang tidak perlu. Juga, stop loss dan take profit level dapat secara otomatis membatasi kerugian maksimum dan penarikan keuntungan. Langkah-langkah ini meningkatkan stabilitas dan profitabilitas.
Sebagai indikator yang mengikuti tren, moving average dapat menangkap tren harga jangka menengah hingga panjang. lilin intraday mencerminkan perbandingan kekuatan peserta pasar jangka pendek. Menggunakannya bersama dapat memperoleh implikasi perdagangan di berbagai kerangka waktu. Strategi ini mengintegrasikan kekuatan dari beberapa indikator dan harus mencapai kinerja yang baik dalam perdagangan aktual.
Risiko utama dari strategi ini meliputi:
risiko pembalikan tren. moving average tidak dapat memberikan peringatan awal pembalikan tren. memegang posisi di sini dapat menyebabkan kerugian besar. risiko ini dapat dikendalikan melalui stop loss yang ketat.
Risiko optimasi parameter. Pasar yang berbeda beradaptasi secara berbeda dengan pengaturan parameter. Menerapkan satu set parameter secara langsung tanpa penyesuaian dapat menyebabkan kerugian. Parameter yang tepat perlu ditemukan melalui backtesting dan perdagangan kertas.
Secara umum, strategi ini dapat menghasilkan beberapa sinyal palsu dan mengejar risiko tinggi/rendah tanpa mempertimbangkan kondisi pasar.
Aspek berikut dari strategi ini dapat ditingkatkan lebih lanjut:
Tambahkan analisis tren utama, misalnya, konfirmasi saluran jangka menengah/panjang, untuk menghindari perdagangan melawan tren.
Masukkan indikator volume. Misalnya, volume saldo dapat digunakan untuk menghindari shorting harga momentum tinggi atau membeli harga momentum rendah.
Menggabungkan analisis fundamental, memilih saham dengan prospek dan pendapatan yang lebih baik untuk meningkatkan tingkat kemenangan.
Mengoptimalkan parameter rata-rata bergerak. Uji periode panjang yang berbeda, sistem MA tiga atau lima kali lipat untuk fleksibilitas penyesuaian yang lebih besar.
Uji parameter stop loss/take profit. Tetapkan rasio rebate buku order berdasarkan hasil backtest untuk mencapai rasio risiko-manfaat optimal.
Arah optimalisasi di atas harus secara signifikan meningkatkan baik profitabilitas dan stabilitas strategi ini.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true) // Define input parameters fast_length = input(9, "Fast MA Length") slow_length = input(15, "Slow MA Length") stop_loss_percent = input(0.25, "Stop Loss (%)") target_percent = input(0.25, "Target (%)") angle_threshold = input(30, "Angle Threshold (degrees)") // Calculate moving averages fast_ma = sma(close, fast_length) slow_ma = sma(close, slow_length) // Define candlestick patterns is_pin_bar() => pin_bar = abs(open - close) > 2 * abs(open[1] - close[1]) high_tail = max(open, close) - high > abs(open - close) * 1.5 low_tail = low - min(open, close) > abs(open - close) * 1.5 pin_bar and high_tail and low_tail is_marubozu() => marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75 no_upper_shadow = high == max(open, close) no_lower_shadow = low == min(open, close) marubozu and no_upper_shadow and no_lower_shadow is_full_body() => full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95 full_body // Plot moving averages plot(fast_ma, color=color.blue, title="Fast MA") plot(slow_ma, color=color.red, title="Slow MA") // Calculate angle of slow moving average ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159)) // Generate buy/sell signals based on angle condition and candlestick patterns buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body()) sell_signal = crossunder(fast_ma, slow_ma) // Calculate stop-loss and target levels stop_loss_level = close * (1 - stop_loss_percent / 100) target_level = close * (1 + target_percent / 100) // Execute trades based on signals with stop-loss and target strategy.entry("Buy", strategy.long, when=buy_signal) strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level) // Plot buy/sell signals on chart (optional) plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Plot angle line hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)