Chiến lược xu hướng EMA biến động đột phá tức thời


Ngày tạo: 2024-01-15 12:00:25 sửa đổi lần cuối: 2024-01-15 12:00:25
sao chép: 0 Số nhấp chuột: 689
1
tập trung vào
1617
Người theo dõi

Chiến lược xu hướng EMA biến động đột phá tức thời

Tổng quan

Chiến lược này là một chiến lược đột phá đơn giản, nó sử dụng sự chênh lệch của hai EMA với độ trễ thời gian bằng 0 để theo dõi sự tăng hoặc giảm của mục tiêu. Khi chênh lệch vượt quá một số lần số của Brin, tín hiệu làm nhiều hoặc làm rỗng sẽ được tạo ra tùy thuộc vào hướng của EMA cơ bản.

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

Chiến lược này sử dụng hai loại chỉ số EMA đặc biệt để tính toán chênh lệch tỷ lệ dao động. Công thức tính toán cho hai chỉ số EMA là:

hJumper = math.max(src,ta.ema(src,lx)) 

lJumper = math.min(src,ta.ema(src,lx))

dif = (hJumper / lJumper) - 1

Chỉ số này phản ứng ngay với sự biến động mạnh của giá, không bị trì hoãn.

Khi dif vượt quá đường ray trên đường dây Brin, tạo ra tín hiệu vào; khi dif thấp hơn đường ray giữa đường dây Brin, tạo ra tín hiệu ra. Hướng EMA cơ bản quyết định làm nhiều hoặc làm trống.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là bắt được các tín hiệu phá vỡ nhanh chóng, không có độ trễ. Điều này được thực hiện bằng cách tính toán hai EMA với độ trễ 0 đặc biệt. Điều này cho phép chiến lược có thể phản ứng ngay lập tức với sự cố phá vỡ giá, do đó bắt được hiệu quả cao hơn trong quá trình hình thành xu hướng ban đầu.

Một lợi thế khác là chiến lược chỉ sử dụng một tham số lx. Việc ít tham số làm cho chiến lược dễ dàng điều chỉnh và giảm nguy cơ tối ưu hóa quá mức.

Phân tích rủi ro

Rủi ro chính của chiến lược này là tín hiệu phá vỡ có thể xảy ra phá vỡ giả. Khi có biến động giá, có thể có một loạt các phá vỡ giả. Để giảm thiểu rủi ro như vậy, bạn có thể mở rộng đúng đắn số bội số Brin để làm cho tín hiệu ổn định hơn.

Một rủi ro khác là những tổn thất nhỏ thường xuyên trong các tình huống xung đột. Điều này có thể được giảm bớt bằng cách điều chỉnh cơ chế ra đi. Ví dụ: thiết lập giá dừng lỗ hoặc giá dừng.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Kết hợp với các chỉ số khác để lọc tín hiệu vào sân, giảm khả năng phá vỡ giả

  2. Tăng cơ chế ngăn chặn lỗ hổng, quản lý rủi ro nắm giữ

  3. Tiếp tục xác nhận khối lượng giao dịch để tránh các tín hiệu giả mạo.

  4. Sử dụng tham số thích ứng với vùng Brin, điều chỉnh tham số theo biến động thị trường

  5. Các tham số chiến lược tối ưu hóa động dựa trên phương pháp học máy

Tóm tắt

Chiến lược EMA phá vỡ biến động ngay lập tức này có lợi thế như phản ứng nhanh, tham số đơn giản bằng cách tính toán EMA trễ thời gian bằng không để nắm bắt xu hướng giá. Bước tiếp theo có thể được tối ưu hóa từ các tín hiệu lọc, dừng lỗ, xác nhận khối lượng giao dịch, để chiến lược hoạt động ổn định trong các môi trường thị trường khác nhau.

Mã nguồn chiến lược
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin

//@version=5
strategy("Zero-lag Volatility-Breakout EMA Trend Strategy",overlay=false)

tt1 = "If selected, the strategy will not close long or short positions until the opposite signal is received. This"+
 " exposes you to more risk but potentially could generate larger returns."

src = input.source(close,"Source")
lx = input.int(200,"EMA Difference Length")
bbmult = input.float(2.0,"Standard Deviation Multiple")
useBinaryStrategy = input.bool(true,"Use Binary Strategy",tooltip = tt1)

hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))

dif = (hJumper / lJumper) - 1

[bbm,bbu,bbl] = ta.bb(dif,lx,bbmult)

plot(dif,color=color.white,title="Zero lag EMA Difference")
plot(bbu,color=color.lime,title="Bollinger Top")
plot(bbl,color=color.red,title="Bollinger Bottom")
plot(bbm,color=color.yellow,title="Bollinger Middle")

sigEnter = ta.crossover(dif,bbu)
sigExit = ta.crossunder(dif,bbm)
emaBase = ta.ema(src,lx)
enterLong = sigEnter and emaBase > emaBase[1]
enterShort = sigEnter and emaBase < emaBase[1]

plotshape(enterLong,style=shape.labelup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(enterShort,style=shape.labeldown,location=location.top,color=color.red,size=size.tiny)

if enterLong
    strategy.entry("Long",strategy.long)
if enterShort
    strategy.entry("Short",strategy.short)
if not useBinaryStrategy and sigExit
    strategy.close("Long")
    strategy.close("Short")