
Эта стратегия является торговой стратегией, основанной на сглаженном пересечении скользящих средних. Она использует 50-циклическую индикаторную скользящую среднюю ((EMA) в качестве основного технического показателя, чтобы получить прибыль, когда ценовая линия пересекает EMA снизу, а при пересечении EMA сверху вниз.
Основная идея заключается в том, чтобы использовать 50-циклическую ЭМА в качестве инструмента для определения ценовой тенденции. Линия ЭМА позволяет сглаживать данные о ценах, удаляя краткосрочный рыночный шум и отражая более долгосрочную направленность ценовой тенденции.
В частности, стратегия включает в себя следующее:
Вводные параметры: установить длину цикла EMA на 50 ◦
Расчетные показатели: вызов функции ta.ema рассчитывает 50 циклов EMA.
Условия входа: при прохождении линии EMA над ценой генерируется многосигнал, при прохождении линии EMA под ценой генерируется пустой сигнал.
Условия выхода: наивысшая / наименьшая цена, зарегистрированная при входе, цена впоследствии превышает эту цену.
Визуализация: нанести на карту линию EMA, обозначить входные и выходные точки с многочисленными вакансиями.
С помощью этого метода мы можем торговать по ходу, следуя тренду, и своевременно прекращать убытки, когда цена начинает поворачиваться.
По сравнению с другими показателями и стратегиями, EMA имеет несколько значительных преимуществ:
Простая интуиция。 Основные показатели имеют только одну линию EMA, их легко понять и использовать。 не возникает сложностей с показателями。
Гибкая адаптация│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
Поймать тренд│ │EMA может эффективно сглаживать данные о ценах, улавливая изменения среднесрочных и долгосрочных тенденций │
Отмена контроля│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
В этой стратегии также есть некоторые риски, в частности:
Потеря тренда❚ Когда цены сильно колеблются, линия EMA не может вовремя захватить переломный момент и может пропустить момент перехода тенденции ❚ может быть проверена в сочетании с другими показателями, такими как ленты Брин.
Преждевременная ликвидацияПреждевременная остановка может быть более легко достижимой. Можно рассмотреть такие методы, как мобильный стоп, расширенный стоп-диапазон.
Настройка параметров❚ Неподходящий цикл EMA может привести к многократным ошибочным сигналам. Для различных циклов и рыночных колебаний необходимо скорректировать параметры EMA.
В этой стратегии есть место для дальнейшей оптимизации:
В сочетании с подтверждающим сигналом индикатора по Бринской полосе, избегайте создания ошибочного сигнала на линии EMA.
Улучшение механизмов остановки убытков, применение методов, таких как мобильный остановка, осмотр колебаний, чтобы избежать преждевременного остановки убытков.
Оптимизируйте параметры EMA в зависимости от рынка и вида сделки, чтобы найти наиболее подходящий период.
Добавлен модуль автоматической оптимизации параметров, позволяющий стратегии самостоятельно искать оптимальную комбинацию параметров.
Эта стратегия основана на показателях EMA, которые определяют направление ценовой тенденции, в зависимости от того, что золотой форк делает больше и мертвый форк делает меньше. Эта стратегия проста и проста в использовании, и она может быть использована для того, чтобы улавливать ценовые тенденции и контролировать риск. Эта стратегия также может быть оптимизирована дополнительно, в сочетании с дополнительными индикаторными фильтрационными сигналами, улучшением механизма остановки убытков и т. Д. В целом, эта стратегия пересечения плавных движущихся средних стоит внимания и рассмотрения.
/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA 50 Crossover Strategy", shorttitle="EMA 50 xover", overlay=true)
// Input for EMA length
emaLength = input(50, title="EMA Length")
// Calculate EMA 50
ema50 = ta.ema(close, emaLength)
// Define conditions for long entry
longCondition = ta.crossover(close, ema50)
// Define conditions for short entry
shortCondition = ta.crossunder(close, ema50)
// Calculate the high of the signal candle for long entry
var float longSignalHigh = na
if (longCondition)
longSignalHigh := high
// Calculate the low of the signal candle for short entry
var float shortSignalLow = na
if (shortCondition)
shortSignalLow := low
// Long entry
plotshape(series=longCondition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
// Short entry
plotshape(series=shortCondition, title="Short Entry Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Exit conditions
longExitCondition = ta.crossunder(close, longSignalHigh)
shortExitCondition = ta.crossover(close, shortSignalLow)
// Plot exit signals
plotshape(series=longExitCondition, title="Long Exit Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=shortExitCondition, title="Short Exit Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
// Strategy entry and exit logic
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=longExitCondition)
strategy.close("Short", when=shortExitCondition)
// Plot EMA 50
plot(ema50, title="EMA 50", color=color.blue)