Esta estratégia é projetada com base na cruz de ouro e cruz morta de médias móveis rápidas e lentas. Quando o MA rápido cruza acima do MA lento, vá longo. Quando o MA rápido cruza abaixo do MA lento, vá curto. Esta estratégia é adequada para negociação de médio a longo prazo e pode capturar inversões de tendência no mercado.
A estratégia usa a média móvel exponencial (EMA) para calcular as linhas rápidas e lentas. O comprimento do MA rápido é de 10 períodos e o comprimento do MA lento é de 30 períodos. A estratégia primeiro calcula o EMA rápido e o EMA lento, em seguida, traça as linhas e mostra diferentes fundos coloridos para indicar a direção da tendência.
Quando o fechamento de hoje está acima da MA rápida e a MA rápida está acima da MA lenta, o fundo é verde, indicando uma tendência ascendente.
Em uma tendência ascendente, se houver um candelabro vermelho (fechar abaixo do aberto) e ontem também foi um candelabro vermelho, vá longo.
Em uma tendência descendente, se houver um candelabro verde (fechar acima do aberto) e ontem também foi um candelabro verde, vá curto.
Após a abertura de uma posição em cada direção, se o tempo de retenção exceder 1008000000 milissegundos (cerca de 2 semanas), forçar o fechamento da posição para evitar o impasse.
Em geral, esta estratégia é bastante equilibrada, usando EMA dupla para tendência e filtros de candelabro com regras adicionais para evitar sinais falsos.
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 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/ // © yeainshukla //@version=5 strategy('BuyRedSellGreen4H', overlay = true) greenCandle = close > open redCandle = open > close start = timestamp(2023,9,18,0,00) end = timestamp(2023,12,31,0,00) fastLength = input.int(10, title="Fast Average Length") slowLength = input.int(30, title="Slow Average Length") averageData = input.source(close, title="Average Data Source") // Calculate exponential moving averages fastAverage = ta.ema(averageData, fastLength) slowAverage = ta.ema(averageData, slowLength) // Plot averages plot(fastAverage, color=color.navy, title="Fast EMA") plot(slowAverage, color=color.fuchsia, linewidth=2, title="Slow EMA") // Show the moving average trend with a coloured background backgroundColor = if close > fastAverage and fastAverage > slowAverage color.new(color.green, 85) else if close < fastAverage and fastAverage < slowAverage color.new(color.red, 85) else color.new(color.orange, 90) bgcolor(backgroundColor, title="EMA Background") if time >= start and time < end if(close < open) if(close[1] < open[1]) strategy.entry("Enter Long", strategy.long) strategy.exit("Exit Long", from_entry="Enter Long") strategy.close("Enter Short") else if(close[1] > open[1]) strategy.entry("Enter Short", strategy.short) strategy.exit("Exit Short", from_entry="Enter Short") strategy.close("Enter Long") if strategy.position_size < 0 or strategy.position_size > 0// short and long is opened. if((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) > 1008000000) strategy.close("Enter Short") strategy.close("Enter Long")