Стратегия отслеживания импульса

Автор:Чао Чжан, Дата: 2023-11-23 13:47:02
Тэги:

img

Обзор

Эта стратегия использует размер тела свечей и индикатор импульса тренда EMA для определения рыночных тенденций и реализации автоматизированной торговли для покупки низких и продажи высоких.

Логика стратегии

  1. Разделяйте свечи на крошки, маленькие и большие свечи в зависимости от размера тела.
  2. Когда EMA растет, если появляется большая красная свеча, это указывает на коррекцию рынка.
  3. Когда EMA падает, если появляется большая зеленая свеча, это означает, что рынок стабилизируется.
  4. Динамически корректировать позиции на основе мониторинга в режиме реального времени изменений свечей и тенденций EMA.

Анализ преимуществ

  1. Идея стратегии проста и легко понять, судя по структуре рынка с помощью простых показателей.
  2. Стратегия имеет несколько параметров и не подвержена переподключению, что приводит к высокой стабильности.
  3. Он реализует логику покупки за низкие цены и продажи за высокие цены и приносит заметную прибыль во время значительных колебаний рынка.
  4. Он учитывает как тенденции, так и изменения, и может быстро реагировать на изменения рыночных условий.

Риски и оптимизация

  1. При этом не учитывается абсолютная амплитуда цен на активы, что может привести к риску стоп-лосса.
  2. Он не рассматривает базовую эмиссию криптовалют и может быть протестирован на большем количестве торговых пар.
  3. Алгоритмы машинного обучения могут быть введены, чтобы помочь в оценке моделей свечей.
  4. Показатели объема торговли могут быть использованы для отбора сортов.
  5. Различные временные рамки параметров настройки могут быть проверены.

Заключение

Общая идея этой стратегии проста и легко понятна, а основными ее особенностями являются momentum и tracking. Она определяет основное направление рынка с помощью простого индикатора EMABOLL и использует свечи для оценки местных корректировок, реализуя эффективную торговлю путем покупки низких и продажи высоких. Стратегия имеет высокую стабильность и исключительно хорошо работает в криптовалютах, что делает ее полезной для дальнейшего тестирования и оптимизации.


/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Author @divonn1994

strategy(title='Trend Follower Strategy v2 [divonn1994]', shorttitle='TrendFollowStrategyV2', overlay=false, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=100)

//Important Constants for Classifying Candle Size----------------------------------------------------------------------------------------------------------------------------------------------

timesBigger = 2
crumbSize = 1400
crumbSize2 = 2100
bigCandleSize = 3800

//Key Alerts and Classifications of Candle Size and EMAs---------------------------------------------------------------------------------------------------------------------------------------

emaAlert = ta.ema(close, 8) > ta.ema(open, 8) ? 1 : 0 
CandleSize = close * 1 - open * 1
previousCandleSize = close[1] * 1 - open[1] * 1
greenCandle = close > open ? 1 : 0
previousGreenCandle = close[1] > open[1] ? 1 : 0

crumb = (greenCandle==1 and CandleSize<=crumbSize) or (greenCandle==0 and -CandleSize<=crumbSize) ? 1 : 0
bigCrumb = (greenCandle==1 and CandleSize<=crumbSize2 and CandleSize>crumbSize) or (greenCandle==0 and -CandleSize<=crumbSize2 and -CandleSize>crumbSize) ? 1 : 0
previousCandleIsSmallCrumb = (previousGreenCandle==1 and previousCandleSize<=crumbSize) or (previousGreenCandle==0 and -previousCandleSize<=crumbSize) ? 1 : 0
previousCandleIsBigCrumb = (previousGreenCandle==1 and previousCandleSize<=crumbSize2 and previousCandleSize>crumbSize) or (previousGreenCandle==0 and -previousCandleSize<=crumbSize2 and -previousCandleSize>crumbSize) ? 1 : 0

bigCandle = (greenCandle==1 and previousCandleIsBigCrumb==1 and CandleSize>=math.abs(timesBigger*previousCandleSize)) or (greenCandle==1 and previousCandleIsSmallCrumb==1 and CandleSize>=bigCandleSize) or (greenCandle==1 and previousCandleIsSmallCrumb==0 and previousCandleIsBigCrumb==0 and CandleSize>=math.abs(timesBigger*previousCandleSize)) ? 1 : 0

//Engine (Secret Sauce)------------------------------------------------------------------------------------------------------------------------------------------------------------------------

buy = (crumb==0 and bigCrumb==0 and greenCandle==0) or (greenCandle==1 and bigCandle==1) or (emaAlert==0) ? 0 : 1

//Strategy-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

if ta.crossover(buy, 0.5)
    strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(buy, 0.5)
    strategy.close('long')

//Plot Strategy Behavior-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

plot(buy, color=color.new(color.silver, 0))
plot(0.5, color=color.new(color.fuchsia, 0))

Больше