Estratégia de adição de posição dinâmica


Data de criação: 2023-12-22 14:36:30 última modificação: 2023-12-22 14:36:30
cópia: 0 Cliques: 565
1
focar em
1623
Seguidores

Estratégia de adição de posição dinâmica

Visão geral

A estratégia de acréscimo dinâmico atinge o objetivo de compensação de stop loss ao acréscimo no momento da perda, atingindo a redução do custo médio. Quando o preço desencadeia a condição de acréscimo, a estratégia aumenta o acréscimo em uma determinada quantidade e intervalo, além de definir o número máximo de acréscimos, evitando o risco de acréscimo ilimitado.

Princípio da estratégia

A lógica central da estratégia é:

  1. Comprar e abrir posição: Se a posição é 0 (zero), a posição deve ser aberta ao preço indicado.

  2. Condição de acréscimo de posição: se o número de acréscimos de posição atual for menor que o número máximo de acréscimos de posição e o preço for inferior a uma queda predeterminada no preço da posição anterior, o acréscimo de posição é acionado.

  3. Método de acúmulo: o número de acúmulo aumenta por um fator de escalação do número anterior, e o intervalo de acúmulo diminui por um fator de escalação do intervalo anterior.

  4. Condição de parada: Se um margem de lucro predeterminada no preço médio da posição for acionada, a posição será parada.

Assim, quando o mercado é desfavorável, a estratégia pode reduzir o custo de manutenção da posição através de ações, obtendo ganhos adicionais ao mesmo tempo em que corrige o stop loss. Quando o mercado se vira para cima, as condições de stop loss são acionadas e todas as posições são lucrativas.

Análise de vantagens

A maior vantagem desta estratégia é que, através da acumulação de ativos, é possível reduzir o custo médio e obter maiores ganhos, tolerando certas perdas, o que é especialmente evidente no mercado de touros. Em particular, existem as seguintes vantagens:

  1. Pode reduzir significativamente os custos de manutenção de posições e aumentar a capacidade de parar perdas. Quando o preço se corre, a estratégia aumenta a posição, diluindo o alumínio de alumínio simples que foi comprado a preços mais altos, reduzindo o custo total.

  2. Aumentar a margem de lucro. Depois de reduzir os custos, a margem de lucro será ampliada, desde que os preços se recuperem.

  3. Flexível configuração da lógica de acréscimo, pode ser personalizado. A política permite a configuração de parâmetros como a amplitude, quantidade e intervalo de acréscimo, que o usuário pode ajustar de acordo com suas preferências.

  4. Risco controlado, limite máximo de adição de risco. O limite máximo de adição de risco permite que a estratégia não adicione risco ilimitado e controle o risco.

Análise de Riscos

Embora a estratégia tenha permitido um maior espaço de lucro por meio de ações de risco, há alguns riscos que devem ser observados:

  1. Risco de perdas. A estratégia é assumir perdas como premissa de risco. Se a situação continuar negativa, os prejuízos podem se expandir.

  2. Risco de queda. Em situações extremas, o preço pode cair acima da capacidade de suporte da estratégia. Isso requer uma configuração razoável de parâmetros de risco e pontos de parada.

  3. A reação não é oportuna. A reação do preço não necessariamente desencadeia a paralisação, e a falta de paralisação é uma estratégia curta.

  4. Riscos de configuração de parâmetros. A configuração incorreta de parâmetros como o coeficiente de alavancagem e o parâmetro de suspensão pode levar à falha da estratégia.

Estes riscos podem ser mitigados através das seguintes medidas:

  1. Reduzir adequadamente a acumulação de depósitos e controlar as perdas individuais.

  2. A redução do intervalo de acumulação e a redução rápida dos custos.

  3. Estabeleça um limite razoável. Se o limite for muito grande, a perda pode aumentar.

Direção de otimização

Considerando a natureza da estratégia de obter maiores ganhos com o aumento de risco, sua orientação de otimização se concentra principalmente em controlar melhor os riscos e obter ganhos. Em particular, existem as seguintes principais direções de otimização:

  1. Melhorar os algoritmos de logística de aquisição para torná-los mais inteligentes e de acordo com a situação. Pode-se considerar a ação de aquisição com base em indicadores como a taxa de flutuação e o salto de preço.

  2. Otimizar o modo de travagem para obter uma travagem mais eficiente. Pode ser combinado com o modo de travagem móvel, travagem em série, etc., para reduzir a impossibilidade de travagem de reboque.

  3. A introdução de algoritmos de aprendizagem de máquina para otimizar a auto-adaptação dos parâmetros. Os parâmetros-chave não são mais estáticos, mas são ajustados dinamicamente de acordo com a situação em tempo real e o feedback.

  4. Aumentar o mecanismo de stop loss, controlar o máximo de perdas. O método de stop loss pode considerar o stop loss móvel, o stop loss pendente, etc., evitando a expansão de perdas causadas por situações extremas.

Resumir

A estratégia de acréscimo dinâmico, através da aquisição de posições para alcançar a redução do custo-médio, obtém maior receita com o pressuposto de adequado controle do risco. Esta estratégia, baseada em assumir certos prejuízos, é especialmente popular entre os investidores com maior capacidade de tolerar perdas. A direção de otimização futura será feita em torno de uma forma mais inteligente de acréscimo, um mecanismo de suspensão mais eficiente, etc.

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

//@version=4

strategy("DCA Bot Emulator", overlay=true, pyramiding=99, default_qty_type=strategy.cash, commission_value = 0.02)

// Date Ranges
from_month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
from_day   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
from_year  = input(defval = 2021, title = "From Year")
to_month   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
to_day     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
to_year    = input(defval = 9999, title = "To Year")
start  = timestamp(from_year, from_month, from_day, 00, 00)  // backtest start window
finish = timestamp(to_year, to_month, to_day, 23, 59)        // backtest finish window
window = time >= start and time <= finish ? true : false // create function "within window of time"

// Strategy Inputs
price_deviation = input(2, title='Price deviation to open safety orders', maxval=0)/100
take_profit = input(1.5, title='Target Take Profit', minval=0)/100

// base order
base_order  = input(100000, title='base order') 
safe_order  = input(200, title='safe order') 
safe_order_volume_scale  = input(2, title='Safety order volume scale') 
safe_order_step_scale  = input(1, title='Safety order step scale') 

max_safe_order = input(10, title='max safe order') 
var current_so = 1
var initial_order = 0.0

// Calculate our key levels
pnl = (close - strategy.position_avg_price) / strategy.position_avg_price

take_profit_level = strategy.position_avg_price * (1 + take_profit)

// First Position
if(strategy.position_size == 0 and window)
    strategy.entry("Long", strategy.long, qty = base_order/close)
    initial_order := close
    current_so := 1

// Average Down!
if current_so > 0 and close  < initial_order * (1 - price_deviation * current_so * safe_order_step_scale) and current_so <= max_safe_order
    so_name = "SO " + tostring(current_so) 
    strategy.entry(so_name, long=strategy.long , qty = safe_order * safe_order_volume_scale /close)
    current_so := current_so + 1
    
// Take Profit!
strategy.close_all(when=take_profit_level <= close  and strategy.position_size > 0)