Esta é uma estratégia de negociação baseada no cruzamento de médias móveis duplas. Ela gera sinais de compra e venda quando duas médias móveis de comprimentos diferentes se cruzam. Especificamente, ela fica longa quando o MA mais rápido cruza acima do MA mais lento e fica curta quando o MA mais rápido cruza abaixo do MA mais lento.
A lógica central desta estratégia está nos princípios de cruzamento entre duas médias móveis. Uma média móvel é o preço médio aritmético durante um período de tempo especificado.
Nesta estratégia, a MA de curto prazo capta tendências de curto prazo, enquanto a MA de longo prazo capta tendências de longo prazo.
Especificamente, a estratégia calcula os MA usando ta.sma sobre o long_period e short_period definidos pelos usuários. Em seguida, usa ta.crossover e ta.crossunder para detectar o crossover dourado e o crossover da morte entre os dois MA. Quando o MA curto cruza acima do MA longo, vá longo. Quando o MA curto cruza abaixo, vá curto.
As principais vantagens desta estratégia incluem:
Há também vários riscos:
Para mitigar os riscos, podem ser ajustados parâmetros, incorporados stop loss e take profit ou podem ser adicionados outros indicadores técnicos.
Há espaço para uma maior otimização:
Em conclusão, esta é uma estratégia de início ideal para a negociação algorítmica, graças à sua simplicidade em lógica e parâmetros, enquanto ainda é capaz de capturar efetivamente as reversões do mercado.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true) // User-defined input for moving averages long_period = input(20, title="Long Period") short_period = input(5, title="Short Period") type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"]) // Calculating moving averages long_ma = ta.sma(close, long_period) short_ma = ta.sma(close, short_period) // Plot moving averages plot(long_ma, title="Long Moving Average", color=color.red) plot(short_ma, title="Short Moving Average", color=color.green) // Strategy logic for crossing of moving averages longCondition = ta.crossover(short_ma, long_ma) shortCondition = ta.crossunder(short_ma, long_ma) // Entry orders if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Optional: Add stop loss and take profit stop_loss_perc = input(1, title="Stop Loss (%)") / 100 take_profit_perc = input(2, title="Take Profit (%)") / 100 strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc)) strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))