Estratégia de previsão de preços baseada em logaritmo


Data de criação: 2023-12-20 14:40:23 última modificação: 2023-12-20 14:40:23
cópia: 0 Cliques: 660
1
focar em
1621
Seguidores

Estratégia de previsão de preços baseada em logaritmo

Visão geral

A estratégia utiliza uma função logarítmica para simular a variação de preços e calcular o valor z com base no diferencial padrão e na média do volume de transações, como uma função logarítmica de entrada de parâmetros, para prever o preço futuro.

Princípio da estratégia

  1. Calcule o valor do ROC do preço de fechamento, acumulando o valor positivo para volume_pos e o valor negativo para volume_neg
  2. Calcule a diferença entre volume_pos e volume_neg como net_volume
  3. Calcule a diferença padrão net_volume net_std e a média net_sma
  4. Calcule net_sma dividido por net_std para obter z
  5. Utilizando o preço de fechamento, o diferencial padrão de 20 dias do preço de fechamento e o valor z como parâmetros, introduz a função logistic para prever o preço do próximo período
  6. Faça mais quando o preço previsto é 1,005 vezes maior que o preço real atual e leve quando é inferior a 0,995 vezes

Análise de vantagens

A estratégia combina informações estatísticas sobre o volume de transações e previsões de preços de funções logarítmicas.

Os benefícios são:

  1. A diferença de volume de transações é usada para avaliar o sentimento do mercado.
  2. A função logarítmica se encaixa na curva de variação de preço, melhor para a previsão
  3. A estratégia é simples e fácil de implementar.

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Indicadores de volume de transações estão atrasados e não refletem as mudanças no mercado em tempo hábil
  2. A previsão de funções logarítmicas não é necessariamente exata e é fácil de enganar
  3. A falta de medidas de suspensão de prejuízos e a incapacidade de controlar as perdas

O risco pode ser reduzido através das seguintes medidas:

  1. Reliabilidade do sinal de volume de transação em combinação com outros indicadores
  2. Optimizar os parâmetros das funções logarítmicas para melhorar a precisão da previsão
  3. Estabeleça um limite de perda para limitar o máximo de perdas por unidade e no total

Direção de otimização

A estratégia pode ser melhorada ainda mais:

  1. Otimização dinâmica de funções logarítmicas usando métodos de aprendizagem de máquina
  2. Administração de posições ajustadas em combinação com os indicadores de volatilidade dos preços das ações
  3. Adição de filtro Bayes, sem efeito de filtro
  4. Combinação de estratégias de ruptura para entrar em campo em pontos de ruptura
  5. Usar regras de correlação para extrair preços de desvio de sinais

A combinação de vários métodos pode aumentar ainda mais a estabilidade e a rentabilidade da estratégia.

Resumir

A estratégia integra indicadores de volume de transação e previsões de funções logarítmicas, formando um conceito de negociação quantitativa exclusivo. Com otimização contínua, a estratégia pode se tornar um sistema de negociação programado eficiente e estável. Combinado com a aprendizagem de máquina e a teoria de otimização de portfólio, estamos confiantes em melhorar ainda mais o seu desempenho comercial.

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

//@version=4
strategy("Logistic", overlay=true )

volume_pos = 0.0
volume_neg = 0.0
roc = roc(close, 1)

for i = 0 to 100
    if (roc > 0)
        volume_pos := volume
    else
        volume_neg := volume
    
volume_net = volume_pos - volume_neg
net_std    = stdev(volume_net, 100)
net_sma    = sma(volume_net, 10)
z          =  net_sma / net_std
std        = stdev(close, 20)

logistic(close, std, z) =>
    m = (close + std)
    a = std / close
    pt = m / ( 1 + a*exp(-z))
    pt
    
    
pred = logistic(close, std, z)

buy = pred > close * 1.005
sell = pred < close * 0.995

color = strategy.position_size > 0? #3BB3E4 : strategy.position_size == 0? #FF006E : #6b6b6b
barcolor(color)


if (buy == true)
    strategy.entry("Long", strategy.long, comment="Open L")
    
if (sell == true)
    strategy.close("Long", comment="Close L")