
Strategi ini menggunakan teknologi silang dua rata-rata bergerak dan teknologi penembusan tekanan, menetapkan isyarat membeli dan isyarat menjual, untuk mewujudkan perdagangan automatik. Isyarat membeli dihasilkan apabila garis rata-rata jangka pendek melangkaui garis rata-rata jangka menengah dari bawah ke atas, dan harga saham menembusi titik tekanan.
Strategi ini menghasilkan isyarat dagangan berdasarkan beberapa penunjuk teknikal dan penilaian syarat:
Teknik silang dua garis rata: mengira purata bergerak mudah 20 dan 44 hari, menilai bahawa pasaran berada dalam trend menaik apabila garis rata 20 hari melewati garis rata 44 hari, menghasilkan isyarat beli.
Teknik penembusan tahap tekanan: carta menunjukkan kedudukan di mana harga saham telah mendekati tetapi gagal memecahkan beberapa kali disebut titik tekanan. Apabila harga saham berjaya memecahkan titik tekanan, harga memasuki tahap kenaikan baru. Strategi ini menilai bahawa harga saham memecahkan harga tertinggi 0.7% pada hari perdagangan sebelumnya boleh dianggap sebagai titik tekanan.
Overbought Oversold RSI: Indeks yang agak kuat, menentukan pasaran sebagai penunjuk teknikal untuk overbought atau oversold. Strategi ini menetapkan tanda overbought apabila RSI 14 hari lebih besar daripada 50.
Analisis jumlah dagangan: Jumlah dagangan melebihi purata dagangan 10 hari yang lalu yang menunjukkan bahawa pasaran akan menjadi lebih kuat untuk membeli atau menjual.
Isyarat beli: isyarat beli dihasilkan apabila garis purata jangka pendek melintasi garis purata jangka menengah dan harga saham menembusi tahap tekanan, pasaran berada dalam keadaan overbuy, dan jumlah transaksi lebih tinggi daripada jumlah transaksi rata-rata 10 hari yang lalu.
Isyarat menjual: menetapkan standard stop loss, jika harga saham naik 15% daripada harga beli, stop loss; jika turun 3%, stop loss.
Strategi ini menggunakan pelbagai petunjuk teknikal untuk menilai struktur pasaran dan menghasilkan isyarat perdagangan secara automatik apabila terdapat trend yang ditunjukkan olehnya. Strategi ini adalah strategi perdagangan kuantitatif yang lebih matang dan lengkap.
Menggunakan teknik kesamaan garisan untuk menilai struktur pasaran dan menangkap trend pasaran secara stabil;
Menggabungkan analisis kuantiti dagangan untuk mengelakkan pembukaan kedudukan dalam penembusan palsu yang tidak sepadan dengan kuantiti dagangan;
Mekanisme penangguhan dan penangguhan kerugian yang disediakan untuk mengawal risiko dan ganjaran dalam satu dagangan dan mengelakkan kerugian yang lebih besar;
Secara keseluruhannya, strategi ini adalah tepat untuk menilai struktur pasaran, peraturan dagangan yang ketat, dan kawalan risiko di tempat, strategi kuantitatif yang berkesan.
Sistem dagangan dua hala sensitif kepada tetapan parameter, parameter perlu disesuaikan untuk tempoh masa yang berbeza;
Strategi untuk mengikuti trend semata-mata, tidak dapat bertindak balas terhadap peristiwa yang tidak dijangka, seperti kemalangan yang tidak dapat dielakkan di hadapan berita untung besar;
Walaupun penempatan stop loss telah ditetapkan, penempatan stop loss yang lebih banyak tidak dapat dielakkan apabila jumlah dagangan lebih banyak, dan terdapat risiko perbezaan tahap keuntungan.
Dalam jangka masa panjang, indikator-indikator teknikal yang memberi isyarat sering kali melepasi titik terbaik untuk membalikkan pasaran.
Kaedah pengoptimuman parameter boleh digunakan untuk mencari kombinasi parameter dua rata-rata terbaik untuk mengoptimumkan tahap stop loss;
Menambah penilaian indikator lain, seperti jangkauan pengiraan yang dijumpai oleh Brin, MACD yang dijumpai sebagai overbought dan oversold, dan meningkatkan masa isyarat;
Menambah penilaian asas atau berita untuk mengelakkan berita negatif yang besar daripada menyebabkan kerosakan;
Mengoptimumkan strategi pengurusan dana, seperti perdagangan kuantiti tetap, perdagangan peratusan dana tetap, dan lain-lain, untuk mengawal risiko tunggal.
Strategi ini secara keseluruhan berfungsi dengan lancar, membuat keputusan yang tepat dan peraturan perdagangan yang ketat, risiko terkawal, merupakan salah satu strategi kuantitatif yang lebih baik. Tetapi, strategi perdagangan aspek teknikal masih mempunyai batasan dalam penilaian struktur pasaran, ruang untuk pengoptimuman adalah dengan menambah penilaian indikator lain dan pertimbangan komprehensif aspek berita asas, selain itu lebih mengoptimumkan penyetempatan stop loss dan strategi pengurusan wang. Secara keseluruhan, strategi ini telah mencapai tahap yang tinggi sebagai strategi indikator teknikal, tetapi langkah seterusnya masih memerlukan pengoptimuman terus ke arah strategi kitaran keseluruhan pasaran yang didorong oleh mesej asas.
/*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")