
Это количественная торговая стратегия, которая сочетает в себе движущиеся средние MACD, RSI и EMA. Она использует MACD Gold Fork, RMSI High Reversal и падение цены над EMA Moving Average в качестве стоп-выхода, чтобы отслеживать длинные тренды на рынке.
Стратегия основана на трех показателях, используемых для определения и реализации торговых сигналов:
MACD: рассчитывает быструю линию, медленную линию и столбики MACD. Стратегия использует быстрый и медленный линейные форки для определения времени покупки.
RSI: рассчитывает RSI на 14 циклов и устанавливает линию перекупа и перепродажи. Стратегия использует круговой RSI-высокий уровень для предотвращения риска перекупа.
EMA: вычисляет 50-дневную среднюю линию EMA.
Сигнал покупки появляется, когда MACD-быстрая линия прорывает медленную линию вниз, образуя золотую вилку. В то же время требуется, чтобы индикатор RSI в этот момент был выше 50, то есть был в состоянии перекупа, что помогает уловить восходящую тенденцию в этом туре. В конце концов, покупка действительно осуществляется, когда цена выше 50-дневной EMA.
Если цена опустится ниже 50-дневной EMA или MACD, то будет выполнена операция по ликвидации убытков.
Эта стратегия объединяет в себе преимущества трех индикаторов: MACD, RSI и EMA, что позволяет лучше отслеживать прорывы.
MACD Gold Fork обладает некоторой предвзятостью, которая позволяет заранее уловить рыночные моменты покупки.
Основанный на круговой линии RSI эффективно отфильтровывает краткосрочные перекупки и удерживает тенденцию к росту на долгой линии в этом раунде.
EMA-стоп позволяет своевременно прекратить убытки от судонг-операций и эффективно контролировать DD.
В целом, эта стратегия позволяет успешно ловить прорыв на средней и длинной линии, а также получать хорошую прибыль от прорыва вверх.
Следующие риски требуют особого внимания:
MACD Gold Fork имеет определенную отсталость и может пропустить лучшую точку покупки.
Параметры RSI и EMA требуют многократного тестирования и оптимизации, в противном случае они могут не сработать.
Лучшие моменты для покупки не обязательно появляются в момент золотой форки, есть определенный момент риска.
Слишком мягкая настройка стоп-убытков может привести к большему DD, а слишком строгая - к прорыву пробелов.
В этой стратегии есть несколько оптимизационных направлений:
Можно тестировать оптимальные комбинации MACD-парадигм, чтобы найти лучшие точки равновесия.
Параметры RSI также могут быть оптимизированы для циклов и линий сверхпокупа и сверхпродажи.
Периодические перемещения EMA также могут быть скорректированы, чтобы найти более оптимальные параметры.
Второе подтверждение времени покупки может быть основано на комбинации высокотехнологичных индикаторов, таких как индикатор KDJ и т. д.
Можно протестировать стратегию остановки убытков, использовать стратегию процентной перемещения убытков или количественной остановки убытков, чтобы убытки были более интеллектуальными.
Эта стратегия в целом является более типичной средне-длинной стратегией типа слежения. Она объединяет несколько индикаторов, таких как MACD, RSI и EMA, для оценки времени покупки, с целью получения оптимальной точки входа. В то же время принимаются меры по борьбе с убытками для контроля риска торговли.
/*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("MACD, EMA, and RSI Strategy", overlay=true)
// Input for MACD
fastLength = input(5, title="Fast Length")
slowLength = input(13, title="Slow Length")
signalLength = input(9, title="Signal Length")
// Input for EMA
emaLength = input(21, title="EMA Length")
// Input for RSI
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(50, title="RSI Overbought Level")
// Calculate MACD on the weekly timeframe
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
// Calculate 50-day EMA
ema50 = ta.ema(close, emaLength)
// Calculate RSI on the weekly timeframe
rsi = ta.rsi(close, rsiLength)
// Condition for Buy Entry
buyCondition = ta.crossover(macdLine, 0) and dayofweek == dayofweek.monday and rsi > rsiOverbought
// Condition for Sell Exit
sellCondition = ta.crossunder(close, ema50) or ta.crossunder(macdLine, 0)
// Execute Buy Entry on the next day's open
if buyCondition
strategy.entry("My Long Entry Id", strategy.long)
// Execute Sell Exit on the next day's open
if sellCondition
strategy.close("My Long Entry Id")
// Plotting MACD and EMA
plot(macdLine - signalLine, title="MACD Histogram", color=color.blue, style=plot.style_histogram)
hline(0, "Zero Line", color=color.gray)
plot(ema50, title="50-day EMA", color=color.red)
// Plotting RSI
hline(rsiOverbought, "RSI Overbought", color=color.red)
plot(rsi, title="RSI", color=color.green)