
Esta estratégia utiliza principalmente a combinação de 5 dias de RSI e 200 dias de média móvel para formar sinais de decisão de negociação, pertence a estratégia de portfólio de indicadores técnicos. Seu principal princípio de negociação é: quando o preço funciona para ultrapassar a área de sobrecompra, o sinal é vendido; quando o preço cai para a área de sobrevenda, o sinal é comprado. A maior vantagem da estratégia é que o sinal da estratégia é mais claro e o risco de retorno é menor.
Esta estratégia utiliza principalmente a combinação do indicador RSI de 5 dias com a média móvel de 200 dias para determinar as áreas de sobrevenda e sobrevenda em que os preços operam e formar decisões de negociação:
O RSI de 5 dias determina a região de sobrecompra e sobrevenda em que o preço está operando. A linha de sobrecompra é definida como 72, e a região de sobrevenda é definida como 30. O RSI gera um sinal de compra quando o indicador passa de 30 para cima; O RSI gera um sinal de venda quando o indicador passa de 72 para baixo.
A média móvel de 200 dias determina a direção da tendência da linha média do preço. Quando o preço está abaixo da linha média de 200 dias, é a fase de queda do preço; Quando o preço está acima da linha média de 200 dias, é a fase de alta.
Em combinação com os julgamentos 1 e 2, a estratégia ialult vende quando o indicador RSI de 5 dias supera e quebra 72 e compra quando o RSI de 5 dias quebra 30 e o preço está abaixo da linha média de 200 dias.
Os sinais de estratégia são mais claros, usando a região de julgamento do indicador RSI para determinar sinais de supercompra e supervenda.
A linha média diária de 200 dias determina a direção da grande tendência, evitando operações de contracorrente.
Pode-se definir o número máximo de posições, o que ajuda a controlar o risco.
Os parâmetros da estratégia têm muito espaço para otimização, podendo ser ajustados os parâmetros RSI e os parâmetros da linha média.
O risco de retirada é menor e a estratégia de controle eficaz é a retirada máxima.
Usando apenas o indicador RSI e o indicador de linha média, o sinal de estratégia pode ser instável, existindo o risco de perda de compra e venda em mercados de turbulência de cabeça vazia.
Otimizar e testar os parâmetros do RSI e os parâmetros da linha média para obter melhores resultados estratégicos.
Pode-se introduzir outros indicadores ou modelos de julgamento para otimizar os sinais de estratégia, como a introdução de indicadores de taxa de flutuação, julgamentos de aprendizagem de máquina, etc.
Utilize mais combinações de indicadores, como MACD, KD, índice de taxa de flutuação, etc.
Aumentar o julgamento de modelos de aprendizagem de máquina. Como o LSTM julga a estabilidade do sinal de negociação.
Aumentar os fatores de quantificação. Os fatores de determinação de capital, como mudanças no volume de transações, fluxo de capital, etc.
Parâmetros de estratégia de otimização, como o RSI, o parâmetro da linha média, etc.
Otimização de mecanismos de stop-loss, como stop-loss móvel, stop-loss de tempo, etc.
Esta estratégia usa principalmente o indicador RSI de 5 dias e o indicador de linha média de 200 dias para determinar a região de venda e venda de preços, formando um sinal de negociação, pertencente à estratégia de conjunto de indicadores técnicos. O sinal da estratégia é mais claro e o risco máximo de retirada é menor. Mas pode ser otimizado ainda mais para melhorar a eficácia da estratégia por meio de combinações de indicadores múltiplos e julgamentos de aprendizado de máquina.
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// ©chewyScripts.
//@version=5
strategy("96er RSI+200EMA Strategy + Alerts", overlay=true)
// This works best on a small account $100, with 50% of equity and up to 10 max open trades.
// 96% Profitable, turns $100 into $350 in 1 month. very few losses. super happy with it.
// So far it triples the account on a 1m chart in 1 month back testing on the SEI-USD pair.
// I did not test on FX pairs or other instruments.
// had some issues with the inputs not working so had to hard code some, also the lastClose var sometimes breaks and starts following every candle, not sure why.
in_r1 = input.int(5,"5 day input or RSI1")
in_openOrders = input.int(3,"max open orders")
in_lowerRSI = input.int(30,"RSI Lower")
in_upperRSI = input.int(72,"RSI Upper ")
in_emaperiod = input.int(200,"EMA Period")
in_buybreakout = input.int(50,"Buy breakout range")
in_buyTP = input.float(1.05,"Buy TP: 1+TP %, .05 seems to work well.")
in_sellTP = input.float(0.9850, "Sell TP: 1-TP%. .025 seems to work well. ")
simple int rsi5 = in_r1
// 3 rsi strategy , when all of them are overbought we sell, and vice versa
rsi7 = ta.rsi(close,rsi5)
lastClose = request.security(syminfo.tickerid, "D", close, lookahead = barmerge.lookahead_on)
rsi3 = ta.rsi(close[5],rsi5)
ma = ta.ema(close,in_emaperiod)
plot(rsi7,"5 Day RSI",color.red)
plot(lastClose,"Yesterdays Close",color.green)
plot(rsi3,"Previous 5th candles RSI",color.purple)
// sell condition
//sell = ta.crossunder(rsi7,70) and ta.crossunder(rsi14,70) and ta.crossunder(rsi21,70)
//buy condition
//buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and rsi3 <= in_upperRSI and strategy.opentrades < in_openOrders
//sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and rsi3 >= in_lowerRSI3 and strategy.opentrades < in_openOrders
buy = ta.crossover(rsi7,in_lowerRSI) and close < ma and close < lastClose and strategy.opentrades < in_openOrders
sell = ta.crossunder(rsi7,in_upperRSI) and close > ma and close > lastClose and strategy.opentrades < in_openOrders
var lastBuy = close
var lastSell = close
if (buy)
strategy.entry("BUY", strategy.long)
lastBuy := close
alert("Buy")
if ((close >= lastBuy*in_buyTP ) or rsi7 > in_buybreakout and close >= lastClose and (close >= lastClose*in_buyTP or close >= lastBuy*in_buyTP ) )
strategy.close("BUY", "BUY Exit")
alert("Buy Exit")
if (sell)
strategy.entry("SELL", strategy.short)
lastSell := close
alert("Sell")
if ( close < ma and (close <= lastSell*in_sellTP ) or (close < lastClose*in_sellTP) )
strategy.close("SELL", "Sell Exit")
alert("Sell Exit")