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

EMA
Дата создания: 2024-05-11 17:35:22 Последнее изменение: 2024-05-11 17:35:22
Копировать: 6 Количество просмотров: 1109
1
Подписаться
1617
Подписчики

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

Обзор

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

Стратегический принцип

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

Стратегические преимущества

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

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

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

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

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

Подвести итог

Стратегия трехциклической динамической равнолинейной торговли Ларри Уильямса - это стратегия для отслеживания тенденций, основанная на двойных ЭМА и последовательном направлении K-линии, которая может быть адаптирована к различным рынкам путем оптимизации параметров. Однако сама стратегия относительно проста, плохо работает в шокирующем рынке и не имеет мер по борьбе с ветром, и требует дальнейшей оптимизации и улучшения.

Исходный код стратегии
/*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")