Média móvel RSI Criptocorrelação Estratégia de tendência

Autora:ChaoZhang, Data: 2023-12-12 10:26:21
Tags:

img

Resumo

Esta é uma estratégia de tendência de criptomoeda de longo prazo que combina média móvel, índice de força relativa (RSI) e correlação de mercado para identificar tendências de preços de médio a longo prazo, estabelecer posições quando as tendências começam, piramidizar ao longo das tendências e lucrar quando os sinais de inversão de tendência são detectados.

Estratégia lógica

A estratégia baseia-se principalmente em três indicadores:

  1. Índice de Força Relativa (RSI): para identificar condições de sobrecompra e sobrevenda.

  2. Média móvel simples (SMA): Média móvel de 9 dias do preço de fechamento para determinar a direção da tendência.

  3. Correlação de mercado: utilizar a criptocap total como referência para calcular a correlação com o instrumento de negociação, substituindo as barras originais por barras de correlação para melhorar a qualidade do sinal.

Em especial, as regras de negociação são as seguintes:

Entrada longa: Quando o RSI cruza acima de 51 e o preço de fechamento está acima da SMA de 9 dias.

Entrada curta: Quando o RSI cruza abaixo de 49 e o preço de fechamento está abaixo da SMA de 9 dias.

Tome lucro/Stop loss: 1%/0,1% para longs, 0,05%/0,03% para shorts.

Há também uma condição de tempo que limita o período de negociação.

Análise das vantagens

  1. A combinação de indicadores de tendência e de sobrecompra/supervenda permite efetivamente acompanhar as tendências a médio e longo prazo.

  2. A correlação de mercado melhora a qualidade do sinal, evitando tendências falsas.

  3. A obtenção de lucros razoáveis e a suspensão de perdas evitam perdas maiores.

  4. O período de negociação personalizável adapta-se às diferentes condições do mercado.

Análise de riscos

  1. Ineficaz em mercados voláteis de curto prazo.

  2. A reversão do índice de referência pode provocar saídas atrasadas dos instrumentos de negociação.

  3. Perde oportunidades de reversão quando só faz longs/shorts.

Soluções:

  1. Adicionar indicadores de curto prazo, por exemplo, KC, BOLL para detecção de regimes de mercado e paradas.

  2. Melhorar a análise dos parâmetros de referência para as saídas oportunas.

  3. Comércio de instrumentos de dois lados para capturar reversões.

Orientações de otimização

  1. Ajuste de parâmetros do RSI, SMA, tomada de lucro/stop loss com base em estatísticas de mercado.

  2. Avaliar mais combinações de referência/negociação com maior correlação e liquidez.

  3. Combinar com outras estratégias, utilizando esta para participações de médio a longo prazo.

Conclusão

Esta é uma estratégia de seguimento de tendências de criptomoedas de médio a longo prazo otimizada e amplamente adaptável. Ele combina efetivamente a tendência, o impulso e a análise de correlação para melhorar as decisões de comércio. O ajuste adequado de parâmetros e o uso composto podem melhorar muito sua estabilidade e lucratividade. Os longos períodos de retenção também se adequam à natureza altamente volátil e difícil de capturar com precisão dos mercados de criptomoedas.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
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/
// © exlux99

//@version=4
strategy(title = "Crypto swing correlation", overlay = true,  pyramiding=1,initial_capital = 1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03)

//time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

useCorrelation    = input(true, title="Use Correlation candles?")

symbol = input("BTC_USDT:swap", type=input.symbol)

haClose = useCorrelation ? security(symbol, timeframe.period, close) : close
haOpen  = useCorrelation ? security(symbol, timeframe.period, open) : open
haHigh  = useCorrelation ? security(symbol, timeframe.period, high) : high
haLow   = useCorrelation ? security(symbol, timeframe.period, low) : low

length = input( 50 )
overSold = input( 51 )
overBought = input( 49 )

s = input(title="Source", defval="haClose", options=["haClose", "haOpen", "haHigh", "haLow"])

price = s == "haClose" ? haClose: s == "haOpen" ? haOpen : s == "haHigh" ? haHigh : s == "haLow" ? haLow : na

len = input(8, "Length Moving average", minval=1)
src = price
ma = sma(src, len)


vrsi = rsi(price, length)
long = crossover(vrsi, overSold) and time_cond and price > ma
short = crossunder(vrsi, overBought) and time_cond and price < ma


takeProfit_long=input(1.0, step=0.005)
stopLoss_long=input(0.1, step=0.005)
takeProfit_short=input(0.05, step=0.005)
stopLoss_short=input(0.03, step=0.005)

strategy.entry("long",1,when=long)
strategy.entry("short",0,when=short)

strategy.exit("short_tp/sl", "long", profit=close * takeProfit_long / syminfo.mintick, loss=close * stopLoss_long / syminfo.mintick, comment='LONG EXIT',  alert_message = 'closeshort')
strategy.exit("short_tp/sl", "short", profit=close * takeProfit_short / syminfo.mintick, loss=close * stopLoss_short / syminfo.mintick, comment='SHORT EXIT',  alert_message = 'closeshort')


Mais.