Стратегия экспоненциальной движущейся средней по тренду - это количественная торговая стратегия, основанная на тенденциях. Она использует экспоненциальные движущиеся средние (EMAs) с различными периодами для выявления потенциальных сигналов входа и выхода на крипторынке. Отслеживая перекрестности между различными EMA, можно обнаружить как возможности отступления, так и возможности входа в тренд, чтобы максимизировать потенциальные прибыли, снижая риски.
Стратегия использует четыре EMA с периодами 8, 12, 24 и 72 соответственно. Они служат визуальными руководствами на графике для направления тренда. Когда цена закрытия проходит через более медленные EMA, это сигнализирует о возможностях покупки. Когда более быстрые EMA проходят через более медленные, это сигнализирует о возможностях продажи.
Есть два входных сигнала:
Есть три выхода:
Наибольшее преимущество этой стратегии заключается в возможности использования как возможностей для отката, так и возможностей для тренда. Использование более быстрых и медленных комбинаций EMA предотвращает заблуждение от краткосрочных колебаний.
Необходимо предотвратить некоторые риски:
Следующие меры могут помочь контролировать вышеуказанные риски:
Есть возможности для дальнейшей оптимизации:
В целом эта стратегия отслеживания EMA использует как тренд, так и возможности отката через перекрестки EMA для записей. Благодаря высокой конфигурабельности, простоте и эффективному контролю рисков, она имеет большой потенциал для более высокой производительности с настройкой параметров и дополнительными усовершенствованиями.
/*backtest start: 2023-10-31 00:00:00 end: 2023-11-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © moondevonyt //@version=5 strategy("Cornoflower Trend Following Crypto", overlay=true) // Input Settings lenEma8 = input(8, title="Length of 8 EMA") lenEma12 = input(12, title="Length of 12 EMA") lenEma24 = input(24, title="Length of 24 EMA") lenEma72 = input(72, title="Length of 72 EMA") // Calculate the EMAs ema8 = ta.ema(close, lenEma8) ema12 = ta.ema(close, lenEma12) ema24 = ta.ema(close, lenEma24) ema72 = ta.ema(close, lenEma72) // Entry Conditions pullbackEntry = ta.crossover(close, ema12) and ta.crossover(close, ema24) and ta.crossover(close, ema72) initialEntry = ta.crossover(close, ema72) and ta.crossover(ema8, ema12) and ta.crossover(ema8, ema24) // Exit Conditions profitTarget = 100 // Example target in pips, adjust according to your preference trailingStop = 50 // Example trailing stop value in pips, adjust according to your preference exitCondition = ta.crossunder(ema12, ema24) // Execute Strategy if pullbackEntry strategy.entry("Pullback Entry", strategy.long) if initialEntry strategy.entry("Initial Entry", strategy.long) if strategy.position_size > 0 strategy.exit("Profit Target", "Pullback Entry", limit=close + (profitTarget * syminfo.mintick)) strategy.exit("Trailing Stop", "Pullback Entry", stop=close - (trailingStop * syminfo.mintick), trail_points=trailingStop) strategy.exit("Exit Condition", "Initial Entry", stop=close, when=exitCondition) // Plot EMAs plot(ema8, color=color.yellow, title="8 EMA", linewidth=1, style=plot.style_line) plot(ema12, color=color.purple, title="12 EMA", linewidth=1, style=plot.style_line) plot(ema24, color=color.blue, title="24 EMA", linewidth=1, style=plot.style_line) plot(ema72, color=color.rgb(235, 255, 59), title="72 EMA", linewidth=1, style=plot.style_line)