EMA200 e Estratégia do RSI Estocástico

Autora:ChaoZhang, Data: 2023-09-06 11:28:53
Tags:

EMA200 e Estratégia do RSI Estocástico

Esta estratégia é uma combinação da média móvel exponencial (EMA) e do índice de força relativa estocástica (RSI).

Como funciona a estratégia

A estratégia utiliza as seguintes condições para gerar sinais de entrada:

Entrada longa: O preço está acima da EMA200. O RSI estocástico está abaixo de 20 e cruzou acima do RSI. A vela atual é uma vela mais alta. O corpo da vela atual é pelo menos 5% maior do que o corpo da vela anterior. Breve entrada: O preço está abaixo da EMA200. O RSI estocástico está acima de 80 e cruzou abaixo do RSI. A vela atual é uma vela mais baixa. O corpo da vela atual é pelo menos 5% menor do que o corpo da vela anterior. Benefícios da estratégia

A estratégia tem vários benefícios potenciais, nomeadamente:

O índice de crescimento é baseado em dois indicadores técnicos bem estabelecidos, o EMA e o RSI estocástico, ambos amplamente utilizados pelos traders e com um longo histórico de sucesso. É relativamente fácil de entender e implementar. A estratégia tem um número limitado de parâmetros, tornando-a fácil de entender e usar para comerciantes de todos os níveis de experiência. A estratégia pode ser usada para negociar posições longas e curtas, e pode ser usada em mercados de tendências e variáveis. Riscos da estratégia

Tal como acontece com qualquer estratégia de negociação, também existem alguns riscos potenciais associados à utilização da estratégia EMA200 e do RSI estocástico, incluindo:

A estratégia baseia-se em dados históricos e não há garantia de que a estratégia seja rentável no futuro. A estratégia pode ser suscetível a um "whipsaw", quando o preço de um ativo se move rapidamente em ambas as direções, o que pode levar a perdas. A estratégia pode ser volátil, o que significa que existe o risco de grandes perdas. Conclusão

A estratégia EMA200 e Stochastic RSI é uma estratégia de negociação relativamente simples e eficaz que pode ser usada por traders de todos os níveis de experiência.


/*backtest
start: 2022-08-30 00:00:00
end: 2023-09-05 00:00:00
period: 1h
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/
// © eaglezou1006

//@version=5
//strategy("70000%", overlay = true, initial_capital = 100, commission_value = 0.04, commission_type =strategy.commission.percent, pyramiding = 1, default_qty_value = 100, default_qty_type = strategy.cash, currency = currency.USDT)
//Stoch RSI
rsi1 = ta.rsi(close, 14)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, 14), 3)
d = ta.sma(k, 3)
//ema
ema200 = ta.ema(close, 200)
plot(ema200, color = color.white)
//atr
length = 14
smoothing = 'RMA'
m = input(2, 'ATR倍数', group = "用户自定义参数")
src1 = high
src2 = low
pline = true

collong = color.teal
colshort = color.red

a = ta.rma(ta.tr(true), length) * m
x = ta.rma(ta.tr(true), length) * m + src1
x2 = src2 - ta.rma(ta.tr(true), length) * m
p1 = plot(x, title='ATR Short Stop Loss', color=color.new(colshort, 20), trackprice=pline ? true : false)
p2 = plot(x2, title='ATR Long Stop Loss', color=color.new(collong, 20), trackprice=pline ? true : false)

rewardRiskRatio = input.float(defval = 1.5, title = "盈亏比", minval = 1, maxval = 15, step = 0.1, group = "用户自定义参数")
highLowShadowRatio = input.int(defval = 20, title = "上下影线点比(%)", minval = 1, maxval = 100, step = 1, group = "用户自定义参数")
keyCandlestickChange = input.float(defval = 0.5, title = "关键K线涨跌幅(%)", minval = 0.1, maxval = 100, step = 0.1, group = "用户自定义参数")

longCondition = close > ema200 and (k < 20 and d < 20 and ta.crossover(k, d)) and high > high[1] and close[1] > open[1] and (close > open and (high-close) / (high-low) <= highLowShadowRatio / 100 and (close / open) - 1 >= keyCandlestickChange / 100)
shortCondition = close < ema200 and (k > 80 and d > 80 and ta.crossunder(k, d)) and low < low[1] and close[1] < open[1] and (close < open and math.abs(high-open) / math.abs(high-close) <= highLowShadowRatio / 100 and 1 - (close / open) >= keyCandlestickChange / 100 )
plotshape(longCondition, 'Buy', shape.labelup, location.belowbar, color=collong, size=size.small, offset=0)
plotshape(shortCondition, 'Sell', shape.labeldown, location.abovebar, color=colshort, size=size.small, offset=0)

if longCondition
    strategy.entry("Enter Long", strategy.long)
else if shortCondition
    strategy.entry("Enter Short", strategy.short)

Mais.