
Artikel ini memperkenalkan strategi perdagangan kuantitatif multihead berdasarkan indeks yang agak kuat (RSI) dengan hentian. Strategi ini menggunakan indikator RSI untuk menilai keadaan pasaran yang terlalu banyak dan terlalu banyak, membuka kedudukan multihead ketika oversold, dan meletakkan posisi yang lebih rendah ketika oversold. Strategi ini juga menggunakan peratusan hentian untuk mengawal risiko.
Inti strategi ini adalah indeks kekuatan relatif ((RSI)). RSI adalah penunjuk pergerakan dinamik yang digunakan untuk mengukur perubahan harga dalam jangka masa tertentu. Rumus pengiraan adalah:
RS = N天内上涨幅度的平均值 / N天内下跌幅度的平均值
RSI = 100 - 100 / (1 + RS)
Di antaranya, N adalah tempoh masa untuk mengira RSI, biasanya mengambil 14 .
Logik strategi ini adalah seperti berikut:
Strategi ini cuba untuk membuka kedudukan di awal pasaran dengan bertukar menjadi lembu, dan menutup posisi pada akhir pasaran lembu, untuk menangkap trend kenaikan utama.
Artikel ini memperkenalkan strategi perdagangan kuantitatif berbilang arah berdasarkan RSI dan hentian. Strategi ini menggunakan RSI untuk menjual dan membeli isyarat untuk membuka posisi, sambil menggunakan risiko kawalan hentian peratusan. Ini adalah strategi trend pelacakan yang mudah dan sesuai untuk pelajar pemula. Tetapi ia juga mempunyai beberapa kelemahan, seperti prestasi pasaran yang tidak stabil, hentian dan kekurangan fleksibiliti dalam pengurusan kedudukan.
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Strategy (Long)", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = ta.rsi(price, length)
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)
// *** Signals ***
enter_long = ta.crossover(vrsi, overSold)
enter_short = ta.crossunder(vrsi, overBought)
close_long = ta.crossunder(vrsi, overBought)
close_short = ta.crossunder(vrsi, overBought)
// *** Risk management ***
entry_price = close
percent_diff = input(5)
stop_loss_price_long = (1 - percent_diff / 100.) * entry_price
stop_loss_price_short = (1 + percent_diff / 100.) * entry_price
// *** Positions ***
if enter_long and strategy.position_size == 0
strategy.entry("Long", strategy.long)
strategy.exit("SL Long", "Long", stop = stop_loss_price_long)
if enter_short and strategy.position_size == 0
strategy.entry("Short", strategy.short, qty=.001)
strategy.exit("SL short", "Short", stop = stop_loss_price_short)
if close_long
strategy.close("Long", "Exit Long")
if close_short
strategy.close("Short", "Exit Short")