Estratégia de negociação quantitativa de Gandalf baseada na linha mediana


Data de criação: 2023-10-30 10:27:40 última modificação: 2023-10-30 10:33:17
cópia: 0 Cliques: 864
1
focar em
1702
Seguidores

Estratégia de negociação quantitativa de Gandalf baseada na linha mediana

Visão geral

A estratégia de negociação quantitativa de Gandalf é uma estratégia de acompanhamento de tendências baseada em linhas médias. Ela julga a direção da tendência atual, calculando a média ponderada, as linhas médias e os preços intermediários reais, a fim de encontrar um ponto de entrada mais vantajoso. Quando uma reversão de tendência é detectada, ela é rapidamente eliminada.

Princípio da estratégia

A lógica central da estratégia de Gandalf é comparar a média ponderada, a linha média e a relação de tamanho entre os preços médios reais para determinar a direção e a força da tendência atual.

O preço é calculado de acordo com os seguintes critérios:

  • Preço médio ponderado: ((preço máximo + preço mínimo + preço de fechamento + preço de fechamento) / 4
  • Linha de valor médio: ((o preço mais alto + o preço mais baixo) / 2
  • Preço intermediário da entidade: (preço de abertura + preço de fechamento) / 2

Na entrada, ele compara a média ponderada das duas primeiras linhas K, a relação de tamanho entre a linha de valor médio e o preço intermediário real, para determinar se corresponde com a característica de início de tendência.

Por exemplo, se a média ponderada estiver abaixo da linha média e o preço intermédio real também estiver abaixo da média ponderada, isso indica que o preço está caindo, o que é uma oportunidade para o shorting.

Quando a parada de perda sair, ele vai continuar a comparar as relações de tamanho destes preços, para determinar se a tendência está a ser sinais de reversão. Se a média ponderada é superior ao preço médio real, e a linha central também é inferior à média ponderada, indicando uma reversão de tendência, deve parar a perda imediatamente.

Através deste método de comparação de preços, a estratégia de Gandalf permite o julgamento e o acompanhamento de tendências. Ela pode encontrar um bom momento de entrada e pode detectar rapidamente uma reversão de tendência e, assim, parar.

Vantagens estratégicas

A estratégia de Gandalf tem as seguintes vantagens:

  1. Usando a linha média para determinar a direção da tendência, você pode filtrar eficazmente o ruído do mercado e bloquear as principais tendências.

  2. A combinação de condições de entrada e comparação de preços permite uma melhor avaliação do início da tendência.

  3. A condição de stop loss também usa a comparação de preços para determinar a reversão da tendência, permitindo a rápida parada de perdas e o controle do risco.

  4. A entrada é feita de forma individual, com condições e com preços ideais.

  5. Pode-se predefinir o número de paradas e limites de posição, para bloquear o lucro e controlar o risco de uma única transação.

  6. A estrutura do código é clara, simples, fácil de entender e modificar.

  7. Os parâmetros podem ser ajustados de acordo com as preferências de risco individuais, sendo fácil de otimizar.

  8. Aplica-se a variedades de tendência, obtendo lucros de tendência.

Em geral, a estratégia de Gandalf usa a linha média para avaliar a tendência e definir condições de stop loss para controlar eficazmente a tendência de rastreamento de risco, uma estratégia de rastreamento de tendência confiável.

Risco estratégico

A estratégia de Gandalf também tem alguns riscos a serem lembrados:

  1. Como uma estratégia de acompanhamento de tendências, quando as tendências não são visíveis ou as reversões são frequentes, ocorrem perdas menores.

  2. A falta de um bom ponto de inflexão da tendência pode levar a um aumento dos prejuízos.

  3. O que é que o governo está a fazer para evitar que a situação se deteriore?

  4. Dependendo da configuração dos parâmetros, diferentes variedades precisam de ajustar os parâmetros.

  5. A posição unilateral não pode ser utilizada para lucrar com a reversão.

  6. A taxa de falha das condições é alta e pode levar muito tempo para ser admitido.

Correspondentes medidas de gestão de riscos:

  1. O jogo é disputado em grupos, com pequenas posições, para controlar as perdas.

  2. Estabeleça uma linha de stop loss, um stop loss rápido ou um stop loss móvel para acompanhar o ponto de stop loss.

  3. Parâmetros de otimização, ajustados para a variedade atual. Pode auxiliar a avaliação de tendências com outros indicadores.

  4. A redução de custos pode ser obtida através da reposição de Martingale.

  5. A variedade de transações com tendência evidente, com lucro incrivelmente alto.

  6. Uma flexibilidade apropriada nas condições de admissão, tendo em conta a probabilidade de admissão.

Direção de otimização da estratégia

A estratégia de Gandalf também pode ser melhorada nos seguintes aspectos:

  1. Construção de indicadores de tendência, auxiliando a determinação do momento da reversão da tendência. Por exemplo, a inclusão de MACD, Brin e outros julgamentos.

  2. Adição de uma função de otimização discreta, para otimizar automaticamente os parâmetros e adaptá-los a mais variedades.

  3. Adicionar algoritmos de aprendizagem de máquina, usando o treinamento de dados históricos para determinar tendências em redes neurais ou modelos SVM.

  4. Aumentar o modo de travagem, como travagem móvel, travagem móvel por indicador.

  5. Arbitragem de diferença de preço ou arbitragem estatística em combinação com produtos relevantes.

  6. Adicionar a previsão de estado baseada no modelo de Hidin Markov para avaliar a situação.

  7. Construir estratégias complexas, como combinações com estratégias lineares, para gerenciamento de múltiplas estratégias.

  8. Explorar estratégias de negociação para otimizar o portfólio e encontrar o peso do portfólio

Em geral, a estratégia Gandalf pode ser ampliada e otimizada em vários níveis, como a determinação de tendências, otimização automática e gerenciamento de risco, tornando a estratégia mais estável e confiável.

Resumir

A estratégia de quantificação de Gandalf é uma estratégia simples e eficaz baseada em uma comparação de preços. Combina o acompanhamento de tendências com a idéia de um rápido stop-loss para controlar o risco de forma eficaz. A lógica da estratégia é clara e fácil de entender, e os parâmetros podem ser ajustados de acordo com as preferências de risco pessoais.

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

//@version=3

// The GandalfProjectResearchSystem strategy, as discussed in
// “System Development Using Artificial Intelligence”
// by Domenico D’Errico and Giovanni Trombetta
strategy("Gandalf Project Research System", overlay=true)

// Inputs
Quantity = input(0, title="Quantity (0 to auto calc)")
Single_Trade_Money = input(10000, minval=1, title="Money to spend on single trade")
MaxProfitCloses = input(6, minval=1, title="Max Profit Close")
MaxBars = input(8, minval=1, title="Max Total Bars")
Enter_Gap = input(-0.08, title="Distance from low price to place entry limit")
AltExit = input(true, title="Use Alt Exit")

// Calculate Order Quantity
Ncon = Single_Trade_Money / close

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
MedBodyPrice = (open + close) / 2.0
Weighted = (high + low + close + close) / 4.0
Median = (high + low) / 2.0

// Enter Conditions
Cond00 = strategy.position_size == 0
Cond01 = ((Weighted[1] < Median[1] and Median[2] <= Weighted[1] and MedBodyPrice[2] <= Weighted[3]) or (Weighted[1] < Median[3] and MedBodyPrice[0] < Median[2] and MedBodyPrice[1] < MedBodyPrice[2]))
Entry01 = Cond00 and Cond01

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Exit Conditions
eCond01 = BarsSinceEntry - 1 >= MaxBars
eCond02 = MaxProfitCount >= MaxProfitCloses
eCond03 = ((Weighted[1] < MedBodyPrice[1] and Median[2] == MedBodyPrice[3] and MedBodyPrice[1] <= MedBodyPrice[4]) or (Weighted[2] < MedBodyPrice[0] and Median[4] <= Weighted[3] and MedBodyPrice[1] <= Weighted[1]) or (Weighted[2] < MedBodyPrice[0] and Median[4] <= Weighted[3] and MedBodyPrice[1] <= Weighted[1]))
eCond04 = AltExit ? true : close - strategy.position_avg_price < 0
Exit01 = not Cond00 and (eCond01 or eCond02 or (eCond03 and eCond04))

// Entries
strategy.entry(id="L1", long=true, limit=low + Enter_Gap, qty=(Quantity > 0 ? Quantity : Ncon), when=Entry01)
 
// Exits
strategy.close("L1", Exit01)