
A estratégia usa o princípio do equilíbrio entre as linhas, em combinação com o indicador RSI, para determinar a direção da tendência e executar operações de compra e venda.
A estratégia usa três linhas médias de EMA de diferentes períodos, a linha rápida, a linha média e a linha lenta. Quando a linha rápida atravessa a linha média, é considerado um sinal de compra; Quando a linha rápida atravessa a linha média, é considerado um sinal de venda.
Ao mesmo tempo, a estratégia também usa o indicador RSI para julgar a situação de sobrevenda. O RSI mostra a força relativa de um ativo através do rácio de aumento médio e queda média em um período. Quando o RSI excede a linha de sobrevenda definida, é considerado como sendo sobrevendido; Quando o RSI é inferior à linha de sobrevenda definida, é considerado como sendo sobrevendido.
As condições de compra da estratégia são:
As condições de venda são:
Esta estratégia combina a estratégia de negociação de tendências e inversão de tendências para determinar a direção da grande tendência, combinada com o RSI, para encontrar oportunidades de sobrevenda e sobrevenda em curto prazo.
A estratégia combina o cruzamento de linhas médias e o indicador RSI para determinar a tendência e o overbought e o oversold para filtrar alguns dos negócios de ruído causados por falsas rupturas. Usando três linhas médias, o estado da tendência pode ser julgado com mais clareza.
A configuração do indicador RSI também permite que a estratégia aproveite os melhores momentos de entrada e saída nas áreas de sobrevenda e sobrevenda.
A estratégia também leva em consideração os custos de transação, evitando que os investidores sejam cobrados por entrar apenas quando o preço ultrapassar as três médias.
A estratégia ainda tem o risco de ser reajustada. Mudanças no ambiente do mercado em ações reais podem fazer com que os parâmetros deixem de se adaptar às novas condições do mercado.
Em situações de turbulência, a estratégia é propensa a produzir falsos sinais, o que pode levar a perdas.
A configuração dos parâmetros do RSI precisa ser ajustada de acordo com os diferentes mercados, e se os parâmetros forem configurados incorretamente, é fácil causar oportunidades perdidas ou gerar sinais falsos.
Pode-se considerar a re-validação de sinais em gráficos de períodos de tempo mais longos, evitando a interferência do ruído do mercado de curto prazo.
Pode-se testar antes de entrar no mercado, esperar a ruptura ou voltar a pisar a linha de equilíbrio e entrar novamente, para verificar ainda mais o sinal.
Pode ser combinado com outros indicadores, como MACD, faixa de Brin, etc., combinando sinais de vários indicadores para aumentar a taxa de mortalidade de entrada.
Os parâmetros de otimização podem ser auxiliados por algoritmos de aprendizagem de máquina para tornar as estratégias mais adaptáveis.
Pode-se considerar a inclusão de uma estratégia de stop loss, para parar o prejuízo em tempo hábil quando a tendência é incerta.
A estratégia integra equilíbrio cruzado e indicadores RSI, ao mesmo tempo em que julga a tendência, para encontrar oportunidades de reversão de tendência de curto prazo. Ele usa efetivamente os benefícios de negociação de tendência e negociação de reversão, pode ser mantido em direção a longo prazo, ao mesmo tempo, para capturar oportunidades de linha curta. A estratégia tem um certo espaço de otimização, através de mais comprovação de sinais, parâmetros de otimização, adição de stop loss e outros meios, pode tornar a estratégia mais estável e confiável.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 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/
// © chadsadachai
//@version=5
strategy("EMA Cross V1", overlay= true)
//rsi
length = input.int(title = "Rsi Lenght" , defval=26 , minval=1, maxval=50)
overS = input.int(title = "Rsi OVS line" , defval=30 , minval=1, maxval=40)
overB = input.int(title = "Rsi OVB line" , defval=70 , minval=1, maxval=100)
mLine = input.int(title = "Rsi Medium line" , defval=42 , minval=1, maxval=60)
price = close
vrsi = ta.rsi(price, length)
co = vrsi >= mLine and vrsi < overB
cu = ta.crossunder(vrsi, overB)
//ema
F = input.int(title = "EMA Fast" , defval=17 , minval=1, maxval=50)
M = input.int(title = "EMA Medium" , defval=35, minval=1, maxval=100)
S = input.int(title = "EMA Slow" , defval=142, minval=1, maxval=200)
emaF = ta.ema(price , F)
emaM = ta.ema(price , M)
emaS = ta.ema(price , S)
//plot
plot(emaF , color = color.green , linewidth=1)
plot(emaM , color = color.yellow , linewidth=1)
plot(emaS , color = color.red , linewidth=1)
//Time Stamp
start = timestamp(input.int(title = "Start Year" , defval=2011 , minval=2011, maxval=2025), input.int(title = "Start Month" , defval=1 , minval=1, maxval=12), input.int(title = "Start Day" , defval=1 , minval=1, maxval=31), 0, 0)
end = timestamp(input.int(title = "End Year" , defval=2025 , minval=2011, maxval=2025), input.int(title = "End Month" , defval=1 , minval=1, maxval=12), input.int(title = "End Day" , defval=1 , minval=1, maxval=31), 0, 0)
// years = input.int(title = "Year" , defval=2018 , minval=2011, maxval=2025)
// months = input.int(title = "Month" , defval=1 , minval=1, maxval=12)
// days = input.int(title = "Day" , defval=1 , minval=1, maxval=31)
//longCondition Default
// longCondition1 = EMA_Fast >= EMA_Slow and EMA_Fast >= EMA_Medium//ta.crossover(EMA_Fast, EMA_Slow) EMA_Fast > EMA_Slow and EMA_Medium > EMA_Slow
// longCondition3 = price >= EMA_Medium and price > EMA_Slow
// longCondition2 = vrsi >= overSold and vrsi <= overBought
//longCondition & shortCondition ETHUSD
// 1.price > emaF > emaM > emaS
// 2.rsi overcross overS
longC1 = price > emaF and price > emaM and price > emaS
// longC1 = ta.crossover(emaF, emaM)
longC2 = if longC1
co
// shortC1 = EMA_Fast < EMA_Medium //and EMA_Fast < EMA_Slow and EMA_Medium < EMA_Slow //and cu
// shortC2 = overBought > vrsi //and vrsi < overBought //overSold < vrsi and vrsi < mediumLine
// exitLong Condition
// 1.price < emaF < emaM < emaS
// 2.rsi overcross mediumLine
exitLong1 = ta.crossunder(emaF, emaM) //or emaF < emaM//and price < emaM and price < emaF
exitLong2 = ta.crossunder(vrsi,mLine)
//exitLong3 = price < emaM
//strategy.entry
if time >=start and time <=end
strategy.entry("Buy", strategy.long , when = longC1 and longC2)
// if(exitLong1 or exitLong2)
strategy.close("Buy" , when = exitLong1 or exitLong2)
// exitShort1 = EMA_Fast > EMA_Medium
// //exitShort2 = ta.crossover(vrsi , mediumLine)
// exitShort2 = ta.crossunder (vrsi,mediumLine)
// strategy.close("Short" , when = exitShort1 or exitShort2)
// //shortCondition = cu
// //if (shortCondition1 and shortCondition2)
// //strategy.entry("My Short Entry Id", strategy.short)