Estratégia de pontos de índice


Data de criação: 2023-11-06 14:40:26 última modificação: 2023-11-06 14:40:26
cópia: 0 Cliques: 604
1
focar em
1617
Seguidores

Estratégia de pontos de índice

Visão geral

A estratégia é baseada em um cálculo de diferença k entre o ROC e o SMA, em seguida, a k é adicionado a um certo comprimento, com base no valor positivo e negativo da soma de adição como base para o julgamento de fazer mais curto prazo. A estratégia é uma estratégia de negociação de curta linha.

Princípio da estratégia

A estratégia primeiro calcula a média SMA e o indicador de ROC com a duração de l, e depois calcula o diferencial k entre o preço de encerramento atual e o SMA. Em seguida, calcula a acumulação e a soma de dias s de k. Quando a soma é maior que 0 e menor que 0, a soma é baixa.

O código diz o seguinte:

  1. Mediano SMA de comprimento l a

  2. Calcule o indicador de ROC de comprimento l r

  3. Calcule a diferença entre o preço de fechamento atual e a linha média do SMA k = close - a

  4. A soma de k em s dias é sum.

  5. Se sum>0, faça mais; se sum, faça um espaço.

  6. Condições de posição equilibrada: sum < 0 para posições excedentárias; sum < 0 para posições equilibradas

A chave para esta estratégia é calcular a soma e o agregado de k, usando a soma positiva e negativa como sinal de negociação. Quando o preço está subindo no período mais recente de k> 0, então faça mais; Quando o preço está caindo no período mais recente de k < 0, então faça zero.

Análise de vantagens

Esta é uma estratégia de negociação de linha curta mais simples e prática, com as seguintes vantagens:

  1. O conjunto de indicadores utilizados é simples, fácil de entender e de implementar.

  2. Filtração de variações de indicadores permite encontrar oportunidades de negociação mais precisas.

  3. A acumulação dos valores de diferença permite uma captura mais precisa das tendências das linhas curtas.

  4. Os parâmetros l e s podem ser ajustados de acordo com o mercado, adaptando-se a diferentes ciclos.

  5. A estratégia é clara, o processo é simples, fácil de modificar e de otimizar.

  6. A eficiência do uso dos fundos permite a realização de transações frequentes e de curta duração.

Análise de Riscos

A estratégia também apresenta alguns riscos, incluindo:

  1. A transação em linha curta é muito arriscada e pode levar a perdas.

  2. A configuração inadequada dos parâmetros pode levar a negociações excessivamente frequentes ou a oportunidades perdidas.

  3. A falta de capacidade para lidar com a reversão da tendência e o risco de perda maior ao ultrapassar o stop loss.

  4. Os parâmetros precisam ser monitorados e ajustados com frequência, dependendo mais da experiência dos traders.

  5. A frequência das transações pode aumentar os custos e os pontos de deslizamento das transações, afetando os lucros.

As soluções para os riscos incluem:

  1. Ajustar os parâmetros de forma apropriada para reduzir a frequência de transações.

  2. Combinado com indicadores de tendência, identifica uma reversão de tendência.

  3. Optimizar a estratégia de stop loss e controlar as perdas individuais.

  4. Adição de módulos de otimização de parâmetros de automação, reduzindo a dependência da experiência do comerciante.

  5. Otimizar módulos de encomenda e reduzir custos de transação.

Direção de otimização

A estratégia pode ser melhorada em alguns aspectos:

  1. Otimização de métodos de cálculo de parâmetros para tornar os parâmetros mais adaptáveis. Pode-se considerar o uso de algoritmos genéticos, métodos de otimização dinâmica de parâmetros, como a cadeia de Markov.

  2. Combinando mais indicadores e condições de filtragem, melhorar a qualidade do sinal de negociação.

  3. Melhorar as estratégias de stop loss, como a introdução de stop loss móvel, stop loss médio, etc., para controlar perdas únicas.

  4. Optimizar as estratégias de gestão de fundos, tais como a gestão de pontos de risco, distribuição de fundos em proporções fixas, etc., para controlar o risco global.

  5. Otimização do módulo de pedidos, uso de algoritmos como rastreamento de tendências e controle de pontos de deslizamento, reduzindo os custos de transação.

  6. Adição de módulos de otimização de feedback automático para avaliar rapidamente o impacto de diferentes parâmetros na estratégia.

  7. Adicionar módulos de avaliação de indicadores quantitativos, avaliar a qualidade do sinal de negociação e melhorar a estabilidade da estratégia.

Com essas melhorias, a estratégia pode ser transformada em um sistema de negociação de linha curta mais abrangente, inteligente, estável e controlado.

Resumir

Em geral, a estratégia gera sinais de negociação por meio de um simples cálculo de indicadores, é clara e fácil de implementar e pertence à típica estratégia de negociação de linha curta. Com a otimização adicional de parâmetros, stop loss, gerenciamento de fundos, etc., pode reduzir o risco e aumentar a estabilidade, tornando-a uma das estratégias de negociação quantitativa que vale a pena usar.

Código-fonte da estratégia
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
    strategy.entry("Long", strategy.long, oca_name="Long",  comment="Long")
else
    strategy.cancel(id="Long")
if sum<0
    strategy.entry("Short", strategy.short, oca_name="Short", comment="Short")
else
    strategy.cancel(id="Short")
strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0

//shortCondition = sum<0
//exitshort = sum>0

//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)