Estratégia de ações do oscilador de média móvel dupla

Autora:ChaoZhang, Data: 2024-02-05 10:47:38
Tags:

O computador está a tentar obter o double_smoothed_abs_pc

  1. Por último, índice da ETI = 100* ((double_smoothed_pc/double_smoothed_abs_pc)

Comparando o valor da ETI com a sua linha de sinal tsi_signal, podemos determinar zonas de sobrecompra ou sobrevenda, decidindo assim os pontos de compra e venda.

sinal de compra: TSI cruza seu sinal para cima, indicando a reversão do preço da ação, marcando o início da zona de sobrecompra onde devemos longo.

sinal de venda: TSI cruza abaixo de seu sinal para baixo, indicando a reversão do preço da ação, marcando o fim da zona de sobrecompra onde devemos vender.

Análise das vantagens

A maior vantagem desta estratégia reside no uso do indicador de média móvel dupla para identificar características cíclicas nos preços das ações. Ao empregar simultaneamente períodos longos e curtos na média móvel dupla, ele pode capturar tendências de mudança de preços de forma mais sensível e precisa do que uma única média móvel, e é mais eficaz na determinação de sinais de negociação.

Além disso, esta estratégia escolhe o índice da ETI em vez de outros indicadores técnicos comuns, porque a ETI presta mais atenção ao cálculo da dinâmica da variação de preços, o que permite avaliar com mais precisão as condições de sobrecompra/supervenda, resultando em melhores pontos de negociação.

Análise de riscos

O maior risco desta estratégia é que a própria média móvel dupla é bastante sensível às mudanças de preços. Em caso de flutuação de preços, ela pode facilmente gerar sinais falsos. Além disso, os critérios da TSI para julgar zonas de sobrecompra/supervenda ainda são subjetivos e configurações de parâmetros inadequadas também afetam a precisão.

Para controlar esses riscos, é aconselhável otimizar adequadamente os parâmetros ajustando os comprimentos das médias móveis duplas. A combinação de outros indicadores para verificar os sinais também é necessária para evitar a abertura de posições em meio à volatilidade. Além disso, a otimização de estratégias de stop-loss e o estabelecimento de medidas de controle de risco contra emergências são bastante essenciais.

Orientações de otimização

As direcções de otimização desta estratégia concentram-se principalmente em dois aspectos:

  1. A combinação ideal de parâmetros como comprimentos de média móvel longa e curta e linha de sinal pode ser testada para melhorar a sensibilidade.

  2. Configure indicadores de filtragem, como a combinação de bandas de Bollinger, KDJ e assim por diante, para verificar os sinais de compra/venda e evitar a abertura errada de posições.

  3. Adicione uma estratégia de stop-loss, configure um stop loss em movimento, uma saída cronometrada para limitar a perda de uma única posição, também podemos suspender temporariamente a negociação com base nas condições do mercado para controlar o risco sistemático.

  4. Otimizar o dimensionamento das posições. Configurar o tamanho dinâmico e a proporção das posições com base nas condições do mercado para gerir a exposição ao risco de cada negociação.

Resumo

Esta estratégia utiliza o método de cálculo do índice de oscilador de média móvel dupla, integrando a análise de longo e curto prazo das mudanças do ímpeto de preços, determinando assim as zonas de sobrecompra e sobrevenda para decidir entradas e saídas. Em comparação com uma média móvel única, tem a vantagem de um julgamento mais preciso e sensível. É claro, a otimização adequada dos parâmetros ainda é necessária, juntamente com outros indicadores para filtragem de sinal, a fim de melhorar a estabilidade e rentabilidade.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © shankardey7310

//@version=5
strategy("TSI STOCKS", shorttitle="TSI", overlay=true)

initialCapital = input(10000, title="Initial Capital")
riskPercent = input(1, title="Risk Percentage") / 100

longLength = input(12, title="Long Length")
shortLength = input(9, title="Short Length")
signalLength = input(12, title="Signal Length")

price = close
pc = ta.change(price)

double_smooth(src, long, short) =>
    first_smooth = ta.ema(src, long)
    ta.ema(first_smooth, short)

double_smoothed_pc = double_smooth(pc, longLength, shortLength)
double_smoothed_abs_pc = double_smooth(math.abs(pc), longLength, shortLength)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi_signal = ta.ema(tsi_value, signalLength)

riskAmount = (initialCapital * riskPercent) / close

if (tsi_value > tsi_signal and tsi_value[1] <= tsi_signal[1])
    strategy.entry("Long", strategy.long)

if (tsi_value < tsi_signal and tsi_value[1] >= tsi_signal[1])
    strategy.close("Long")

plot(tsi_value, title="True Strength Index", color=#2962FF)
plot(tsi_signal, title="Signal", color=#E91E63)
hline(0, title="Zero", color=#787B86)

Mais.