Estratégias de negociação baseadas em tendências de ondas


Data de criação: 2023-12-19 12:07:14 última modificação: 2023-12-19 12:07:14
cópia: 0 Cliques: 1121
1
focar em
1621
Seguidores

Estratégias de negociação baseadas em tendências de ondas

Visão geral

Esta é uma estratégia de negociação baseada no indicador de tendências de ondas do LazyBear. A estratégia de negociação baseia-se na tendência de ondas de fluctuantes de preços, julgando sobrecompra e sobrevenda no mercado, longing e shorting.

Princípio da estratégia

A estratégia é baseada principalmente no indicador de tendência de ondas do LazyBear. Primeiro, calcula-se o preço médio ((AP)), depois a média móvel indexada ((ESA) do AP e a média móvel indexada da mudança de preço absoluta ((D)). Com base nisso, calcula-se o índice de flutuação ((CI)), e depois a média móvel indexada do CI, obtendo a linha de tendência de ondas ((WT)). A WT gera WT1 e WT2 através de uma média móvel simples.

Análise de vantagens

Esta é uma estratégia de acompanhamento de tendências muito simples, mas muito prática. Tem as seguintes vantagens:

  1. Indicadores de tendências de ondas, que permitem identificar claramente tendências de preços e sentimentos de mercado
  2. A operação é simples, com a cruz de ouro e a cruz de morte do WT para julgar o ponto de fazer e fazer
  3. Parâmetros personalizáveis ajustam a sensibilidade do fio WT para diferentes períodos
  4. Pode ser adicionado um sinal de filtragem condicional adicional, como uma janela de tempo de negociação limitada

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Como uma estratégia de acompanhamento de tendências, é fácil gerar uma grande quantidade de sinais errôneos em mercados consolidados.
  2. O WT-line é muito atrasado e pode perder o ponto de viragem rápido dos preços.
  3. Os parâmetros padrão podem não ser adequados para todas as variedades e períodos e precisam ser otimizados
  4. Não há um mecanismo de stop loss, o que pode levar muito tempo

Os principais soluções são:

  1. Parâmetros de otimização para ajustar a sensibilidade das linhas WT
  2. Adicionar outros indicadores para verificação e evitar sinais errados
  3. Configuração de stop loss e stop loss
  4. Limitar o número de transações ou posições por dia

Direção de otimização

A estratégia ainda tem espaço para ser melhorada:

  1. Optimizar os parâmetros do WT para torná-lo mais sensível ou mais estável
  2. Combinações de parâmetros diferentes com base em diferentes períodos
  3. Adição de indicadores de preço de quantidade, indicadores de taxa de flutuação, etc. como sinal de confirmação
  4. Adição de Stop Loss e Stop Stop Logic
  5. Enriquecimento de posições, tais como pirâmides, negociação de grades etc.
  6. Melhores características e regras de negociação com métodos como o aprendizado de máquina

Resumir

Esta estratégia é uma estratégia de acompanhamento de tendências de ondas muito simples e práticas. Ela emite um sinal de negociação usando o cruzamento do ouro com o cruzamento da morte no WT line, calculando a tendência de flutuação dos preços, identificando o estado de sobrecompra e sobrevenda do mercado.

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

//
// @author LazyBear
//
// If you use this code in its original/modified form, do drop me a note. 
//
//@version=4
     
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)

plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=3)
plot(osLevel2, color=color.green, style=3)

plot(wt1, color=color.white)
plot(wt2, color=color.fuchsia)
plot(wt1-wt2, color=color.new(color.blue, 80), style=plot.style_area)

//Strategy
strategy(title="T!M - Wave Trend Strategy", overlay = false, precision = 8, max_bars_back = 200, pyramiding = 0, initial_capital = 1000, currency = currency.NONE, default_qty_type = strategy.cash, default_qty_value = 1000, commission_type = "percent", commission_value = 0.1, calc_on_every_tick=false, process_orders_on_close=true)
    
longCondition  = crossover(wt1, wt2)
shortCondition = crossunder(wt1, wt2)

strategy.entry(id="Long Entry", comment="buy", long=true, when=longCondition and window())
strategy.close("Long Entry", comment="sell", when=shortCondition and window())      

//strategy.entry(id="Short Entry", long=false, when=shortCondition)