Estratégia de negociação de reversão quantitativa de fundo inteligente

Autora:ChaoZhang, Data: 2023-12-08 10:45:49
Tags:

img

Resumo

Esta estratégia é uma estratégia de negociação de reversão quantitativa de fundo inteligente projetada para criptomoedas. Utiliza tecnologia multi-tempo e indicador RSI adaptativo para identificar potenciais fundos de curto prazo do mercado e entra para a reversão perto do fundo para alcançar retornos excessivos.

Princípio da estratégia

Em primeiro lugar, a estratégia emprega a mudança no preço e no volume de negociação para calcular o indicador RSI adaptativo, julgando possíveis fundos de curto prazo do mercado.

Especificamente, o indicador de RSI adaptativo é calculado da seguinte forma: primeiro calcule a mudança de preço para cada candelabro, em seguida, calcule o volume de negociação desse candelabro. Multiplique os dois para obter um momento quantificado para esse candelabro. Aplique o cálculo do RSI em um momento quantificado e tome a média de período N para obter o indicador final de RSI adaptativo. Este indicador pode identificar claramente os fundos do mercado.

Além disso, esta estratégia incorpora tecnologia de quadros de tempo múltiplos para julgar os sinais em um período de tempo mais longo, evitando interferências do ruído do mercado de curto prazo.

Análise das vantagens

A maior vantagem desta estratégia reside na identificação precisa dos fundos de curto prazo do mercado utilizando o indicador RSI adaptativo, que fornece sinais eficazes para a negociação de reversão de fundo.

Em comparação com os indicadores tradicionais do RSI, o indicador adaptativo do RSI introduz um ímpeto quantificado no seu cálculo, tornando-o mais sensível ao mercado de criptomoedas em rápida mudança e, portanto, capaz de identificar os fundos mais cedo e com mais precisão, proporcionando uma vantagem para a negociação de reversão de fundos.

Além disso, esta estratégia combina as vantagens tanto do seguimento da tendência quanto da negociação de reversão. Em condições de mercado incertas, pode lucrar com a negociação de reversão. Em um mercado de alta clara, também pode seguir a tendência.

Análise de riscos

O principal risco desta estratégia é que a precisão da identificação do fundo não pode ser garantida a 100%. Pode haver enormes flutuações irracionais no mercado a curto prazo. Se o fundo se estender mais para baixo, grandes riscos de stop loss serão enfrentados.

Além disso, podem ocorrer divergências entre diferentes prazos.

Para controlar os riscos, esta estratégia adota mecanismos de stop loss relativamente conservadores e obtém lucros em lotes, otimizando progressivamente os retornos.

Orientações de otimização

Esta estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros do RSI adaptativo para melhorar a precisão no julgamento do fundo do mercado.

  2. Adicionar outros indicadores de confirmação para evitar sinais falsos, como a combinação com indicadores de volume, etc.

  3. Otimizar o mecanismo de stop loss para permitir um intervalo de stop loss mais amplo, assegurando simultaneamente uma boa relação risco/recompensa, a fim de captar mais lucros de tendência.

  4. Otimizar a selecção de prazos para garantir a fiabilidade do sinal numa escala maior.

  5. Teste essa estratégia em diferentes produtos de criptomoedas e selecione os de melhor desempenho.

Resumo

Esta estratégia de negociação de reversão de fundo quantitativa inteligente identifica potenciais fundos de curto prazo usando o indicador de RSI adaptativo e a tecnologia de timeframe múltiplo. Sua natureza de reversão permite lucros excessivos em condições de mercado incertas, ao mesmo tempo em que é capaz de seguir tendências claras. Com otimizações contínuas, esta estratégia tem o potencial de gerar sinais de negociação mais confiáveis e alcançar lucros constantes a longo prazo.


/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
strategy(title = "Low Scanner strategy crypto", overlay = false, pyramiding=1,initial_capital = 1000, 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.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
leng=1
p1=close[1]
min=input(10)
len55 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
//taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/
tf3 = input("60", type=input.resolution)
ti = change( time(tf3) ) != 0
T_c = fixnan( ti ? close : na )

vrsi = rsi(cum(change(T_c) * volume), leng)
pp=wma(vrsi,len55)

d=(vrsi[1]-pp[1])
min1 =input(1)
len100 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min1 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
x=ema(d,len100)
//
zx=x/-1
col=zx > 0? color.lime : color.orange
plot(zx,color=col,linewidth=1)
//

tf10 = input("60", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"])

length = input(24, title = "Period", type = input.integer)
shift = input(1, title = "Shift", type = input.integer)

hma(_src, _length)=>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length)=>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)


a = security(syminfo.tickerid, tf10, hma(close, length))
b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift])
//plot(a,color=color.gray)
//plot(b,color=color.yellow)
close_price = close[0]
len = input(25)

linear_reg = linreg(close_price, len, 0)


//plot(linear_reg, color=color.blue, title="LR", linewidth=3)

buy=crossover(linear_reg, b) 
sell=crossunder(linear_reg, b) 
//
l = crossover(zx,0) or buy
        
if l 
    strategy.entry("buy", strategy.long)

per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=10, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=1, minval=0.01)
tp2=input(title=" Take profit2", defval=2, minval=0.01)
tp3=input(title=" Take profit3", defval=3, minval=0.01)
tp4=input(title=" Take profit4", defval=5, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Mais.