Chiến lược giao dịch trung bình động động ba chu kỳ của Larry Williams

EMA
Ngày tạo: 2024-05-11 17:35:22 sửa đổi lần cuối: 2024-05-11 17:35:22
sao chép: 6 Số nhấp chuột: 1109
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch trung bình động động ba chu kỳ của Larry Williams

Tổng quan

Bài viết này giới thiệu một chiến lược giao dịch dựa trên đường trung bình động ba chu kỳ của Larry Williams. Chiến lược này sử dụng hai chỉ số chuyển động trung bình ((EMA) để nắm bắt xu hướng giá, tạo ra tín hiệu giao dịch khi ba đường K liên tiếp kết thúc giá vượt qua EMA. Các tham số của chiến lược có thể điều chỉnh, áp dụng cho các thị trường và chu kỳ khác nhau.

Nguyên tắc chiến lược

  1. Tính toán hai EMA: giá cao EMA và giá thấp EMA của giá đóng cửa, có thể điều chỉnh chu kỳ.
  2. Đánh giá thời gian hiện tại trong phạm vi giao dịch đã đặt.
  3. Xác định liệu ba đường K gần đây nhất có liên tục đóng cửa ở trên EMA (thấp lên) hoặc dưới đây (thấp xuống).
  4. Nếu 3 được thành lập và vị trí là 0, thì mở nhiều vị trí; nếu ngược lại, 3 được thành lập và giữ nhiều vị trí, thì thanh toán.
  5. Nếu bạn giữ một vị thế khi ngày kết thúc, bạn sẽ bị mất vị thế.

Lợi thế chiến lược

  1. Các tham số linh hoạt: Chu kỳ EMA, khoảng thời gian giao dịch và các tham số khác có thể được điều chỉnh để phù hợp với các thị trường khác nhau.
  2. Theo dõi xu hướng: sử dụng EMA và đường K liên tục để xác định xu hướng, có lợi cho việc nắm bắt xu hướng.
  3. Giảm lỗ kịp thời: Cắt lỗ kịp thời khi EMA bị phá vỡ bởi đường ngược.
  4. Bán vào ban ngày: Bán vào cuối ngày để tránh rủi ro qua đêm.

Rủi ro chiến lược

  1. Rủi ro thị trường biến động: Việc giao dịch thường xuyên có thể dẫn đến tổn thất khi xu hướng không rõ ràng.
  2. Rủi ro tham số: Các tham số khác nhau có thể hoạt động khác nhau trong các thị trường khác nhau, cần phải được tối ưu hóa.
  3. Rủi ro lỗ hổng nhảy vọt: Việc mở cửa nhảy vọt có thể dẫn đến chiến lược mở vị thế với giá thấp, làm tăng rủi ro.

Hướng tối ưu hóa chiến lược

  1. Trình lọc xu hướng: Thêm các chỉ số như ATR, RSI để đánh giá cường độ của xu hướng, tránh thị trường chấn động.
  2. Tối ưu hóa tham số động: điều chỉnh tham số động theo đặc điểm thị trường gần đây, tăng khả năng thích ứng.
  3. Quản lý vị trí: Điều chỉnh vị trí tùy theo xu hướng mạnh hoặc yếu và tình hình tài chính, kiểm soát rủi ro.
  4. Thêm Stop Loss: Đặt mục tiêu Stop Loss và Stop Loss hợp lý để giảm rủi ro giao dịch đơn lẻ.

Tóm tắt

Chiến lược giao dịch đường phẳng động 3 chu kỳ của Larry Williams là một chiến lược theo dõi xu hướng dựa trên hai đường EMA và đường K liên tiếp, có thể thích ứng với các thị trường khác nhau thông qua tối ưu hóa tham số. Tuy nhiên, chiến lược này tương đối đơn giản, hoạt động kém trong thị trường bất ổn và thiếu các biện pháp kiểm soát gió, cần được tối ưu hóa và cải thiện hơn nữa.

Mã nguồn chiến lược
/*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")