Estratégia de ruptura da variação dinâmica do preço limiar

Autora:ChaoZhang, Data: 2024-04-01 12:03:59
Tags:

img

Esta estratégia é chamada de Dynamic Threshold Price Change Breakout Strategy. A ideia principal desta estratégia é definir um limiar dinâmico, e quando a taxa de mudança de preço excede esse limiar, um sinal de compra é gerado, e quando a taxa de mudança de preço é inferior ao valor negativo deste limiar, um sinal de venda é gerado. Ao mesmo tempo, a estratégia também define um stop loss. Quando o preço cai abaixo do preço mais baixo das 6 velas anteriores, a posição será fechada.

Princípio da estratégia

O núcleo desta estratégia é calcular a taxa de mudança de preço, que é obtida dividindo o preço de fechamento atual pelo preço de fechamento anterior e, em seguida, subtraindo 1. Em seguida, a taxa de mudança de preço calculada é comparada com a entrada de limiar pelo usuário. Quando a taxa de mudança de preço é maior ou igual ao limiar, se não houver posição atual ou se uma posição curta for realizada, um sinal de compra é gerado; quando a taxa de mudança de preço for menor ou igual ao valor negativo do limiar, se não houver posição atual ou se uma posição longa for realizada, um sinal de venda é gerado. Após gerar um sinal de compra, a estratégia registrará o preço mais baixo das 6 velas como o preço de stop loss anterior. Uma vez que o preço caia abaixo do preço de perda, a estratégia irá fechar a posição longa.

Vantagens da estratégia

  1. Esta estratégia utiliza um limiar dinâmico, que pode adaptar-se aos diferentes ambientes de mercado e tem um certo grau de flexibilidade.
  2. A lógica estratégica é simples e clara, fácil de compreender e implementar.
  3. Um stop loss é definido para controlar o risco até certo ponto.
  4. Adequado para utilização em mercados em ascensão, pode capturar eficazmente a tendência ascendente.

Riscos estratégicos

  1. Esta estratégia pode provocar frequentes negociações em mercados voláteis, levando a um aumento dos custos de transação.
  2. A definição de stop loss pode não ser suficientemente flexível e, em alguns casos, pode levar a um stop loss prematuro.
  3. A estratégia considera apenas o fator de taxa de variação de preços e não considera outros fatores que possam afetar a tendência dos preços, tais como o volume de negociação e o sentimento do mercado.

Orientações para a otimização da estratégia

  1. Pode considerar-se a introdução de mais indicadores, como o volume de negociação e a volatilidade, para melhorar a fiabilidade da estratégia.
  2. A definição de stop loss pode ser otimizada, como por exemplo, o uso de uma stop trailing ou uma stop loss dinâmica, para tornar a stop loss mais flexível.
  3. Os parâmetros podem ser otimizados, tais como o tamanho do limiar e o período de cálculo do stop loss, para encontrar a combinação ideal de parâmetros.
  4. A gestão de posições pode ser adicionada para ajustar dinamicamente as posições de acordo com as condições de mercado para controlar o risco.

Resumo

A Estratégia de ruptura de mudança de preço de limiar dinâmico gera sinais de negociação comparando a taxa de mudança de preço com um limiar dinâmico, que é adequado para uso em mercados em ascensão. A lógica da estratégia é simples e clara, com certo grau de flexibilidade e capacidade de controle de risco. No entanto, esta estratégia também tem algumas deficiências, como negociação frequente em mercados voláteis e configurações de stop loss inflexíveis. No futuro, podemos considerar a otimização da estratégia a partir de aspectos como a introdução de mais indicadores, a otimização de configurações de stop loss, a otimização de parâmetros e a adição de gerenciamento de posição para melhorar ainda mais o desempenho da estratégia.


/*backtest
start: 2023-04-01 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Price Change", shorttitle="Price Change", overlay=true)

change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float)


// Calculate price change
priceChange = close / close[1] - 1

// Buy and Sell Signals
buyp = priceChange >= change
sellp = priceChange <= (change * -1)

// Initialize position and track the current position
var int position = na

// Strategy entry conditions
buy_condition = buyp and (na(position) or position == -1)
sell_condition = sellp and (na(position) or position == 1)

var float stop = na

if (buy_condition)
    strategy.entry("Long", strategy.long)
    stop := lowest(low, 6)
    position := 1
if (sell_condition or low < stop)
    strategy.close("Long")
    position := -1

// Plot Buy and Sell signals using plotshape
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)


Mais.