Strategi ini adalah sistem trend berikut dinamik berdasarkan saluran purata bergerak berganda, digabungkan dengan mekanisme pengurusan risiko. Ia menggunakan dua Purata Moving Sederhana (SMA) untuk membina saluran dagangan, dengan jalur atas dikira menggunakan harga tinggi dan jalur bawah menggunakan harga rendah. Sistem ini menghasilkan isyarat masuk apabila harga penutupan kekal di atas jalur atas selama lima bar berturut-turut, dan isyarat keluar apabila harga jatuh di bawah jalur bawah selama lima bar berturut-turut atau kembali 25% dari titik tertinggi, mencapai penjejakan trend dinamik dan kawalan risiko.
Prinsip-prinsip utama melibatkan menangkap trend harga melalui saluran purata bergerak berganda dan mewujudkan mekanisme kemasukan dan keluar yang ketat: 1. Mekanisme kemasukan: Memerlukan harga untuk mengekalkan di atas jalur atas selama lima hari berturut-turut, memastikan kesinambungan trend dan kesahihan 2. Mekanisme Keluar: Bekerja pada dua peringkat - Trend Deviation Exit: Dihidupkan apabila harga jatuh di bawah band bawah selama lima hari berturut-turut, menunjukkan potensi pembalikan trend - Stop-Loss Exit: diaktifkan apabila harga kembali 25% dari titik tertinggi, mengelakkan kerugian berlebihan 3. Pengurusan Kedudukan: Menggunakan peratusan tetap ekuiti akaun untuk saiz kedudukan, memastikan peruntukan modal yang berkesan
Strategi ini membina sistem perdagangan trend berikut yang lengkap melalui saluran purata bergerak berganda, menggabungkan pengesahan kemasukan yang ketat dan mekanisme keluar berganda untuk mencapai penjejakan trend dan kawalan risiko yang berkesan. kekuatan strategi terletak pada logik pelaksanaannya yang jelas dan kawalan risiko yang komprehensif, walaupun ia memerlukan pengoptimuman parameter untuk persekitaran pasaran yang berbeza dan dapat ditingkatkan lagi melalui penapisan persekitaran pasaran dan pengesahan jangka masa berganda. Secara keseluruhan, ia mewakili strategi perdagangan kuantitatif yang strukturnya lengkap dan logiknya ketat, sesuai untuk digunakan di pasaran dengan trend yang jelas.
/*backtest start: 2025-01-02 00:00:00 end: 2025-01-09 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Parameters for Moving Averages upperMALength = input.int(10, title="Upper MA Length") lowerMALength = input.int(8, title="Lower MA Length") stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100 // Calculate Moving Averages upperMA = ta.sma(high, upperMALength) lowerMA = ta.sma(low, lowerMALength) // Plot Moving Averages plot(upperMA, color=color.red, title="Upper Moving Average") plot(lowerMA, color=color.green, title="Lower Moving Average") // Initialize variables var int upperCounter = 0 var int lowerCounter = 0 var float entryPrice = na var float highestPrice = na // Update counters based on conditions if (low <= upperMA) upperCounter := 0 else upperCounter += 1 if (high >= lowerMA) lowerCounter := 0 else lowerCounter += 1 // Entry condition: 5 consecutive bars above the Upper MA if (upperCounter == 5 and strategy.position_size == 0) strategy.entry("Long", strategy.long) highestPrice := high // Initialize highest price // Update the highest price after entry if (strategy.position_size > 0) highestPrice := na(highestPrice) ? high : math.max(highestPrice, high) // Exit condition: 5 consecutive bars below the Lower MA if (lowerCounter == 5 and strategy.position_size > 0) strategy.close("Long", comment="Exit: 5 bars below Lower MA") // Stop-loss condition: Exit if market closes below 25% of the highest price since entry stopLossCondition = low < highestPrice * (1 - stopLossPercent) if (stopLossCondition and strategy.position_size > 0) strategy.close("Long", comment="Exit: Stop Loss")