В процессе загрузки ресурсов... загрузка...

Стратегия трейдинга с динамическими скользящими средними трейдерами Ларри Уильямса

Автор:Чао Чжан, Дата: 2024-05-11 17:35:22
Тэги:ЕМА

img

Обзор

Эта статья представляет торговую стратегию, основанную на трехпериодической динамической скользящей средней Ларри Уильямса. Стратегия использует две экспоненциальные скользящие средние (EMAs) для улавливания ценовых тенденций и генерирует торговые сигналы, когда цена закрытия трех последовательных свечей проходит через EMA. Параметры стратегии регулируемы и подходят для разных рынков и временных рамок.

Принципы стратегии

  1. Вычислить две EMA: высокоценовую EMA и низкоценовую EMA цен закрытия с регулируемыми периодами.
  2. Определить, находится ли текущее время в установленном интервале торговли.
  3. Определить, закрылись ли последние три свечи подряд выше (бычье) или ниже (медленное) ЭМА.
  4. Если условие 3 выполнено и позиция равна 0, открыть длинную позицию; если условие 3 выполнено и длинная позиция удерживается, закрыть позицию.
  5. Закрыть позицию в конце каждого торгового дня, если удерживать позицию.

Преимущества стратегии

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

Стратегические риски

  1. Риск перемены на рынке: Частая торговля на рынках, где нет тенденции, может привести к потерям.
  2. Риск параметров: производительность сильно варьируется в зависимости от различных параметров на разных рынках, что требует целевой оптимизации.
  3. Риск пробелов: открытие пробелов может привести к сдвигу в начальной цене стратегии, что увеличивает риск.

Направления оптимизации стратегии

  1. Фильтры трендов: включите такие индикаторы, как ATR и RSI, чтобы помочь оценить силу тренда и избежать нестабильных рынков.
  2. Динамическая оптимизация параметров: динамическая корректировка параметров на основе последних характеристик рынка для повышения адаптивности.
  3. Управление позициями: корректировка позиций на основе силы тренда и капитала, контроль рисков.
  4. Включать стоп-лосс и прибыль: устанавливать разумные уровни стоп-лосса и целевые показатели прибыли для снижения риска одной сделки.

Резюме

Трипериодическая динамическая среднемесячная стратегия торговли Ларри Уильямса (англ. three-period dynamic moving average trading strategy) - это стратегия, основанная на двойных EMA и направлении последовательных свечей. При оптимизации параметров она может адаптироваться к разным рынкам. Однако сама стратегия относительно проста, плохо работает на нестабильных рынках и не имеет мер контроля рисков, требующих дальнейшей оптимизации и улучшения.


/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Larry Williams 3 Periodos Editável de MarcosJr", overlay=true, process_orders_on_close=true)

// Parametrização do período do EMA
emaPeriodHighs = input.int(title="Highs Period", defval=3, minval=1, maxval=9999)
emaPeriodLows = input.int(title="Lows Period", defval=3, minval=1, maxval=9999)

// Parametrização da data de início e fim do período a ser coletado
startYear = input.int(title="Start Year", defval=2020)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startDay = input.int(title="Start Day", defval=1, minval=1, maxval=31)

endYear = input.int(title="End Year", defval=2020)
endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12)
endDay = input.int(title="End Day", defval=31, minval=1, maxval=31)

// Convertendo data de início e fim para timestamp
startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// EMA
emaH = ta.ema(high, emaPeriodHighs)
emaL = ta.ema(low, emaPeriodLows)

// PLOT:
// Desenha as linhas EMA no gráfico
plot(emaH, color=color.green, linewidth=2)
plot(emaL, color=color.red, linewidth=2)

// Condições
inDateRange = true

// Verifica se houve mais de três candles consecutivos do mesmo sentido
checkThreeConsecutiveCandles = (close[0] > close[1] and close[1] > close[2] and close[2] > close[3]) or (close[0] < close[1] and close[1] < close[2] and close[2] < close[3])

if(close < emaL and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed)
    strategy.entry("Long", strategy.long, comment="Long", when=strategy.position_size == 0)
if(close > emaH and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed)
    strategy.close("Long", comment="Close Long")

// Fechar a operação no fechamento do pregão
if(strategy.position_size > 0 and na(time_close[0]))
    strategy.close("Long", comment="Close Long")


Связанные

Больше