Chiến lược đảo ngược mức trung bình di chuyển cân nhắc

Tác giả:ChaoZhang, Ngày: 2023-11-28 14:11:33
Tags:

img

Chiến lược đảo ngược mức trung bình di chuyển cân nhắc

Tổng quan

Ý tưởng chính của chiến lược này là nắm giữ các vị trí bằng cách đảo ngược để kiểm tra các mức hỗ trợ / kháng cự quan trọng xung quanh Trung bình Di chuyển Cân nhắc. Khi giá tăng / giảm sau đó rút lui để kiểm tra trung bình di chuyển, nó có khả năng hình thành các mức hỗ trợ / kháng cự và tạo ra cơ hội đảo ngược.

Chiến lược logic

Chiến lược này dựa trên chỉ số Đường trung bình động cân. Đầu tiên nó tính toán WMA của một chiều dài nhất định, sau đó theo dõi xem giá có vượt ra khỏi WMA bằng một phạm vi nào đó không. Khi khoảng cách đột phá đạt đến ngưỡng, nó vẽ một mũi tên và mở các vị trí. Để đi dài, giá cần phải phá vỡ trước một phạm vi nào đó; Để đi ngắn, giá cần phải phá vỡ trước một phạm vi nào đó. Bằng cách hình thành các tín hiệu đảo ngược thông qua các đột phá và kết hợp với mức hỗ trợ / kháng cự của WMA, nó giúp tối ưu hóa thời gian vào thị trường.

Chiến lược này cung cấp các tùy chọn giữa stop loss trailing và stop loss cố định thông qua tham số trail, do đó rủi ro có thể được kiểm soát bằng cách điều chỉnh phạm vi stop loss. Nó cũng khóa lợi nhuận một phần với lệnh giới hạn. Hơn nữa, các bộ lọc thời gian có thể hạn chế các khoảng thời gian cụ thể để mở các vị trí.

Phân tích lợi thế

Lợi thế lớn nhất nằm trong việc kết hợp các thiết lập đảo ngược với trung bình động để nắm bắt các điểm chuyển đổi thị trường quan trọng để mở các vị trí. Chiến lược đảo ngược thường có tỷ lệ thắng tốt và tỷ lệ phần thưởng rủi ro, với rủi ro dễ kiểm soát. Chiến lược này cũng được trang bị các cơ chế dừng lỗ toàn diện và phương pháp lấy lợi nhuận một phần, giúp giảm rủi ro và cải thiện sự ổn định.

Vì nó dựa trên đường trung bình động, có đủ chỗ cho tối ưu hóa tham số bằng cách điều chỉnh các giá trị như chiều dài WMA, phạm vi đột phá vv để kiểm tra khả năng thích nghi trên các thị trường khác nhau.

Phân tích rủi ro

Nguy cơ lớn nhất là sự đảo ngược thất bại. Nếu giá không kích hoạt dừng lỗ hoặc kiếm lợi nhuận sau khi hình thành các tín hiệu đảo ngược, và tiếp tục chạy theo hướng ban đầu, nó sẽ phải chịu tổn thất nổi đáng kể.

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

Hướng dẫn tối ưu hóa

Nhiều chỉ số có thể được giới thiệu để cải thiện chất lượng và độ chính xác tín hiệu. Ví dụ, trước khi đảo ngược giá, các giá trị gia tăng trong một số giai đoạn gần đây có thể được kiểm tra, đặc biệt là dữ liệu gia tăng ngắn hạn, để mô tả các mô hình biến động giá. Hoặc một số yếu tố định lượng có thể được thêm để phát hiện đà tăng giá, biến động vv cho mô hình hóa đa yếu tố.

Các phương pháp học máy cũng có thể được thử nghiệm để dự đoán chuyển động giá ngắn hạn dựa trên các tín hiệu giao dịch lịch sử và dữ liệu giá, giúp lọc các tín hiệu sai và cải thiện chất lượng tín hiệu.

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

Tóm lại

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


/*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 )
  



Thêm nữa