Chiến lược đảo ngược đột phá trung bình động có trọng số


Ngày tạo: 2023-11-28 14:11:33 sửa đổi lần cuối: 2023-11-28 14:11:33
sao chép: 0 Số nhấp chuột: 640
1
tập trung vào
1617
Người theo dõi

Chiến lược đảo ngược đột phá trung bình động có trọng số

Tổng quan

Ý tưởng chính của chiến lược này là sử dụng các vùng hỗ trợ hoặc kháng cự quan trọng gần đường trung bình di chuyển để xây dựng vị trí. Khi giá tăng hoặc giảm mạnh, có khả năng tạo ra hỗ trợ hoặc áp lực, tạo ra cơ hội đảo ngược.

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

Chiến lược này dựa trên chỉ số đường trung bình di chuyển có trọng lượng, đầu tiên tính toán đường trung bình di chuyển có trọng lượng một chiều dài nhất định, sau đó giám sát xem giá có phá vỡ một mức độ nhất định không. Khi giá phá vỡ đường trung bình đạt đến một khoảng cách nhất định, vẽ chỉ dẫn mũi tên và mở vị trí để thiết lập vị trí.

Chiến lược có thể chọn sử dụng tracking stop hoặc sử dụng khoảng cách dừng cố định bằng các tham số trail. Bạn có thể kiểm soát rủi ro bằng cách điều chỉnh độ lớn của stop loss. Bạn có thể khóa một phần lợi nhuận bằng tham số đơn giá giới hạn. Bạn cũng có thể giới hạn mở vị trí trong một khoảng thời gian cụ thể bằng cách lọc thời gian.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là sử dụng tình trạng đảo ngược kết hợp với đường trung bình để xác định các điểm quan trọng của thị trường để mở vị trí. Tỷ lệ thắng và thua của chiến lược đảo ngược thường tốt hơn, rủi ro dễ kiểm soát. Đồng thời, chiến lược này cũng cung cấp cơ chế dừng lỗ hoàn hảo và cách khóa một phần lợi nhuận, điều này có thể giúp giảm rủi ro và tăng sự ổn định.

Do được xây dựng trên cơ sở đường trung bình di chuyển, nên có nhiều không gian tối ưu hóa tham số, có thể kiểm tra khả năng thích ứng của các thị trường khác nhau bằng cách điều chỉnh các tham số như chiều dài đường trung bình, độ rộng đột phá.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là thất bại trong việc đảo ngược. Khi giá tạo ra tín hiệu đảo ngược, nếu không thành công trong việc kích hoạt dừng lỗ hoặc dừng lại, và tiếp tục chạy theo hướng ban đầu, thì sẽ tạo ra lỗ hổng lớn.

Ngoài ra, sự phụ thuộc vào tối ưu hóa tham số cao, nếu thiết lập tham số không đúng cách, dễ dàng bỏ lỡ thời gian đảo ngược giá hoặc tạo tín hiệu sai. Cần hiểu đầy đủ và kiểm tra hành vi của thị trường, đánh giá cẩn thận các thiết lập tham số.

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

Bạn có thể xem xét thêm các chỉ số để cải thiện chất lượng và độ chính xác của tín hiệu. Ví dụ, trước khi có tín hiệu đảo ngược giá, bạn có thể phát hiện gia tăng trong một khoảng thời gian nhất định, đặc biệt là dữ liệu gia tăng ngắn hạn, để xác định đặc điểm dao động của giá.

Các phương pháp học máy cũng có thể được thử nghiệm, bằng cách ghi lại các tín hiệu giao dịch lịch sử và dữ liệu giá, mô hình đào tạo để xác định động thái có thể xảy ra tiếp theo của giá. Điều này có thể giúp lọc các tín hiệu giả và cải thiện chất lượng tín hiệu.

Ngoài ra, có thể giới thiệu một số cơ chế tối ưu hóa tự thích ứng. Tùy theo kết quả giao dịch thực tế, điều chỉnh động các tham số hoặc trọng lượng quy tắc, để thực hiện tự tối ưu hóa chiến lược và ENO.

Tóm tắt

Chiến lược này hoạt động ổn định, có thể thu được lợi nhuận tốt trong không gian tham số hợp lý và môi trường thị trường. Ưu điểm lớn nhất là rủi ro có thể kiểm soát được, đồng thời có một số tiềm năng tối ưu hóa.

Mã nguồn chiến lược
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-22 08:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
out = wma(src, len)
price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10, "Stop (in ticks)", step=1)
limit = input(5, "Limit Out", step=1)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
timec = input(true, "Limit Time of Day (Buying Side)")


//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)
//plots
plot(wma(src,len))
z = if low+price_drop<out
    (out-low)
plotarrow(z, colorup=red)

a = if high-price_climb>out
    (high-out)
plotarrow(a, colorup=lime)
av=wma(src,len)

//Orders
if(timec)
    strategy.entry("Enterlong", long=true, when=z and t>1)
else
    strategy.entry("Enterlong", long=true, when=z)
if(trail)
    strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
    
if(timec)
    strategy.entry("Entershort", long=false, when=a and t>1)
else
    strategy.entry("Entershort", long=false, when=a)
if(trail)
    strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
    strategy.exit("Exit","Entershort", profit=limit, loss = stop )