
A estratégia combina os indicadores EMA e RSI para identificar oportunidades de correção de curto prazo para o Bitcoin. Utiliza principalmente o EMA como gráfico principal e o RSI como indicador de julgamento auxiliar, procurando por formas de correção mais visíveis. Produz um sinal de negociação quando o preço cai ou se reinicia na linha de equilíbrio EMA.
A estratégia usa principalmente a linha EMA de 50 ciclos e o indicador RSI de 25 ciclos. A linha EMA é considerada o principal indicador gráfico, o RSI é usado para determinar o excesso de compra e venda e auxiliar na geração de sinais de negociação. Quando o preço se move de cima para baixo, o sinal de venda é gerado; Quando o preço se move de baixo para cima, o sinal de compra é gerado quando o indicador RSI mostra um sinal de não-excesso de compra.
Após a entrada de uma transação, a estratégia define simultaneamente a posição de parada e parada. A distância de parada pode ser definida, assumindo 5,1%; A distância de parada também pode ser definida, assumindo 9,6% . Isso pode efetivamente reduzir o valor máximo de perda individual.
Em geral, a estratégia baseia-se principalmente na forma da linha EMA, auxiliada pelo indicador RSI para evitar a sobrevenda e a sobrevenda, além de possuir um controle de parada de perda adequado para a captura de um ajuste de curto de BTC.
A estratégia tem as seguintes vantagens:
Os sinais de estratégia são mais claros e não geram muitos erros de entrada aleatórios. A combinação de EMA e RSI torna os sinais mais claros e confiáveis, e não depende apenas de um único indicador.
A estratégia de controle de parada de perda automática, que permite controlar efetivamente cada perda, é uma ferramenta de controle de risco muito importante.
Os parâmetros da estratégia podem ser otimizados. O comprimento do EMA, o comprimento do RSI e outros parâmetros podem ser ajustados, permitindo que o usuário encontre a melhor combinação de parâmetros para diferentes mercados.
A estratégia permite a retrospectiva. Pode-se definir um intervalo de tempo de retrospectiva diretamente na estratégia, para verificar a estratégia.
A estratégia também apresenta alguns riscos, principalmente em relação aos seguintes aspectos:
BT Bitcoin mercado é violento, o stop loss pode ser ultrapassado. Apesar da estratégia de definir o stop loss, mas no Bitcoin grande mercado, o preço de movimento é maior, a linha de stop loss pode ser ultrapassado diretamente.
Risco de retração. A estratégia não considera o controle de retração global. A estratégia produzirá uma certa retração se houver um ajuste de longo prazo.
O efeito do sinal é fraco sob o cenário geral. Em um cenário geral comparativo selvagem, o preço do BTC terá um movimento de onda maior e mais longo. Nesse caso, o efeito do sinal de curto prazo será fraco e fácil de ser manipulado.
Os riscos podem ser controlados e mitigados através das seguintes medidas:
A largura de suspensão apropriada. Se for o caso, a distância de suspensão apropriada pode ser ampliada, por exemplo, para cerca de 10%, para evitar que a suspensão seja muito fácil de ser quebrada.
Em combinação com outros indicadores filtrados. Indicadores de tendências, como o alinhamento linear, podem ser adicionados, evitando a utilização da estratégia em situações de ajuste de longo prazo.
Otimizar o conjunto de parâmetros. Pode testar a configuração de parâmetros em diferentes fases do mercado, criar várias combinações de parâmetros e alternar os parâmetros quando a situação for grave para melhorar a qualidade do sinal.
A estratégia também tem espaço para uma maior otimização, que pode ser iniciada em vários aspectos:
Aumentar o controle de retração global. Pode-se definir a taxa máxima de retração, como 20%, e a estratégia de suspender a negociação quando essa retração é atingida, para evitar perdas excessivas.
Aumentar o controle da frequência de abertura de posições. Pode limitar o número de aberturas de posições por unidade de tempo da estratégia, como no máximo duas vezes por hora, evitando transações excessivamente frequentes.
Optimizar a configuração de parâmetros. Teste combinações de parâmetros em diferentes situações de mercado, crie vários modelos de parâmetros, selecione os parâmetros apropriados de acordo com a situação atual no disco rígido, para aumentar a eficácia da estratégia.
A estratégia pode ser usada com outras combinações de indicadores, como tendências e volatilidade, para formar uma base mais abrangente e confiável para a entrada no sistema de negociação.
Em geral, a estratégia se baseia principalmente na configuração de ajuste de curto prazo do BTC, utilizando EMA e RSI para produzir um sinal de negociação mais claro, além de ter controle de stop loss e stop loss para aproveitar efetivamente as oportunidades de arbitragem trazidas pelo deslizamento de curto prazo do BTC. No entanto, a estratégia é mais adequada como auxiliar de linha curta, e a combinação de outras estratégias é mais eficaz e pode gerar ganhos extras mais estáveis.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
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/
// © mmoiwgg
//@version=4
strategy(title="EMA+RSI Pump & Drop Swing Sniper (With Alerts & SL+TP) - Strategy", shorttitle="EMA+RSI Swing Strategy", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=50, minval=0)
emarsiSource = input(close, title="EMA+RSI Source")
condSource = input(high, title="Long+Short Condition Source")
emaVal = ema(emarsiSource, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(emarsiSource, rsiLength)
//Safety
emaLength2 = input(title="Safety EMA Length", type=input.integer, defval=70, minval=0)
emaSource2 = input(close, title="Safety EMA Source")
ema = ema(emaSource2, emaLength2)
emaColorSource2 = close
emaBSource2 = close
// Backtest+Dates
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest end window
window() => time >= start and time <= finish ? true : false // create function - add window() to entry/exit/close
// Conditions
exit_long = crossover(emaVal, condSource)
longCond = crossunder(emaVal, condSource) and close > ema
//Stoploss + TakeProfit
sl = input(0.051, step=0.001, title="Stop Loss")
tp = input(0.096, step=0.001, title="Take Profit")
// Plots Colors
colors = emarsiSource > emaVal and rsiVal > 14 ? color.green : color.red
emaColorSource = input(close, title="Line Color Source")
emaBSource = input(close, title="Line Color B Source")
// Plots
plot(ema, color=emaColorSource2[1] > ema and emaBSource2 > ema ? color.green : color.red, linewidth=1)
plot(emaVal, color=emaColorSource[1] > emaVal and emaBSource > emaVal ? color.green : color.red, linewidth=3)
plotcandle(open, high, low, close, color=colors)
//Strategy Entry+Exits
strategy.entry("long",1,when=window() and longCond)
strategy.close("long",when=window() and exit_long)
strategy.exit("long tp/sl", "long", profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick)