Эта стратегия сочетает в себе несколько экспоненциальных скользящих средних (EMAs) для определения потенциальных точек входа и выхода на рынок.
Эта стратегия использует 4 EMA с различными периодами в качестве основных показателей, а именно сверхкороткосрочную EMA (8 периодов дефолта), краткосрочную EMA (13 периодов дефолта), среднесрочную EMA (21 период дефолта) и долгосрочную EMA (55 периодов дефолта). Когда долгосрочная EMA ниже трех других EMA, считается, что текущий рынок может находиться в начале восходящей тенденции, и стратегия открывает длинную позицию; когда долгосрочная EMA выше трех других EMA, считается, что текущий рынок может находиться в начале нисходящей тенденции, и стратегия закрывает все длинные позиции. Стратегия определяет поворотные моменты тенденции путем этой комбинации длинных и коротких EMA для улавливания зарождающихся тенденций.
По сравнению с простой скользящей средней (SMA), EMA делает больший акцент на недавних ценах, и, следовательно, его тенденция более чувствительна и может быстрее реагировать на изменения цен. Скрещивание EMA с различными периодами отражает силу тенденций на разных временных масштабах. Долгосрочная EMA является наиболее стабильной и представляет собой значительную тенденцию рынка; среднесрочные и краткосрочные EMA относительно чувствительны и отражают краткосрочные и среднесрочные рыночные тенденции. В совокупности они составляют основную логику этой стратегии.
Широкое применение: Эта стратегия основана на индикаторе EMA самой цены и применима к большинству сортов с хорошей ликвидностью и относительно плавными тенденциями, такими как различные фьючерсы, форекс, основные криптовалюты и т. Д.
Отслеживание тренда: путем сравнения позиционных отношений EMA с различными периодами для определения тренда, он может в определенной степени зафиксировать начало формирования тренда и отслеживать тенденцию.
Гибкие параметры: Периодические параметры EMA могут гибко корректироваться в зависимости от характеристик сортов, инвестиционного горизонта и т.д. и обладают определенной адаптивностью.
Ясная логика: стратегия генерирует торговые сигналы на основе простой комбинации длинных и коротких механизмов EMA, а логика ясна и легко понятна и реализована.
EMA lag: EMA является по существу индикатором отслеживания тренда и имеет определенное отставание, которое может генерировать больше ложных сигналов на турбулентном рынке.
Чувствительность параметров: выбор параметров периода EMA оказывает значительное влияние на эффективность стратегии, и оптимизированные параметры могут не поддерживать хорошую производительность на данных вне выборки.
Отсутствие фильтрации: данной стратегии не хватает дополнительной фильтрации торговых сигналов, и все генерируемые сигналы будут торговаться, что может привести к некоторым низкокачественным сделкам.
Фиксированная позиция: в настоящее время стратегия открывает фиксированную позицию на 1 единицу каждый раз, отсутствует динамический контроль позиции на основе риска, а управление рисками недостаточно совершенно.
Внедрение фильтрации трендов: на основе сигналов EMA добавьте индикаторы фильтрации силы тренда, такие как ATR и ADX, чтобы отфильтровать сигналы от слабых тенденций и турбулентных периодов.
Внедрение фильтрации волатильности: на основе фильтрации трендов может быть дополнительно введена фильтрация волатильности, такая как ширина полосы Боллинджера, для фильтрации сигналов низкого качества, которые могут быть вызваны высокой волатильностью.
Оптимизировать стоп-лосс: в настоящее время стратегии не хватает четкой логики стоп-лосса. После внедрения тренда и фильтрации волатильности можно добавить динамический стоп-лосс на основе ATR или процента, чтобы контролировать максимальную потерю одной сделки.
Динамическая позиция: исходя из волатильности разновидностей, доли стоимости счета и т. д., количество позиций, открытых стратегией каждый раз, может быть динамически контролировано с целью достижения более высокой абсолютной доходности при одновременном снижении риска.
Оптимизация параметров: для разных сортов и разных периодов оптимальные параметры EMA могут отличаться, и оптимизация параметров должна выполняться отдельно в соответствии с характеристиками сортов, чтобы улучшить применимость стратегии.
Эта стратегия определяет поворотные моменты тренда путем сравнения длинных и коротких комбинаций расположения 4 EMA с различными периодами, чтобы зафиксировать начало формирования тренда. Идея проста и ясна. Ее преимущества заключаются в широком диапазоне применимости, четкой логике и гибких параметрах, и она может хорошо отслеживать тенденции; но в то же время у нее также есть врожденное отставание показателей EMA, а также проблемы, такие как чувствительность параметров, отсутствие фильтрации и фиксированная позиция. В будущем надежность и рентабельность этой стратегии могут быть улучшены из таких аспектов, как внедрение фильтрации тренда и волатильности, оптимизация стоп-лосса, динамическая позиция и оптимизация параметров, чтобы сделать ее более полной и надежной.
/*backtest start: 2023-03-05 00:00:00 end: 2024-03-10 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/ // © n1ghthawk //@version=5 strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100) float long = na float short = na lowestEMAPeriodInput = input.int(8, "Lowest EMA") lowEMAPeriodInput = input.int(13, "Low EMA") medEMAPeriodInput = input.int(21, "Med EMA") highEMAPeriodInput = input.int(55, "High EMA") lowestEMA = ta.ema(close, lowestEMAPeriodInput) lowEMA = ta.ema(close, lowEMAPeriodInput) medEMA = ta.ema(close, medEMAPeriodInput) highEMA = ta.ema(close, highEMAPeriodInput) emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA longCondition = ta.change(emaLongCondition) shortCondition = ta.change(emaShortCondition) notInTrade = strategy.position_size <= 0 if longCondition and emaLongCondition and notInTrade long:=high strategy.entry("EL", strategy.long) if shortCondition and emaShortCondition short:=low strategy.close("EL") plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross) plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross) plot(lowestEMA, title = "lowestEMA", color=color.blue) plot(lowEMA, title = "lowEMA", color=color.green) plot(medEMA, title = "medEMA", color=color.orange) plot(highEMA, title = "highEMA", color=color.red)