Tendência de Bolts Deslumbrantes Seguindo a Estratégia

Autora:ChaoZhang, Data: 2024-02-02 17:30:09
Tags:

img

Resumo

Esta estratégia é chamada de Dazzling Bolts. É uma estratégia de tendência baseada em três médias móveis.

Estratégia lógica

A estratégia utiliza as seguintes três médias móveis:

  1. Média móvel ponderada de 13 períodos, para avaliar a tendência a curto prazo
  2. Média móvel exponencial de 55 períodos, para tendência a médio prazo
  3. Média móvel simples de 110 períodos, para tendência de longo prazo

Quando a linha rápida cruza acima da linha média e a linha média cruza acima da linha lenta, sinaliza uma tendência de alta.

A fim de filtrar alguns tipos de ruído, são estabelecidas várias condições auxiliares:

  1. Os preços baixos das últimas 5 velas foram todos acima da linha média.
  2. Preço baixo das últimas 2 velas caiu abaixo da linha média
  3. O preço de fechamento da última vela estava acima da linha média.

Quando estes critérios são cumpridos, os sinais longos ou curtos serão acionados.

Os alvos e as paradas são colocados com base em certos múltiplos dos valores ATR.

Análise das vantagens

As vantagens desta estratégia incluem:

  1. A utilização de uma combinação de três médias móveis evita a possibilidade de erro de julgamento a partir de um único indicador.
  2. Múltiplas condições auxiliares ajudam a melhorar a qualidade do sinal filtrando o ruído.
  3. O ATR dinâmico de stop loss ajuda a controlar a perda de uma única transação.

Análise de riscos

Os riscos desta estratégia incluem igualmente:

  1. A combinação de médias móveis pode dar sinais errados, exigindo retestes suficientes.
  2. A configuração inadequada do multiplicador ATR pode levar a que os travões sejam demasiado soltos ou apertados.
  3. Incapaz de filtrar eficazmente as flutuações de preços de eventos repentinos.

Para atenuar os riscos, ajustar adequadamente os parâmetros da média móvel, otimizar o multiplicador ATR, definir o período máximo de detenção para evitar perdas excessivas em operações individuais.

Orientações de otimização

Optimizações possíveis para esta estratégia:

  1. Ensaiar médias móveis de diferentes comprimentos ou tipos.
  2. Otimizar os parâmetros das condições auxiliares.
  3. Tente outros indicadores para previsão de tendência, por exemplo, MACD, DMI etc.
  4. Incorporar indicadores de volume para filtrar sinais.

Resumo

A estratégia Dazzling Bolts é geralmente um sistema de tendência constante. Ele usa principalmente cruzamento de médias móveis para determinar a direção da tendência, com certas combinações de indicadores técnicos como meios auxiliares para filtrar algum ruído.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © greenmask9

//@version=4
strategy("Dazzling Bolts", overlay=true)
//max_bars_back=3000

// 13 SMMA
len = input(10, minval=1, title="SMMA Period")
src = input(close, title="Source")
smma = 0.0
smma := na(smma[1]) ? sma(src, len) : (smma[1] * (len - 1) + src) / len

// 55 EMA
emalength = input(55, title="EMA Period")
ema = ema(close, emalength)

// 100 SMA
smalength = input(110, title="SMA Period")
sma = sma(close, smalength)

emaforce = input(title="Force trend with medium EMA", type=input.bool, defval=true)
offsetemavalue = input(defval = 6)

bullbounce = smma>ema and ema>sma and low[5]>ema and low[2]<ema and close[1]>ema and (ema[offsetemavalue]>sma or (not emaforce))
bearbounce = smma<ema and ema<sma and high[5]<ema and high[2]>ema and close[1]<ema and (ema[offsetemavalue]<sma or (not emaforce))
plotshape(bullbounce,  title= "Purple", location=location.belowbar, color=#ff33cc, transp=0, style=shape.triangleup, size=size.tiny, text="Bolts")
plotshape(bearbounce,  title= "Purple", location=location.abovebar, color=#ff33cc, transp=0, style=shape.triangledown, size=size.tiny, text="Bolts")
strategy.initial_capital = 50000
ordersize=floor(strategy.initial_capital/close)
longs = input(title="Test longs", type=input.bool, defval=true)
shorts = input(title="Test shorts", type=input.bool, defval=true)
atrlength = input(title="ATR length", defval=12)
atrm = input(title="ATR muliplier",type=input.float, defval=2)
atr = atr(atrlength)

target = close + atr*atrm
antitarget = close - (atr*atrm)

//limits and stop do not move, no need to count bars from since

bullbuy = bullbounce and longs and strategy.opentrades==0
bb = barssince(bullbuy)
bearsell = bearbounce and shorts and strategy.opentrades==0
bs = barssince(bearsell)

if (bullbuy)
    strategy.entry("Boltsup", strategy.long, ordersize)
    strategy.exit ("Bolts.close", from_entry="Boltsup", limit=target, stop=antitarget)
if (crossover(smma, sma))
    strategy.close("Boltsup", qty_percent = 100, comment = "Bolts.crossover")

if (bearsell)
    strategy.entry("Boltsdown", strategy.short, ordersize)
    strategy.exit("Bolts.close", from_entry="Boltsdown", limit=antitarget, stop=target)
if (crossunder(smma, sma))
    strategy.close("Boltsdown", qty_percent = 100, comment = "Bolts.crossover")

// if (bb<5)
//     bulltarget = line.new(bar_index[bb], target[bb], bar_index[0], target[bb], color=color.blue, width=2)
//     bullclose = line.new(bar_index[bb], close[bb], bar_index[0], close[bb], color=color.blue, width=2)
//     bullstop = line.new(bar_index[bb], antitarget[bb], bar_index[0], antitarget[bb], color=color.blue, width=2)
// if (bs<5)
//     bulltarget = line.new(bar_index[bs], antitarget[bs], bar_index[0], antitarget[bs], color=color.purple, width=2)
//     bullclose = line.new(bar_index[bs], close[bs], bar_index[0], close[bs], color=color.purple, width=2)
//     bullstop = line.new(bar_index[bs], target[bs], bar_index[0], target[bs], color=color.purple, width=2)


Mais.