
Este artigo descreve uma estratégia de negociação quantitativa de múltiplos pontos baseada em índices relativamente fortes (RSI) e paradas. A estratégia usa o RSI para determinar o estado de sobrevenda e sobrevenda no mercado, abrindo posições de múltiplos pontos quando está em sobrevenda e posições de paragem quando está em sobrevenda.
O núcleo da estratégia é o índice de força e fraqueza relativa (RSI). O RSI é um indicador de oscilação dinâmica usado para medir a variação de preços em um período de tempo. Sua fórmula de cálculo é:
RS = N天内上涨幅度的平均值 / N天内下跌幅度的平均值
RSI = 100 - 100 / (1 + RS)
Destes, N é o período de tempo para calcular o RSI, geralmente tomando 14.
A lógica da estratégia é a seguinte:
A estratégia tenta abrir posições no início do período de baixa para alta e fechar posições no final do período de alta para captar as principais tendências de alta.
Este artigo descreve uma estratégia de negociação quantitativa multi-cabeça baseada no RSI e no stop loss. Esta estratégia usa o sinal de venda e venda de RSI para abrir posições e, ao mesmo tempo, usa o risco de controle de parada percentual. Esta é uma estratégia de rastreamento de tendência simples e prática, adequada para os iniciantes.
/*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")