Quando a média móvel de curto prazo (9 dias MA) cruza acima da média móvel de longo prazo (15-dia MA), indica um impulso ascendente de curto prazo mais forte para ir longo. Quando a MA de curto prazo cruza abaixo da MA de longo prazo, sinaliza um impulso descendente de curto prazo mais forte para ir curto. Além disso, o ângulo da MA precisa ser maior que 30 graus para garantir poder ascendente ou descendente suficiente. Padrões específicos de velas intradiárias são usados para filtrar sinais falsos.
Esta estratégia utiliza principalmente a capacidade de seguir tendências de médias móveis e as características de certos padrões de velas.
Esta estratégia combina indicadores de média móvel e padrões de velas intradiários para efetivamente filtrar o ruído e tornar os sinais de negociação mais confiáveis. Especialmente com o limiar de ângulo, garante que haja um momento de mudança de preço suficiente antes de gerar sinais, evitando sinais falsos desnecessários. Além disso, os níveis de stop loss e take profit podem limitar automaticamente a perda máxima e a redução de lucro. Estas medidas melhoram tanto a estabilidade quanto a lucratividade.
Como um indicador de tendência, a média móvel pode capturar tendências de preços de médio a longo prazo. Os velas intradiários refletem a comparação de poder dos participantes do mercado de curto prazo. Usá-los juntos pode obter implicações comerciais em diferentes prazos. Esta estratégia integra os pontos fortes de vários indicadores e deve alcançar um bom desempenho na negociação real.
Os principais riscos desta estratégia incluem:
Risco de ruptura falsa. Durante a consolidação do mercado, as médias móveis podem ter várias cruzadas, a maioria das quais são sinais falsos.
Risco de otimização de parâmetros. Diferentes mercados se adaptam de forma diferente às configurações de parâmetros. A aplicação direta de um conjunto de parâmetros sem ajuste pode levar a perdas. Parâmetros adequados precisam ser encontrados por meio de backtesting e negociação de papel.
Em geral, esta estratégia pode gerar alguns sinais falsos e perseguir riscos elevados/baixos sem considerar as condições do mercado.
Os seguintes aspectos desta estratégia podem ser melhorados:
Adicionar análise das principais tendências, por exemplo, confirmar canais de médio/longo prazo, para evitar negociações contra tendências.
Combine a análise dos fundamentos, selecione ações com melhores perspectivas e ganhos para melhorar a taxa de ganho.
As orientações de otimização acima referidas deverão melhorar significativamente a rentabilidade e a estabilidade desta estratégia.
O próximo passo é melhorar ainda mais a taxa de vitória e a lucratividade através da otimização de parâmetros. Adicionar mais indicadores também pode fortalecer a robustez.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true) // Define input parameters fast_length = input(9, "Fast MA Length") slow_length = input(15, "Slow MA Length") stop_loss_percent = input(0.25, "Stop Loss (%)") target_percent = input(0.25, "Target (%)") angle_threshold = input(30, "Angle Threshold (degrees)") // Calculate moving averages fast_ma = sma(close, fast_length) slow_ma = sma(close, slow_length) // Define candlestick patterns is_pin_bar() => pin_bar = abs(open - close) > 2 * abs(open[1] - close[1]) high_tail = max(open, close) - high > abs(open - close) * 1.5 low_tail = low - min(open, close) > abs(open - close) * 1.5 pin_bar and high_tail and low_tail is_marubozu() => marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75 no_upper_shadow = high == max(open, close) no_lower_shadow = low == min(open, close) marubozu and no_upper_shadow and no_lower_shadow is_full_body() => full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95 full_body // Plot moving averages plot(fast_ma, color=color.blue, title="Fast MA") plot(slow_ma, color=color.red, title="Slow MA") // Calculate angle of slow moving average ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159)) // Generate buy/sell signals based on angle condition and candlestick patterns buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body()) sell_signal = crossunder(fast_ma, slow_ma) // Calculate stop-loss and target levels stop_loss_level = close * (1 - stop_loss_percent / 100) target_level = close * (1 + target_percent / 100) // Execute trades based on signals with stop-loss and target strategy.entry("Buy", strategy.long, when=buy_signal) strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level) // Plot buy/sell signals on chart (optional) plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Plot angle line hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)