Estratégia de acompanhamento da dinâmica de preços

Autora:ChaoZhang, Data: 2024-01-03 17:32:14
Tags:

img

Resumo

Esta estratégia usa indicadores de momento de preço para determinar a direção da negociação. Especificamente, calcula a média móvel e o preço médio, respectivamente. Quando o preço cruza acima da média móvel e do preço médio, um sinal de compra é gerado. Para filtrar sinais falsos, não requer sinais anteriores semelhantes. Em seguida, salva o status do sinal e gera o sinal de posição de abertura final em combinação com a média móvel. A estratégia também contém configurações de stop loss e take profit.

Princípio da estratégia

A estratégia baseia-se principalmente em indicadores de dinâmica de preços para julgar a direção da tendência.

swmaClose = swma(close)
vwapClose = vwap(close) 

Onde?swmaé a média móvel suavizada evwapOs dois podem reflectir o nível médio de preços.

Em seguida, compare o preço com a média para ver se o preço cruza acima da média móvel e preço médio, para julgar se é um sinal de alta:

swmaLong = close > swmaClose 
vwapLong = close > vwapClose

Para filtrar os falsos sinais, não é necessário nenhum sinal prévio destes dois indicadores:

triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1] 

Em seguida, guarde o sinal de alta:

saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1] 

Por último, quando o sinal de cruzamento guardado e o preço cruzarem novamente acima da média móvel, gerar o sinal de posição de abertura:

startLong = saveLong and swmaLong

Isso pode filtrar alguns sinais falsos e tornar os sinais mais confiáveis.

A estratégia também contém configurações de stop loss e take profit.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. Usando indicadores de dinâmica de preços pode julgar melhor a direção da tendência
  2. A combinação de indicadores duplos e verificação em várias etapas pode filtrar falsos sinais e tornar a estratégia mais fiável
  3. As configurações de stop loss e take profit são razoáveis para controlar o risco de transação única
  4. Os parâmetros da estratégia são configuráveis para se adaptarem a diferentes ambientes de mercado
  5. A lógica estratégica é simples e direta, fácil de compreender e implementar

Análise de riscos

A estratégia apresenta também alguns riscos:

  1. O indicador da média móvel apresenta um atraso e pode não observar algumas flutuações de preços
  2. O efeito depende de configurações de parâmetros, e diferentes combinações de parâmetros podem fazer grandes diferenças
  3. Há relativamente poucos sinais de compra, com alguns riscos comerciais perdidos
  4. A verificação em várias etapas filtrará algumas oportunidades que podem afetar o nível de lucro

Contramedidas:

  1. Teste diferentes parâmetros da média móvel para otimização de parâmetros
  2. Simplificar ligeiramente o julgamento lógico para aumentar os sinais de compra
  3. Ajustar a taxa de stop loss e take profit para controlar a perda única

Orientações de otimização

A estratégia pode também ser otimizada nas seguintes direcções:

  1. Teste mais indicadores de dinâmica de preços, como MACD, DMI, etc.
  2. Adicionar sentenças de sinal de venda para implementar negociação bidirecional
  3. Incorporar indicadores de volume de negociação para evitar eventuais falsas rupturas
  4. Otimizar as configurações dos parâmetros com base nos resultados dos backtests
  5. Considerar o ajustamento automático dos parâmetros com base nas condições do mercado
  6. Adicionar algoritmos de aprendizagem de máquina para alcançar a otimização de auto-adaptação de parâmetros

Estas otimizações podem melhorar a flexibilidade, a robustez e a rentabilidade da estratégia.

Resumo

Em geral, esta estratégia de rastreamento do momento do preço é uma estratégia de rastreamento de tendência simples, direta e lógica. A estratégia usa médias móveis de preços e preços médios para determinar a direção do momento do preço e projeta um mecanismo de verificação em vários passos para melhorar a qualidade do sinal. A estratégia também contém configurações razoáveis de stop loss e take profit. Em termos de código, a lógica da estratégia é muito concisa, exigindo apenas 20+ linhas de script Pine para implementar. Em resumo, esta estratégia é um muito bom exemplo de aprendizado, os iniciantes podem usá-la como um bom ponto de partida para entender estratégias de negociação quantitativas. Claro, a própria estratégia também tem valor prático de negociação. Através da otimização de parâmetros e expansão de funções, pode se tornar um sistema prático de rastreamento de negociação para evitar ruídos e tendências.


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Simple Price Momentum", shorttitle = "SPM", overlay = true, initial_capital = 20000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.025)

// How To Create A Simple Trading Strategy With TradingView
// https://docs.google.com/document/d/1fXxCtPuGgTXb-RuBJNbwlfgkeiLTK5060LfTrzRlr5k/view

swmaClose = swma(close)
vwapClose = vwap(close)

swmaLong = close > swmaClose
vwapLong = close > vwapClose

triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]
saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]

startLong = saveLong and swmaLong
startLong := input(false, "Consecutive Orders") ? startLong : startLong and not startLong[1]

stopLoss = input(250, "Stop Loss", step = 50)
takeProfit = input(10, "Reward/Risk") * stopLoss

strategy.entry("Open Long", strategy.long, when = startLong)
strategy.exit("Exit Long", "Open Long", profit = stopLoss, loss = takeProfit)

// bgcolor(swmaLong ? color.blue : na)
// bgcolor(vwapLong ? color.orange : na)
// bgcolor(triggerLong ? color.purple : na)
// bgcolor(saveLong ? color.yellow : na)
bgcolor(startLong[1] ? color.green : na)


Mais.