Estratégia de compra de reentrada dinâmica


Data de criação: 2023-12-19 13:56:55 última modificação: 2023-12-19 13:56:55
cópia: 0 Cliques: 643
1
focar em
1621
Seguidores

Estratégia de compra de reentrada dinâmica

Visão geral

A estratégia é um sistema de negociação somente de compra que gera um sinal de compra com base no cruzamento de média móvel e no índice de canais de mercadorias periódicos (CCI) ou no índice de direção da média periódica (ADX). Um sinal de compra é gerado quando uma média móvel rápida atravessa uma média móvel lenta em uma média móvel rápida e o CCI periódico e/ou o ADX periódico satisfazem determinadas condições.

A estratégia também permite a reentrada dinâmica, o que significa que uma nova posição a mais pode ser aberta se o preço cruzar novamente as três médias móveis. No entanto, se o preço fechar abaixo da terceira média móvel, a estratégia liquida a posição a mais.

Princípio da estratégia

O script define as condições para gerar um sinal de compra. Ele verifica duas condições para julgar um sinal de compra válido:

  • A média móvel rápida atravessa a média móvel lenta
  • O usuário pode optar por usar um filtro: CCI ou ADX

O blogueiro é um dos principais responsáveis pelo ataque.Se não houver uma posição em um multi-capitalizado e o preço for superior a três médias móveis, abra uma nova posição em um multi-capitalizado.

Condições de saída:A estratégia elimina as posições em ativos se o preço de fechamento for abaixo da terceira média móvel.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Filtragem de sinais de vários indicadores tecnológicos para reduzir sinais errados
  2. O mecanismo de reentrada dinâmica capta o máximo de tendências
  3. Fazer mais e evitar o risco de falhar

Análise de Riscos

A estratégia também apresenta os seguintes riscos:

  1. Há um risco de desvio.
  2. A maior parte dos investidores pode manter posições por muito tempo, o que pode levar a um “stop loss”.
  3. Parâmetros mal definidos podem levar a transações muito frequentes

Resolução:

  1. Filtragem de ondas com melhor combinação de parâmetros e combinação de indicadores técnicos
  2. Estabeleça um limite razoável de perda
  3. Ajustar os parâmetros para garantir a estabilidade dos mesmos

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Teste mais combinações de indicadores tecnológicos para encontrar melhores oportunidades de compra
  2. Optimizar os parâmetros para encontrar a melhor combinação de parâmetros
  3. Aumentar os mecanismos de suspensão de prejuízos e controlar as perdas individuais
  4. Aumentar a gestão de posições, aumentando ou diminuindo as posições de acordo com a situação do mercado

Resumir

A estratégia de reentrada dinâmica integra vários indicadores técnicos para determinar o momento de compra e usa um design de reentrada dinâmica para acompanhar a tendência em tempo real; ao mesmo tempo, apenas evite o risco adicional de um curto prazo. Através da otimização de parâmetros, configuração de stop loss e gerenciamento de posição, a estratégia pode ser usada em negociações reais para obter ganhos excedentários ao mesmo tempo em que controla o risco.

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

//@version=5
strategy("Buy Only Strategy with Dynamic Re-Entry and Exit", overlay=true)

// Input Parameters
fast_length = input(20, title="Fast Moving Average Length")
slow_length = input(30, title="Slow Moving Average Length")
third_ma_length = input(100, title="Third Moving Average Length")
cci_period = input(14, title="CCI Period for Weekly CCI")
use_cci = input(true, title="Use CCI for Entry")
use_adx = input(true, title="Use ADX for Entry")
adx_length = input(14, title="ADX Length")
adx_threshold = input(25, title="ADX Threshold")

// Calculate Moving Averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)
third_ma = ta.sma(close, third_ma_length)

// Weekly Commodity Channel Index (CCI) with user-defined period
weekly_cci = request.security(syminfo.tickerid, "W", ta.cci(close,  cci_period))

// Weekly Average Directional Index (ADX)
dirmov = hlc3
plus = ta.change(dirmov) > 0 ? ta.change(dirmov) : 0
minus = ta.change(dirmov) < 0 ? -ta.change(dirmov) : 0
trur = ta.rma(ta.tr, adx_length)
plusDI = ta.rma(plus, adx_length) / trur * 100
minusDI = ta.rma(minus, adx_length) / trur * 100
sum = plusDI + minusDI
DX = sum == 0 ? 0 : math.abs(plusDI - minusDI) / sum * 100
ADX = ta.rma(DX, adx_length)

// Entry Conditions (Buy Only and Weekly CCI > 100 and/or Weekly ADX > 25)
cci_condition = use_cci ? (weekly_cci > 100) : false
adx_condition = use_adx ? (ADX > adx_threshold) : false
long_condition = ta.crossover(fast_ma, slow_ma) and (cci_condition or adx_condition)

// Exit Condition and Dynamic Re-Entry
exit_condition = close < third_ma
re_entry_condition = close > fast_ma and close > slow_ma and close > third_ma and weekly_cci > 100

// Entry and Exit Signals
strategy.entry("Long", strategy.long, when=long_condition)
strategy.close("Long", when=exit_condition)

// Dynamic Re-Entry and Exit
if strategy.position_size == 0 and re_entry_condition
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0 and close < third_ma
    strategy.close("Long")

// Plot Weekly CCI and ADX for reference
plot(weekly_cci, title="Weekly CCI", color=color.orange)
plot(ADX, title="Weekly ADX", color=color.blue)