- Quadrado
- Estratégia quantitativa de negociação baseada em médias móveis e bandas de Bollinger
Estratégia quantitativa de negociação baseada em médias móveis e bandas de Bollinger
Autora:
ChaoZhang, Data: 2024-04-26 11:45:05
Tags:
SMAWMAEMA
Resumo
Esta estratégia utiliza principalmente médias móveis e Bandas de Bollinger para capturar tendências e volatilidade do mercado. Emprega três tipos diferentes de médias móveis: Média Móvel Simples (SMA), Média Móvel ponderada (WMA) e Média Móvel Exponencial (EMA). Ao mesmo tempo, usa Bandas de Bollinger para definir canais de preços, com as bandas superior e inferior servindo como sinais para abertura e fechamento de posições. Quando o preço atravessa a banda de Bollinger superior, ele abre uma posição curta; quando atravessa a banda inferior, ele abre uma posição longa.
Princípios de estratégia
- Calcular três médias móveis com períodos diferentes: SMA lenta, EMA rápida e WMA média, refletindo as tendências de longo prazo, curto prazo e médio prazo do mercado, respectivamente.
- Calcule dois conjuntos de Bandas de Bollinger com base no desvio padrão do preço: Bandas de Bollinger de entrada (com distância mais estreita entre as bandas superior e inferior) e Bandas de Bollinger de stop-loss (com distância maior).
- Quando a EMA rápida cruza acima da faixa de Bollinger superior, abra uma posição curta; quando a EMA rápida cruza abaixo da faixa de Bollinger inferior, abra uma posição longa.
- Uma vez que uma posição está aberta, se o preço cruzar ainda mais acima da faixa de stop-loss Bollinger superior, feche todas as posições longas; se o preço cruzar ainda mais abaixo da faixa de stop-loss Bollinger inferior, feche todas as posições curtas.
- O processo acima referido é repetido continuamente, permitindo que a estratégia ajuste as posições de forma flexível de acordo com as tendências do mercado e pare as perdas em tempo útil, a fim de alcançar rendimentos robustos.
Vantagens da estratégia
- Considera três médias móveis de diferentes velocidades, que registam de forma abrangente as tendências do mercado em vários níveis.
- A presente diretiva introduz as bandas de Bollinger como condições para a abertura e o encerramento de posições, que podem ser ajustadas dinamicamente em função da volatilidade do mercado, adaptando-se de forma flexível às condições do mercado.
- Estabelece bandas de Bollinger de stop-loss para controlar os drawdowns e fecha decisivamente posições quando o mercado flutua drasticamente, evitando perdas amplificadas.
- A lógica é clara e as regras são simples, fáceis de implementar e otimizar.
- Tem uma ampla gama de aplicações e pode ser eficaz para vários mercados e períodos de tempo.
Riscos estratégicos
- Em um mercado lateral, a abertura e o encerramento frequentes de posições podem levar a custos de transacção substanciais, que corroem os lucros.
- No estágio inicial de uma inversão de tendência, a estratégia pode continuar a operar na direção da tendência original, resultando em certas perdas.
- Para condições de mercado extremas, tais como brechas rápidas de preços, as bandas de Bollinger de stop-loss podem não controlar eficazmente os riscos.
- A seleção de parâmetros inadequada (como períodos de média móvel, larguras de Bollinger Band, etc.) pode invalidar a estratégia.
- Se o mercado continuar a flutuar, a estratégia pode não ser capaz de captar oportunidades de tendência significativas durante um período prolongado.
Orientações para a otimização da estratégia
- Aumentar adequadamente os parâmetros dos períodos de média móvel e as larguras das bandas de Bollinger para reduzir a frequência e os custos de negociação num mercado lateral.
- Introduzir mais indicadores técnicos ou indicadores de sentimento de mercado como filtros para melhorar a precisão dos sinais de entrada e evitar perdas de negociações que possam ocorrer no início de uma tendência.
- Estabelecer regras especiais para condições de mercado extremas, como a suspensão de novas posições quando ocorrem lacunas, para controlar os riscos.
- Otimizar os parâmetros para encontrar a combinação mais adequada para o mercado actual, aumentando a robustez da estratégia.
- Adicionar regras de gestão de posições e gestão de capital, tais como o ajustamento de posições com base na força da tendência ou na rentabilidade, a definição de linhas globais de stop-loss, etc., para controlar ainda mais os riscos da estratégia.
Resumo
O Marina Parfenova School Project Bot é uma estratégia quantitativa de negociação baseada em médias móveis e Bandas de Bollinger. Ele tenta lucrar capturando tendências de mercado enquanto controla drawdowns através de linhas de stop-loss de Bandas de Bollinger. A lógica da estratégia é simples e direta, com uma ampla gama de aplicações, e os parâmetros podem ser ajustados de forma flexível de acordo com as características do mercado.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy ("Marina Parfenova School Project Bot", overlay = true)
sma(price, n) =>
result = 0.0
for i = 0 to n - 1
result := result + price [i] / n
result
wma(price, n) =>
result = 0.0
sum_weight = 0.0
weight = 0.0
for i = 0 to n - 1
weight := n - 1
result := result + price [i]*weight
sum_weight := sum_weight + weight
result/sum_weight
ema(price, n) =>
result = 0.0
alpha = 2/(n + 1)
prevResult = price
if (na(result[1]) == false)
prevResult := result[1]
result := alpha * price + (1 - alpha) * prevResult
/// Настройки
n_slow = input.int(50, "Период медленной скользящей средней", step=5)
n_fast = input.int(4, "Период быстрой скользящей средней")
n_deviation = input.int(30, "Период среднеквадратического отклонения", step=5)
k_deviation_open = input.float(1.2, "Коэффициент ширины коридора покупки", step=0.1)
k_deviation_close = input.float(1.6, "Коэффициент ширины коридора продажи", step=0.1)
// ----- Линии индикаторов -----
// Медленная скользящая
sma = sma(close, n_slow)
plot(sma, color=#d3d3d3)
// Линии Боллинджера, обозначающие коридор цены
bollinger_open = k_deviation_open * ta.stdev(close, n_deviation)
open_short_line = sma + bollinger_open
plot(open_short_line, color=#ec8383)
open_long_line = sma - bollinger_open
plot(open_long_line, color=#6dd86d)
bollinger_close = k_deviation_close * ta.stdev(close, n_deviation)
close_short_line = sma + bollinger_close
plot(close_short_line, color=#e3e3e3)
close_long_line = sma - bollinger_close
plot(close_long_line, color=#e3e3e3)
// Быстрая скользящая
ema = ema(close, n_fast)
plot(ema, color = color.aqua, linewidth = 2)
// ----- Сигналы для запуска стратегии -----
// если ema пересекает линию open_short сверху вниз - сигнал на создание ордера в short
if(ema[1] >= open_short_line[1] and ema < open_short_line)
strategy.entry("short", strategy.short)
// если ema пересекает линию open_long снизу вверх - сигнал на создание ордера в long
if(ema[1] <= open_long_line[1] and ema > open_long_line)
strategy.entry("long", strategy.long)
// если свеча пересекает верхнюю линию коридора продажи - закрываем все long-ордера
if (high >= close_short_line)
strategy.close("long")
// если свеча пересекает нижнюю линию коридора продажи - закрываем все short-ордера
if (low <= close_long_line)
strategy.close("short")
Relacionados
Mais.