Strategi ini mengintegrasikan teknik crossover purata bergerak dan pecah paras rintangan untuk menubuhkan isyarat membeli dan menjual untuk perdagangan automatik. Apabila purata bergerak jangka pendek melintasi purata bergerak jangka sederhana dari bawah, dan harga saham memecahkan tahap rintangan, isyarat beli dihasilkan. Strategi ini menetapkan keuntungan pada peningkatan harga 15% dan penurunan harga 3% untuk mengawal risiko. Strategi perdagangan kuantitatif yang matang ini dapat mengenal pasti trend pasaran secara automatik dan masuk ke kedudukan apabila isyarat teknikal muncul, dengan pengurusan risiko yang betul.
Strategi menghasilkan isyarat dagangan terutamanya berdasarkan penunjuk dan penilaian teknikal berikut:
Teknik crossover purata bergerak: purata bergerak mudah 20 hari dan 44 hari dikira. Apabila SMA 20 hari melintasi garis 44 hari, ia dinilai bahawa pasaran berada dalam trend menaik, menghasilkan isyarat beli.
Teknik penembusan paras rintangan: Tahap harga yang harga saham telah berulang kali dicapai tetapi gagal untuk menembusi dipanggil paras rintangan. Menembusi mereka menunjukkan harga memasuki trend menaik baru. Strategi ini menganggap penembusan di atas 0.7% daripada penutupan sebelumnya sebagai penembusan rintangan.
RSI Oscillator: Indeks Kekuatan Relatif, penunjuk momentum untuk mengenal pasti keadaan overbought dan oversold. Strategi ini menggunakan nilai RSI 14 hari di atas 50 sebagai isyarat overbought.
Analisis jumlah: Jumlah yang melebihi purata 10 hari yang lalu sering menunjukkan minat membeli atau menjual yang lebih kuat dan momentum dalam pergerakan harga.
Isyarat beli: Dihidupkan apabila SMA pendek melintasi SMA sederhana, dengan nilai RSI yang terlalu banyak dibeli dan lebih tinggi daripada jumlah dagangan purata, menunjukkan trend menaik.
Isyarat jual: 15% mengambil keuntungan dari harga masuk, 3% stop-loss.
Strategi perdagangan kuantitatif yang matang ini mengintegrasikan pelbagai kaedah analisis teknikal untuk mengenal pasti struktur pasaran dan trend, secara automatik menjana isyarat perdagangan semasa pembentukan trend, dengan pengurusan risiko yang betul.
Mencatatkan trend pasaran dengan lancar dengan teknik purata bergerak.
Mengelakkan pembukaan kedudukan semasa pecah palsu dengan menggabungkan analisis jumlah.
Kawalan risiko yang berkesan dengan menetapkan stop-loss dan mengambil keuntungan, mengoptimumkan nisbah risiko-balasan.
Secara keseluruhan penilaian struktur pasaran yang sangat baik, peraturan perdagangan yang ketat dan kawalan risiko menjadikan ini strategi perdagangan kuantitatif yang kukuh.
Sistem purata bergerak berganda boleh sensitif terhadap penyesuaian parameter untuk tempoh yang berbeza.
Sistem yang mengikuti trend tidak dapat bertindak balas dengan cepat terhadap peristiwa asas tiba-tiba, menghadapi risiko kehilangan berhenti.
Walaupun dengan penempatan stop loss, kekerapan dagangan yang tinggi membawa kepada jumlah pelaksanaan stop loss yang tidak dapat dielakkan, yang mengakibatkan tahap keuntungan yang tidak merata.
Isyarat dari penunjuk teknikal sering tertinggal di belakang titik pembalikan terbaik pasaran.
Mengoptimumkan parameter seperti panjang purata bergerak, sasaran stop loss / keuntungan dengan kaedah penyesuaian parameter untuk mencari optimum.
Tambah penunjuk teknikal lain seperti Bollinger Bands untuk pengesanan julat, MACD untuk mengesan perbezaan dan lain-lain untuk meningkatkan ketepatan isyarat.
Menggabungkan isyarat asas dan isyarat yang didorong oleh peristiwa untuk mengelakkan kehilangan berhenti yang dicetuskan oleh berita negatif.
Mengoptimumkan pengurusan wang dengan kuantiti tetap, kaedah peratusan tetap untuk mengawal risiko setiap perdagangan.
Strategi ini menunjukkan operasi yang lancar, penghakiman yang tepat dan peraturan perdagangan yang ketat, mewakili salah satu teknik perdagangan kuantitatif yang lebih berkesan. Tetapi analisis teknikal sahaja mempunyai batasan dalam membaca pasaran, jadi penambahbaikan lanjut terletak pada menggabungkan lebih banyak penunjuk dan isyarat asas / peristiwa, mengoptimumkan tahap stop loss / mengambil keuntungan dan mekanisme pengurusan wang.
/*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("Advanced Strategy with Conditional Stop Loss", overlay=true) // Parameters ma_length_20 = 20 ma_length_44 = 44 ma_length_100 = 100 rsi_length = 14 volume_length = 10 profit_target = 1.15 // 15% above the buy price stop_loss_target = 0.97 // 3% below the buy price wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met // Indicators moving_average_20 = ta.sma(close, ma_length_20) moving_average_44 = ta.sma(close, ma_length_44) moving_average_100 = ta.sma(close, ma_length_100) rsi = ta.rsi(close, rsi_length) volumeAvg = ta.sma(volume, volume_length) // Variables to manage the wait period after a sell var int last_sell_candle = 0 // Update last sell candle if (strategy.position_size[1] > 0 and strategy.position_size == 0) last_sell_candle := bar_index // Trend identification uptrend = close > moving_average_20 above_ma20_by_1_percent = close > moving_average_20 * 1.01 ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44) close_near_high = (close >= high * 0.993) and (close <= high) // Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter) can_buy_after_cross = ma_cross and close > high[1] can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high // Entry if (buy_condition and strategy.position_size == 0) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.position_size > 0) // Profit target profit_level = strategy.position_avg_price * profit_target strategy.exit("Take Profit", "Buy", limit=profit_level) // Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price stop_loss_level = strategy.position_avg_price * stop_loss_target if (low < stop_loss_level) strategy.close("Buy", comment="Stop Loss") // Plotting plot(moving_average_20, color=color.green, title="20-Day Moving Average") plot(moving_average_44, color=color.blue, title="44-Day Moving Average") plot(moving_average_100, color=color.red, title="100-Day Moving Average")