
Стратегия представляет собой комплексную систему отслеживания тенденций, которая сочетает в себе несколько технических показателей и методы анализа динамики. В основе стратегии лежит использование равнолинейного скрещивания, признания тенденций и объединения динамических показателей для контроля риска с помощью волатильности, для эффективного управления рисками и контроля за рыночными тенденциями.
Стратегия использует многоуровневый механизм подтверждения сигнала, который включает в себя следующие ключевые элементы:
Условия транзакции для многосигнального комбинированного суждения следующие: Многоусловность: проход через EMA21 на EMA9, MACD-линия больше сигнальной и положительна, RSI между 40-70, цена выше EMA9 Условия вакуума: проход через EMA21 под EMA9, MACD-линия меньше сигнальной и отрицательная, RSI в пределах 30-60; цена ниже EMA9
С помощью комбинации использования множества технических показателей стратегия создает относительно целостную систему торговли с отслеживанием тенденций. Основные преимущества стратегии заключаются в надежности сигналов и рациональности управления рисками, но в то же время существуют определенные проблемы с отставанием и оптимизацией параметров.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estratégia Cripto - 1D", shorttitle="Estratégia Cripto", overlay=true)
// Definição das Médias Móveis Exponenciais (EMA)
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// Definição do MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Definição do RSI
rsi = ta.rsi(close, 14)
// Volume médio
volMedio = ta.sma(volume, 14)
// Definição das Bollinger Bands
basis = ta.sma(close, 20)
dev = ta.stdev(close, 20)
upperBand = basis + 2 * dev
lowerBand = basis - 2 * dev
// Condições de Compra (Long)
longCondition = (ema9 > ema21) and (macdLine > signalLine) and (macdLine > 0) and (volume > volMedio) and (rsi > 40 and rsi < 70) and (close > ema9)
if (longCondition)
strategy.entry("Compra", strategy.long)
// Condições de Venda (Short)
shortCondition = (ema9 < ema21) and (macdLine < signalLine) and (macdLine < 0) and (volume > volMedio) and (rsi < 60 and rsi > 30) and (close < ema9)
if (shortCondition)
strategy.entry("Venda", strategy.short)
// Stop Loss e Take Profit
strategy.exit("Take Profit/Stop Loss", from_entry="Compra", loss=200, profit=400)
strategy.exit("Take Profit/Stop Loss", from_entry="Venda", loss=200, profit=400)
// Plotagem das Médias Móveis e Bollinger Bands
plot(ema9, color=color.green, title="EMA 9")
plot(ema21, color=color.red, title="EMA 21")
plot(upperBand, color=color.blue, title="Upper Band")
plot(lowerBand, color=color.blue, title="Lower Band")