Chiến lược dài hạn và ngắn hạn của đường trung bình động


Ngày tạo: 2023-10-09 16:00:02 sửa đổi lần cuối: 2023-10-09 16:00:02
sao chép: 0 Số nhấp chuột: 617
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này dựa trên phương pháp đa luồng của đường trung bình di chuyển. Nó sử dụng 3 đường trung bình di chuyển với các tham số khác nhau để tạo tín hiệu giao dịch. Khi giá vượt qua đường trung bình di chuyển, hãy làm nhiều hơn, khi đi xuống, hãy làm trống.

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

Chiến lược này sử dụng hàm sma để tính toán đường trung bình di chuyển có chiều dài len là ma. Sau đó, tính toán đường trung bình di chuyển có tỷ lệ nhất định của 3 đường ngang theo ma: longline1, longline2, longline3. Trong đó, longline1 di chuyển -4%, longline2 di chuyển -5%, và longline3 di chuyển -6%.

Khi phát ra tín hiệu mua, nếu hiện tại không có vị trí, hãy mở thêm vị trí khi giá vượt qua longline 1; nếu đã có vị trí 1 tay, hãy mở thêm 1 tay khi giá vượt qua longline 2; nếu đã có vị trí 2 tay, hãy mở thêm 1 tay khi giá vượt qua longline 3, giữ tối đa 3 tay.

Trong các tín hiệu bán ra được tạo ra, nếu hiện đang giữ nhiều vị trí, khi giá đè xuống ma sẽ bị giảm.

Chiến lược này có thể làm nhiều hơn bằng cách phân cấp theo lô để đạt được hiệu quả theo dõi xu hướng.

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

  • Sử dụng trung bình di chuyển để đánh giá xu hướng, có thể lọc hiệu quả tiếng ồn thị trường, lợi nhuận ổn định
  • Làm nhiều giao dịch nhị phân theo nhóm, có thể kiếm được nhiều lợi nhuận hơn trong xu hướng
  • Trung bình di động phẳng là điểm đầu vào để nắm bắt xu hướng tốt hơn
  • Quá ít rút lui, tối đa khoảng 20%

Rủi ro chiến lược

  • Chiến lược này là chiến lược xu hướng thuần túy, dễ bị nhốt trong tù khi thị trường hồi phục.
  • Đường trung bình di chuyển tạo ra tín hiệu chậm trễ, có thể bỏ lỡ điểm chuyển hướng
  • Những người này có thể bị giết trong một loạt các vụ tấn công, nguy cơ cao hơn.
  • Không có chiến lược dừng lỗ, có thể gây thiệt hại lớn trong trường hợp bất ngờ

Phương pháp giải quyết rủi ro:

  • Có thể kết hợp các chỉ số khác để xác định điểm chuyển hướng
  • Cài đặt các tham số trung bình di chuyển hợp lý, không thể quá dài, nếu không tín hiệu sẽ bị chậm trễ
  • Giảm bớt số lượng sản phẩm được sản xuất theo từng đợt để tránh bị truy lùng
  • Tăng Stop Loss di chuyển để kiểm soát lỗ

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

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

  1. Thêm một số chỉ số khác để xác định xu hướng, ví dụ như kết hợp MACD để xác định xu hướng mạnh

  2. Tối ưu hóa tham số trung bình di chuyển để tìm các tham số kết hợp tối ưu

  3. Điều chỉnh số lượng và tỷ lệ giết người theo nhóm để tránh bị truy lùng

  4. Thêm cơ chế dừng chân di động, có thể thiết lập điểm dừng chân theo ATR

  5. Có thể điều chỉnh số vị trí theo biến động của tỷ lệ biến động thị trường, giảm vị trí khi biến động lớn

  6. Kiểm tra hiệu quả của các tham số trên các giống khác nhau để tìm ra giống phù hợp nhất với chiến lược

  7. Xây dựng mô-đun Exit, xem xét việc dừng xuất cảnh khi một hình thức cụ thể xuất hiện

Tóm tắt

Nhìn chung, chiến lược này sử dụng đường trung bình di chuyển để xác định xu hướng giao dịch, có thể theo dõi xu hướng và kiếm lợi nhuận bằng cách phân loại theo từng đợt. Tuy nhiên, có một số rủi ro bị chậm trễ. Chúng ta có thể tối ưu hóa chiến lược này bằng cách thêm các chỉ số phán đoán hỗ trợ, tham số tối ưu hóa, điều chỉnh quản lý vị trí, tăng cơ chế dừng lỗ, v.v.

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

//Noro
//2019

//@version=4
strategy(title = "Noro's ShiftMA-multi Strategy v1.0", shorttitle = "ShiftMA-multi", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Lenghs")
src = input(ohlc4, title = "MA Source")
longlevel1 = input(-4.0, title = "Long line 1")
longlevel2 = input(-5.0, title = "Long line 2")
longlevel3 = input(-6.0, title = "Long line 3")
needoffset = input(true, title = "Offset")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick

//MA
ma = sma(src, len)
longline1 = round(ma * ((100 + longlevel1) / 100) * mult) / mult
longline2 = round(ma * ((100 + longlevel2) / 100) * mult) / mult
longline3 = round(ma * ((100 + longlevel3) / 100) * mult) / mult

//Lines
offset = needoffset ? 1 : 0
plot(ma, color = color.blue)
plot(longline1, offset = offset, color = color.lime)
plot(longline2, offset = offset, color = color.lime)
plot(longline3, offset = offset, color = color.lime)

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2))
if size > 0
    strategy.entry("TP", strategy.short, 0, limit = ma)