Эта стратегия определяет вход и выход путем вычисления пересечения быстрой линии EMA (<3); медленной линии EMA (<11) и медленной линии EMA (<18) в сочетании с нулевым пересечением MACD. Это динамическая стратегия, использующая двойные индикаторы EMA и MACD для принятия торговых решений.
Эта стратегия основана на двух технических аналитических показателях:
EMA сплошной линии пересекается; через быструю линию EMA (3), медленную линию EMA (11) и медленную линию EMA (18) пересекается и служит сигналом входа и выхода.
Индекс MACD и его нулевой перекресток. MACD состоит из дифференциальных значений (DIFF) и DEA. DIFF представляет собой быстролинейную EMA (DIFF) и EMA (DIFF) минус медленную EMA (DEA).
В зависимости от комбинации EMA-пересечения и MACD-пересечения нулевого оси, устанавливаются три возможности входа и две возможности выхода:
В целом, стратегия включает в себя двухэтапный EMA-кристалл и MACD-индикаторы, которые могут повысить стратегическую прибыльность путем динамического регулирования параметров уравнения и MACD-параметров.
Использование преимуществ EMA и MACD, чтобы улучшить точность.
Установка трёх дополнительных возможностей и двух ликвидационных возможностей увеличивает частоту стратегических сделок и расширяет возможности получения прибыли.
Размер пространства для оптимизации динамических параметров. Продолжительность быстрой линии EMA, медленной линии EMA, нулевой оси EMA и MACD также может быть оптимизирована.
Поскольку логика стратегии понятна, ее можно легко настроить и оптимизировать.
И перекресток EMA, и MACD могут привести к некоторому количеству ошибочных сообщений, что может привести к ненужным потерям.
Частота сделок высока, каждый отказ от продажи небольшой, а убытки имеют накопительный риск.
Оптимизация параметров очень сложна, а неправильная оптимизация может быть слишком приспособлена к историческим данным.
Необходимо в полной мере учитывать влияние затрат на транзакции.
Ориентироваться на риски:
1) Разумно установить стоп-затраты и сократить однократные убытки.
2) Правильное регулирование параметров, чтобы предотвратить переподборку.
3) учитывать влияние затрат, например, снижение частоты сделок;
Заменить другие показатели испытаний: например, ленты Брин, KDJ и т.д.
Оптимизировать параметры сходства EMA: изменить параметры длины EMA быстрой линии и EMA медленной линии.
Оптимизировать параметры MACD: изменить длину DIFF и DEA для вычисления EMA MACD.
Увеличение стратегии остановки убытков: например, остановки количества сделок, остановки времени, мобильные остановки убытков и т. д.
В связи с этим, мы должны учитывать влияние затрат на транзакции и корректировать количество посещений.
Эта стратегия использует комбинацию двух 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)