
Обзор
Это торговая стратегия, основанная на принципе средней регрессии, использующая значительное отклонение между ценой и 50-циклической скользящей средней (EMA) для определения возможности для торговли. Эта стратегия специально разработана для высоковолатильных рынков и предназначена для получения прибыли, покупая цены значительно ниже нижней части EMA и продавая их, когда цена восстанавливается выше EMA.
Стратегический принцип
Центральная логика стратегии основана на теории средневекового регресса, согласно которой цена может отклониться от средней в краткосрочной перспективе, но в долгосрочной перспективе будет склоняться к возврату к средней. В частности, стратегия использует 50-циклическую ЭМА в качестве среднего значения цены, когда цена значительно ниже этой средней (более 10%), рассматривая это как возможность купить; когда цена возвращается выше ЭМА и имеет прибыль, это вызывает сигнал продажи.
- Использование 50-циклической EMA в качестве базовой линии
- Процентное отклонение цены от EMA:
diff_perct = ((ema20 - close) / ema20) * 100
- Процентное отклонение от максимальной цены от EMA:
diff_perct2 = ((high - ema20) / ema20) * 100
- Когда
diff_perct > 10когда цена (то есть более чем на 10% ниже EMA) вызывает сигнал покупки
- Когда
diff_perct2 > 0(то есть максимальная цена выше EMA) и текущая прибыль от торгов больше 1, вызвать сигнал продажи
Стратегические преимущества
- Конкретные условия приема: стратегия устанавливает конкретные отклонения цены от порога ((10%), обеспечивает четкий входный сигнал, уменьшает помехи субъективному суждению.
- Избыточная рыночная реакцияЭта стратегия направлена на то, чтобы поймать рыночные шансы на чрезмерную панику или падение, когда цены на активы, как правило, недооценены.
- Автоматизация исполненияПомимо того, что это означает, что мы не можем управлять своими эмоциями, это означает, что мы не можем управлять своими эмоциями, и мы не можем управлять своими эмоциями.
- Гибкое управление деньгамиСтратегия: использование денежных средств в распределении, а не в фиксированных единицах, что позволяет более гибко использовать средства.
- Простые и понятныеПо сравнению со сложной многопоказательной стратегией, логика этой стратегии проста, ее легко понять и скорректировать.
- Контроль рискаВ частности, он отметил, что “продажа может быть инициирована только в том случае, если она уже принесла прибыль, что помогает защитить уже полученную прибыль”.
Стратегический риск
- Риски трендаПри сильной нисходящей тенденции цены могут продолжать отклоняться от EMA и не возвращаться, что приводит к появлению явления “перехватывания ножа”, что приводит к постоянным убыткам.
- Параметр ЧувствительностьОтклонение от порога в 10 процентов может не применяться ко всем рыночным условиям, может быть затруднено в условиях низкой волатильности, а в условиях высокой волатильности может быть слишком часто торгуется.
- Отсутствие механизмов сдерживанияВ коде отсутствуют четкие параметры стоп-лосса, что может привести к большим потерям при продолжении ухудшения рынка.
- Опирается на точность EMAСтратегическая гипотеза: EMA является эффективным средним значением цены, но это может не работать в некоторых рыночных условиях.
- Риск ликвидностиВ условиях низкой ликвидности рынка, ордера на покупку или продажу могут быть подвержены риску проскальзывания или не быть полностью исполнены.
- Фиксированная прибыль: Маржа прибыли установлена на фиксированную величину 1, без учета адаптивной корректировки при различных рыночных колебаниях.
Направление оптимизации
- Динамика отклоняется от отметки: изменение 10% от фиксированного отклонения от порога в динамический порог, основанный на недавней волатильности, например, с использованием ATR (Average True Range) для корректировки условий входа.
- Увеличение убыточностиВведение условий остановки, основанных на времени или цене, например, установление максимального времени удержания позиции или максимально допустимой доли потери.
- Многоциклическая подтверждение: судить о тенденциях в сочетании с более длительными циклами (например, солнечная линия или круговая линия), избегать входа в рынок, когда основная тенденция переворачивается.
- Складывание и ликвидация складовВместо того, чтобы создавать или ликвидировать все позиции одновременно, чтобы распределить риски, реализуйте плановые покупки и продажи.
- Добавить условия фильтрацииДобавление дополнительных технических индикаторов (например, RSI или MACD) в качестве фильтрующих условий для улучшения качества торговых сигналов.
- Адаптация к циклам EMAПопытка использовать адаптивные циклы EMA, а не фиксированные 50 циклов, чтобы сделать стратегию более адаптированной к изменяющимся рыночным условиям.
- Оптимизация отслеживания: проводить обширную обратную связь в разных рыночных циклах и условиях, чтобы найти оптимальное сочетание параметров.
Подвести итог
Стратегия 50 циклов EMA от среднего возвращения - это автоматизированная торговая система, основанная на техническом анализе, которая ищет торговые возможности, улавливая значительные отклонения цены от средней линии. Стратегия проста и интуитивно подходит для более волатильных рыночных условий, но также содержит определенные риски, особенно на рынках с сильным трендом.
Исходный код стратегии
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("SUIBTC 2H - EMA dip public",overlay=true,initial_capital=100,default_qty_value=100, default_qty_type = strategy.cash,process_orders_on_close=false,calc_on_every_tick=false)
BuyTrigger = input.bool(false)
SellTrigger = input.bool(false)
src = input(open, title="Source")
offset = input.int(title="Offset", defval=5, minval=-500, maxval=500)
ema20 = ta.ema(close, 50)
plot(ema20, title="ema20", color=color.yellow, linewidth=3)
diff_perct = ((ema20 - close) / ema20) * 100
diff_perct2 = ((high - ema20) / ema20) * 100
if ( diff_perct > 10)
BuyTrigger := true
if( diff_perct2 > 0 and strategy.openprofit > 1)
SellTrigger := true
notInTrade = strategy.position_size <= 0
inTrade = strategy.position_size > 0
timeSinceLastTrade_ms = time - strategy.opentrades.entry_time(0)
if (BuyTrigger and notInTrade )
strategy.order("long", strategy.long , oca_name = 'audusdt' , when = BuyTrigger ,limit = open, comment = "buy: SUIBTC EMA Dip")
if (SellTrigger and inTrade )
strategy.close(id="long" , qty_percent = 100, comment = "sell: SUIBTC EMA Dip")