Трехмерная стратегия EMA - это стратегия, очень подходящая для отслеживания тенденций на рынке. Она использует три EMA разных периодов в качестве торговых сигналов для установления длинных или коротких позиций при наличии достаточного подтверждения тренда.
Преимущество этой стратегии заключается в том, что она может уменьшить ложные сигналы и обеспечить достаточную силу тренда перед входом в позицию.
Стратегия использует 7--, 14- и 21-периодные EMA в качестве индикаторов сигналов входа.
Эта конструкция может уменьшить ложные сигналы и гарантировать, что тенденция достаточно ясна до входа.
Стратегия использует адаптивную систему стоп-лосса, основанную на ATR и максимальном снижении. Она рассчитывает волатильность цен в режиме реального времени и соответствующим образом устанавливает линии стоп-лосса. В частности, она рассчитывает определенное кратное ATR в качестве буферной зоны стоп-лосса.
Во время восходящего тренда линия стоп-лосса будет двигаться вверх с новыми максимумами, с хорошим эффектом преследования. Когда цена опять опускается до низкой точки буферной зоны, линия стоп-лосса будет активирована для закрытия позиций. Это может контролировать риск стоп-лосса в соответствии с рыночными условиями.
Стратегия использует фиксированный процентный метод получения прибыли. После открытия позиции линия получения прибыли будет установлена на определенный процент выше входной цены. Когда цена поднимется до линии получения прибыли, позиция будет закрыта для получения прибыли.
Преимущество этого фиксированного процента прибыли заключается в том, что он позволяет заранее установить целевой уровень прибыли, который будет удовлетворять выход, как только он будет достигнут.
Может избежать слепого открытия позиций на волатильных рынках, сочетаясь с индикаторами оценки тренда; также может использовать перемещающиеся методы получения прибыли или коэффициент прибыли, чтобы сделать методы получения прибыли более гибкими.
Стратегия также может быть оптимизирована в следующих аспектах:
Используйте больше индикаторов для определения времени входа, таких как MACD, KD и т. Д., Чтобы избежать ловушки волатильных рынков.
Попробуйте переместить методы получения прибыли, или соотношение прибыли, чтобы сделать методы получения прибыли более гибкими.
Добавление механизма снижения к методу остановки убытков, позволяющего отслеживать более низкие точки снова, когда цена снова падает, тем самым контролируя риск.
Корректировать параметры периода EMA на основе характеристик различных продуктов, оптимизируя суждение о тренде.
Добавить модуль размещения позиций, может регулировать по размеру торговли на основе соотношения использования средств.
Стратегия последовательности трендов Тройной ЕМА - это очень практичная стратегия последовательности трендов. Она обладает сильными возможностями оценки трендов, а также адаптивными механизмами получения прибыли и остановки потерь, которые могут автоматически управлять ордерами. С точки зрения оптимизации системы получения прибыли и остановки потерь могут быть дополнительно улучшены для корректировки на основе рыночных условий в режиме реального времени.
/*backtest start: 2023-01-01 00:00:00 end: 2023-06-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" ema_1 = ema(close, input(7)) ema_2 = ema(close, input(12)) ema_3 = ema(close, input(21)) Take_profit= ((input (4))/100) longTakeProfit = strategy.position_avg_price * (1 + Take_profit) length = input(20, "Length", minval = 2) src = input(close, "Source") factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25) volStop(src, atrlen, atrfactor) => var max = src var min = src var uptrend = true var stop = 0.0 atrM = nz(atr(atrlen) * atrfactor, tr) max := max(max, src) min := min(min, src) stop := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src) uptrend := src - stop >= 0.0 if uptrend != nz(uptrend[1], true) max := src min := src stop := uptrend ? max - atrM : min + atrM [stop, uptrend] [vStop, uptrend] = volStop(src, length, factor) go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3) closeLong = close > longTakeProfit or crossunder(close, vStop) //Entry strategy.entry(id="long", long = true, when = go_long and window()) //Exit strategy.close("long", when = closeLong and window()) plot(vStop,"Vstop", color.black, linewidth=2) plot(ema_1,"EMA Short", color.green, linewidth=1) plot(ema_2,"EMA Mid", color.purple, linewidth=1) plot(ema_3,"EMA Long", color.red, linewidth=1)