Эта стратегия является алгоритмической торговой стратегией, следующей за трендом. Она рассчитывает две линии EMA с различными параметрами и генерирует торговые сигналы, когда между двумя EMA возникают Золотой крест и Крест смерти. Стратегия также сочетает в себе несколько линий EMA для выхода из прибыли и устанавливает точки остановки потери для контроля рисков.
Стратегия использует 4 линии EMA, в том числе быструю EMA и медленную EMA, чей кроссовер используется для генерации сигналов покупки и продажи. Кроме того, две линии EMA с параметрами между быстрыми и медленными EMA используются для частичного или полного выхода из позиций заранее, чтобы закрепить прибыль.
В частности, когда быстрая EMA пересекает более медленной EMA, генерируется сигнал покупки. Когда быстрая EMA пересекает ниже медленной EMA, генерируется сигнал продажи. Это типичная стратегия перекрестного движения с двойной EMA. Чтобы лучше отслеживать тенденции и увеличивать прибыльность, после входа в позицию стратегия выйдет из части или всей позиции, когда быстрая EMA пересекает выше второй линии EMA или когда быстрая EMA пересекает ниже третьей линии EMA.
Кроме того, стратегия устанавливает как длинные, так и короткие точки остановки убытков для предотвращения чрезмерных потерь.
По сравнению с типичной стратегией перекрестного использования двойной EMA основные преимущества этой стратегии включают:
Установка нескольких линий EMA для выхода из прибыли может лучше зафиксировать прибыль и предотвратить сокращение прибыли во время последующих снижений.
Краткая позиция имеет меньшую стоп-лосс, которая может выдерживать большие нормальные колебания рынка и предотвращать частые стоп-лосс.
Установка линий EMA с различными параметрами выхода прибыли позволяет выбрать оптимальную точку выхода на основе рыночных условий.
Общая стратегия обладает хорошей способностью следовать тенденциям и получать большую прибыль от среднесрочных и долгосрочных тенденций.
К основным рискам этой стратегии относятся:
На рынках с ограниченным диапазоном часто появляются торговые сигналы, генерируемые линиями EMA, что может привести к чрезмерной торговле.
Короткий стоп-лосс может только предотвратить экстремальные рыночные условия и не может предотвратить значительные снижения в счете стратегии.
Риск снижения прибыли по-прежнему существует, и при долгосрочной корректировке прибыль может значительно сократиться.
Стратегия чувствительна к настройке параметров. Неправильная конфигурация может привести к отказу стратегии.
С учетом вышеуказанных рисков стратегия может быть оптимизирована в следующих аспектах:
Увеличить алгоритмы машинного обучения, чтобы помочь в оценке трендов и уменьшить вероятность ошибочных торгов.
Усиление адаптивного механизма стоп-лосса для динамической корректировки стоп-лосса на основе волатильности рынка.
Установите использование капитала, чтобы избежать чрезмерного использования капитала и увеличить механизм управления позициями.
Выбирать товары с очевидными тенденциями и высокими колебаниями.
Увеличить модуль оптимизации параметров для автоматической оптимизации и обновления параметров.
В целом, стратегия двойной EMA является экономически эффективной стратегией следования тренду. Она имеет такие преимущества, как несколько линий EMA для получения прибыли, небольшие короткие остановки и хорошая способность следовать тренду. Однако с этой стратегией все еще есть некоторые риски. Для улучшения стабильности необходима дальнейшая оптимизация настроек параметров и включение алгоритмов машинного обучения.
/*backtest start: 2023-02-19 00:00:00 end: 2024-02-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © RealTraderAkeme //@version=5 strategy("AKEME_EMA_CROSS_V6", overlay=true) ////////////////////////////////////////////////////////////PARAMETERS///////////////////////////////////////////////////////////////// emaFast_op = input(title="Fast_EMA", defval=6) emaSlow_op = input(title="Slow_EMA", defval=26) emaExit_op = input(title="Sell_EMA_Exit",defval=10) emabuyExit_op = input(title="Buy_EMA_Exit",defval=20) Order_Value = input(defval=1000, title="Order_Value in Pounds") Direction_Of_Trade = input(title="Trade Direction", defval="Both") ////////////////////////////////////////////////////////////INPUTS////////////////////////////////////////////////////////////////// fastEMA = ta.ema(close, emaFast_op) slowEMA = ta.ema(close,emaSlow_op) emaExit = ta.ema(close,emaExit_op) emabuyExit = ta.ema(close,emabuyExit_op) Entry_Ratio = strategy.openprofit/Order_Value //////////////////////////////////////////////////////////GRAPHS////////////////////////////////////////////////////////////////// plot(fastEMA, color=color.orange, linewidth = 2) plot(slowEMA,color = color.blue, linewidth = 2) plot(emaExit,color = color.gray, linewidth = 2) plot(series=emabuyExit, color= color.rgb(210, 74, 235), linewidth=2) /////////////////////////////////////////////////////Conditions////////////////////////////////////////////////////////////////////// longOK = (Direction_Of_Trade == "Long") or (Direction_Of_Trade == "Both") shortOK = (Direction_Of_Trade == "Short") or (Direction_Of_Trade == "Both") ///////////////////////////////////////////////////////////ENTRIES&EXITS/////////////////////////////////////////////////////////////// longCondition = ta.crossover(fastEMA, slowEMA) and longOK if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = ta.crossunder(fastEMA, slowEMA) and shortOK if (shortCondition) strategy.entry("Sell", strategy.short) if (strategy.position_size > 0 and shortCondition) strategy.exit(id="exit Buy", stop=close) if (strategy.position_size < 0 and longCondition) strategy.exit(id="exit Sell", stop=close) /////////////////////////////////////////////////////TAKE PROFIT CONDITIONS//////////////////////////////////////////////////////// if ta.crossunder(fastEMA, emabuyExit) and Entry_Ratio > 0.08333 strategy.close("Buy",comment = "Exit") if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.016666 strategy.close("Sell",comment = "Exit") if Entry_Ratio > 0.4166666 //0.4166666 strategy.close("Buy",comment = "Exit", qty_percent = 100) if Entry_Ratio > 0.0833333//0.0833333 strategy.close("Sell",comment = "Exit")//50 if Entry_Ratio > 0.1111111//4000 strategy.close("Sell",comment = "Exit", qty_percent = 50) if ta.crossover(fastEMA, emaExit) and Entry_Ratio > 0.278 //Percentage strategy.close("Sell",comment = "Exit") ////////////////////////////////////////////STOP LOSS AS PERCENTAGE OF ENTRY CONDITIONS/////////////////////////////////////////// if Entry_Ratio < -0.05555555555 strategy.close("Buy",comment = "Exit") if Entry_Ratio < -0.027777777777 strategy.close("Sell",comment = "Exit")// The Sell Stoloss is half the buying stoploss.