
A estratégia permite abrir posições unilaterais através do cálculo de diferentes tipos de médias móveis para determinar a direção da tendência dos preços.
A estratégia permite a escolha de 7 diferentes tipos de médias móveis, incluindo a média móvel simples (SMA), a média móvel indexada (EMA), a média ponderada por volume de transação (VWMA), a média móvel de dois dígitos (DEMA), a média móvel de três dígitos (TEMA), a média móvel adaptada de Kaufman (KAMA) e a linha média do canal de preços. A direção da tendência de preços é determinada pela relação entre a média móvel escolhida e o preço de liquidação.
Quando o preço de fechamento quebra a média móvel de baixo para cima, julgue-se um aumento, abra uma posição maior; Quando o preço de fechamento quebra a média móvel de cima para baixo, julgue-se uma queda, abra uma posição vazia. Assim, você pode capturar o ponto de viragem da tendência dos preços e abrir uma posição unilateral.
A estratégia tem as seguintes vantagens:
Há vários tipos de médias móveis para escolher, com flexibilidade para diferentes variedades e períodos.
A única forma de controlar os riscos é abrir uma posição de uma só vez.
“O que é que eu tenho que fazer para ganhar dinheiro?”
É fácil de entender e de implementar.
A estratégia também apresenta alguns riscos:
Quando o preço oscila perto da média móvel, ocorrem vários sinais de erro e abertura de posição inversa. Pode-se configurar um stop loss apropriado para controlar o risco.
Não é possível evitar completamente o risco de uma rápida subida ou queda dos preços. Pode ser combinado com outros indicadores para determinar os sinais de tendência.
Os analistas precisam escolher os parâmetros de média móvel apropriados, os parâmetros inadequados podem gerar atraso nos sinais de negociação.
A estratégia pode ser melhorada em vários aspectos:
Combinação com outros indicadores técnicos para determinar os sinais de tendência, como MACD, RSI, etc., formando um portfólio de negociação.
Adição de lógica de stop loss. Move stop loss ou pendure stop loss.
Para testar e otimizar os parâmetros, escolha a melhor combinação de parâmetros. Por exemplo, o período de média móvel, o tipo de média móvel e outros.
Pode-se considerar estratégias de entrada de tipo transação imediata, para acompanhar a operação da tendência.
A estratégia baseia-se em uma média móvel para determinar a direção da tendência de preços, para abrir uma posição unilateral. É simples de usar e fácil de implementar, para controlar eficazmente o risco. Mas também pode haver sinais errados e risco de abertura de posição inversa.
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Noro's MAs Tests v1.1", shorttitle = "MAs tests 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
needlong = input(true, "long")
needshort = input(true, "short")
len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")
anti = input(true, defval = true, title = "Antipila")
//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)
//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3
//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))
//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0
plot(ma, color = blue, linewidth = 3, transp = 0)
trend = anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]
longCondition = trend == 1 and trend[1] == -1
if (longCondition)
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)