
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.
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:
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.
A estratégia de Gandalf tem as seguintes vantagens:
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.
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.
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.
A entrada é feita de forma individual, com condições e com preços ideais.
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.
A estrutura do código é clara, simples, fácil de entender e modificar.
Os parâmetros podem ser ajustados de acordo com as preferências de risco individuais, sendo fácil de otimizar.
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.
A estratégia de Gandalf também tem alguns riscos a serem lembrados:
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.
A falta de um bom ponto de inflexão da tendência pode levar a um aumento dos prejuízos.
O que é que o governo está a fazer para evitar que a situação se deteriore?
Dependendo da configuração dos parâmetros, diferentes variedades precisam de ajustar os parâmetros.
A posição unilateral não pode ser utilizada para lucrar com a reversão.
A taxa de falha das condições é alta e pode levar muito tempo para ser admitido.
Correspondentes medidas de gestão de riscos:
O jogo é disputado em grupos, com pequenas posições, para controlar as perdas.
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.
Parâmetros de otimização, ajustados para a variedade atual. Pode auxiliar a avaliação de tendências com outros indicadores.
A redução de custos pode ser obtida através da reposição de Martingale.
A variedade de transações com tendência evidente, com lucro incrivelmente alto.
Uma flexibilidade apropriada nas condições de admissão, tendo em conta a probabilidade de admissão.
A estratégia de Gandalf também pode ser melhorada nos seguintes aspectos:
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.
Adição de uma função de otimização discreta, para otimizar automaticamente os parâmetros e adaptá-los a mais variedades.
Adicionar algoritmos de aprendizagem de máquina, usando o treinamento de dados históricos para determinar tendências em redes neurais ou modelos SVM.
Aumentar o modo de travagem, como travagem móvel, travagem móvel por indicador.
Arbitragem de diferença de preço ou arbitragem estatística em combinação com produtos relevantes.
Adicionar a previsão de estado baseada no modelo de Hidin Markov para avaliar a situação.
Construir estratégias complexas, como combinações com estratégias lineares, para gerenciamento de múltiplas estratégias.
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.
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.
/*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)