Эта стратегия определяет входы и выходы на основе перекрестных ситуаций быстрой линии EMA (3), медленной линии EMA (11) и более медленной линии EMA (18), в сочетании с перекрестными линиями нулевой линии MACD. Это динамическая стратегия, которая использует комбинацию двойных индикаторов EMA и MACD для принятия торговых решений.
Стратегия основывается на двух технических показателях:
Для определения тренда и в качестве сигналов входа и выхода он использует перекресток быстрой EMA (3), медленной EMA (11) и более медленной EMA (18).
Индикатор MACD и его кроссворд нулевой линии. MACD состоит из DIFF и DEA. DIFF построен на быстрой EMA (3) минус медленной EMA (11). DEA - это EMA (27) MACD. MACD>0 указывает на рост, а MACD<0 указывает на снижение. Кроссворд нулевой линии выступает в качестве сигнала входа и выхода.
Согласно комбинации кроссовера EMA и кроссовера нулевой линии MACD, существует 3 возможности входа и 2 возможности выхода:
В целом, эта стратегия в полной мере использует преимущества двойной системы перекрестного использования EMA и индикатора MACD.
Он использует преимущества как перекрестного показателя EMA, так и MACD, повышая точность с помощью подтверждения с двумя индикаторами.
Существует 3 возможности длинного входа и 2 возможности выхода, увеличивая частоту торговли и потенциал прибыли.
Большое пространство для оптимизации динамических параметров. Длины быстрой EMA, медленной EMA, нулевой линии EMA и MACD могут быть оптимизированы.
Ясная логика позволяет легко отладки и оптимизации.
Как кроссовер EMA, так и индикатор MACD имеют некоторые ложные сигналы, которые могут привести к ненужным потерям.
Высокая частота торговли с небольшим размером стоп-лосса в каждой сделке, поэтому потери могут накапливаться.
Трудности с оптимизацией параметров. Неправильная оптимизация может привести к перенастройке.
Необходимо в полной мере учитывать влияние затрат на торговлю.
Для смягчения рисков:
Установите правильный стоп-лосс, чтобы ограничить потери в одиночных сделках.
Соответственно регулируйте параметры, чтобы избежать переустановки.
Рассмотрим влияние затрат на торговлю, например, сокращение частоты торговли.
Тест-альтернативы, такие как полосы Боллинджера, KDJ и т.д.
Оптимизировать параметры перекрестки EMA: изменение длины быстрой и медленной EMA.
Оптимизировать параметры MACD: изменение длин DIFF и DEA для расчета EMA.
Добавьте стратегии остановки потери: количество остановок торгов, временные остановки, остановки отслеживания и т.д.
Корректировать частоту входа с учетом затрат на торговлю.
Эта стратегия сочетает в себе двойную EMA кроссоверную систему и индикатор MACD для построения динамической параметровой стратегии с высокой частотой торговли и высокой рентабельностью. Кроме того, четкая логика позволяет легко понять и оптимизировать.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-05 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false) short = ema(close,3) long = ema(close, 11) long2 = ema(close, 18) //plot(short, color = red, linewidth = 4) //plot(long, color = blue, linewidth = 4) //plot(long2, color = green, linewidth = 4) isCross1 = crossover(short, long) isCross2 = crossover(short, long2) isCrossSell = crossunder(short, long) //isCross3 = crossover(long, long2) //plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar) //plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar) //plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar) //plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar) fastLength = input(3) slowlength = input(11) MACDLength = input(27) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) //signal delta = MACD - aMACD // histograma strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0)) strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1) strategy.entry("all in", strategy.long, comment="all in",when=isCross2) strategy.close("2nd in",when=isCrossSell) strategy.close("all in",when=isCrossSell) //strategy.close("2nd in",when=crossunder(delta, 0)) //strategy.close("all in",when=crossunder(delta, 0)) strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) histColour = (delta > 0) ? green : (delta < 0) ? red : #4169E1 plot(MACD,color=red,linewidth=2) plot(aMACD,color=blue,linewidth=2) plot(delta,style=histogram, color=histColour, linewidth=10) plot(0,color=white)