Estratégia de onda de tendência de Vegas

Autora:ChaoZhang, Data: 2023-09-11 15:23:35
Tags:

Esta estratégia calcula a diferença de preço percentual entre vários pares de EMA para determinar a direção da tendência e negocia com base na onda de Vegas.

Especificamente, ele calcula diferenças de preço percentual entre o preço atual, a EMA de 144 períodos, a EMA de 169 períodos e a EMA de 233 períodos. Os sinais longos são gerados quando todos os três atingem o limiar de diferença positiva pré-definido. Os curto são acionados quando o preço cai abaixo de todas as três EMAs e a EMA de 144 períodos cruza abaixo da EMA de 233 períodos.

O combo EMA filtra mais falhas em comparação com um único EMA. Além disso, a própria onda de Vegas contém vários EMAs para uma análise robusta da tendência.

No entanto, as EMAs têm atraso inerente e não podem identificar entradas ideais.

No geral, a estratégia de onda de tendência de Vegas sinergiza a análise da EMA e a teoria das ondas para bons resultados nos mercados de tendência.


/*backtest
start: 2023-09-03 00:00:00
end: 2023-09-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Vegas Wave Strategy", overlay=true)

ema144 = ema(close, 144)
ema169 = ema(close, 169)
ema233 = ema(close, 233)

current = close

upd144 = input(title="EMA144 percent difference from EMA233", type=float, defval=0.1)
upd169 = input(title="EMA169 percent difference from EMA233", type=float, defval=0.1)
upd_current = input(title="Current price percent difference from EMA233", type=float, defval=0.1)

//pDiff - Percentage Difference
pDiff(x, y) =>
    ((x-y)/x)*100

gtDiff(x, y) =>
    x > y


pd144 = pDiff(ema144, ema233)
pd169 = pDiff(ema169, ema233)
pd_current = pDiff(current,ema233)

plot(ema144,color=orange, linewidth=2, transp=0, title="144 EMA")
plot(ema169,color=blue,linewidth=2, transp=0, title="169 EMA")
plot(ema233,color=red,linewidth=2, transp=0, title="233 EMA")


//plot(current, color=white, title="Current Candle")


if (gtDiff(pd_current, upd_current) and gtDiff(pd144, upd144) and gtDiff(pd169, upd169))
    strategy.entry("buy", strategy.long, when=strategy.position_size <=0)

// if (ema8 > ema55 and ema13 > ema55 and ema21 > ema55 and current > ema55 and pd_current > upd_current)
//     strategy.entry("buy", strategy.long, 10000, when=strategy.position_size <=0)
    
if (current < ema144 and current < ema169 and current < ema233 and ema144 <= ema233)
    strategy.entry("sell", strategy.short, when=strategy.position_size > 0)

Mais.