Reversão do pivô atualizada somente para longo - uma estratégia de duplo impulso

Autora:ChaoZhang, Data: 2023-12-25 17:47:11
Tags:

img

Resumo

Esta é uma estratégia de negociação quantitativa de longo prazo que combina as vantagens da reversão do ponto de pivô e das estratégias de média móvel menor quadrado. Segue a tendência principal durante um mercado de alta e determina os sinais de reversão após observar o trilho superior do ponto de pivô para ir longo. Ao mesmo tempo, requer que o preço de fechamento esteja acima da média móvel menor quadrada antes de abrir posições longas para tornar a estratégia mais estável.

Estratégia lógica

A estratégia integra a inversão do ponto de pivô e as estratégias de média móvel menos quadrada. A estratégia de inversão do ponto de pivô calcula os preços mais altos e mais baixos durante um certo número de dias de negociação para obter os trilhos superior e inferior. Quando os preços atravessam o trilho superior, é julgado como um sinal de reversão. A média móvel de menores quadrados é um indicador de tendência que pode aproximar melhor os preços. Esta estratégia é longa quando o trilho superior do ponto de pivô é formado e o preço de fechamento é maior que a linha menor quadrada.

Especificamente, a estratégia primeiro calcula o preço mais alto das últimas 3 barras e o preço mais baixo das últimas 16 barras para obter os trilhos de ponto de pivô superior e inferior. Ele vai longo quando o trilho superior é formado. Quando o próximo trilho inferior é formado, ele fecha as posições. Ao mesmo tempo, requer que o preço de fechamento seja maior que a média móvel de mínimos quadrados de 20 dias antes de abrir posições longas.

Vantagens

  1. Combina os pontos fortes de duas estratégias para decisões comerciais mais estáveis e fiáveis

  2. A estratégia de ponto pivô avalia os pontos de reversão, enquanto a LSMA filtra falsos breakouts, reduzindo os riscos comerciais

  3. Só dura muito tempo, de acordo com as expectativas psicológicas da maioria das pessoas

  4. Lógica de estratégia simples e clara, fácil de compreender e otimizar

  5. Frequência de negociação moderada, adequada para operações de médio a longo prazo

Análise de riscos

  1. Incapacidade de aproveitar oportunidades em rápido declínio

  2. Existe um certo atraso, pode perder algumas oportunidades de ascensão

  3. Perdas maiores quando a tendência do mercado se inverte

Soluções:

  1. Redução adequada do ciclo de cálculo para reduzir o atraso

  2. Ajustar os parâmetros de MA para otimizar a participação

  3. Adicionar stop loss para reduzir a perda única

Orientações de otimização

  1. Adicionar vários indicadores de tendência para melhorar a precisão

  2. Incorporar a previsão de aprendizagem de máquina para orientar decisões

  3. Combinar indicadores de volatilidade para controlar o dimensionamento das posições

  4. Otimizar parâmetros para melhorar a taxa de vitória

  5. Teste dados de período de tempo mais longo para verificar a estabilidade

Resumo

Esta estratégia integra os pontos fortes da reversão de ponto de pivô e estratégias LSMA para controlar riscos ao julgar reversões de tendência. Com uma estrutura simples para fácil compreensão e teste, é perfeito para os iniciantes aprenderem e praticarem.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@author exlux99

strategy(title = "Pivot Reversal Upgraded long only", overlay = true,  pyramiding=1,initial_capital = 100, 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.1)
/////////////
//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 = 2031, title = "To Year", minval = 1970)

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

length = input(title="Length MA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, length, offset)

//LSMA
leftBars = input(3)
rightBars = input(16)
swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond and time_cond? true : (le[1] and high > hprice ? false : le[1])
//leverage
multiplier=input(1.0, step=0.5)
g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk     = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)

//entry
strategy.entry("long", strategy.long,c, when=le and close > lsma, comment="long", stop=(hprice + syminfo.mintick) * multiplier)

    
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
strategy.close("long", when=se)




Mais.