
В этой статье представлена многоочередная количественная торговая стратегия, основанная на относительно сильных показателях (RSI) и остановках. Эта стратегия использует показатели RSI для определения состояния перепродажи и перекупа рынка, открывает многоочередные позиции при перепродаже, а при перекупе - позиции. В то же время, стратегия использует процентные остановки для контроля риска.
В основе этой стратегии лежит индекс относительной силы (RSI). RSI - динамический индикатор колебаний, используемый для измерения величины изменения цены за определенный период времени.
RS = N天内上涨幅度的平均值 / N天内下跌幅度的平均值
RSI = 100 - 100 / (1 + RS)
Из них N - это временной цикл для расчета RSI, обычно 14.
Логика этой стратегии заключается в следующем:
Эта стратегия пытается захватить основную тенденцию к росту, открывая позиции в начале рыночного периода от медвежьего до бычьего, а в конце рынка - отступая.
В данной статье представлена многосторонняя количественная торговая стратегия, основанная на RSI и стоп-стоп. Эта стратегия использует RSI, чтобы открыть позицию сверхпокупки, используя при этом процентный риск контроля стоп-стоп. Это простая, практическая стратегия отслеживания тенденций, подходящая для изучения новичками. Но она также имеет некоторые ограничения, такие как плохая производительность в волатильных рынках, отсутствие гибкости в управлении стоп-стопами и позициями и т. Д.
/*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")