Chiến lược mở đơn phương dựa trên đường trung bình động


Ngày tạo: 2023-12-25 14:09:49 sửa đổi lần cuối: 2023-12-25 14:09:49
sao chép: 10 Số nhấp chuột: 559
1
tập trung vào
1623
Người theo dõi

Chiến lược mở đơn phương dựa trên đường trung bình động

Tổng quan

Chiến lược này thực hiện việc mở một vị trí đơn phương bằng cách tính toán các loại trung bình di chuyển khác nhau để xác định xu hướng của giá.

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

Chiến lược này cho phép lựa chọn 7 loại moving average khác nhau, bao gồm moving average đơn ((SMA), moving average chỉ số ((EMA), moving average trọng lượng giao dịch ((VWMA), moving average hai chỉ số ((DEMA), moving average ba chỉ số ((TEMA), moving average tự điều chỉnh của Kaufman ((KAMA) và đường trung bình của kênh giá. Xác định xu hướng của xu hướng giá bằng cách tính toán mối quan hệ giữa moving average được chọn và giá bán.

Khi giá đóng cửa phá vỡ đường trung bình di chuyển từ dưới lên, đánh giá là tăng, mở nhiều vị trí; khi giá đóng cửa phá vỡ đường trung bình di chuyển từ trên xuống, đánh giá là giảm, mở vị trí trống. Bằng cách này, bạn có thể nắm bắt điểm biến đổi của xu hướng giá, thực hiện vị trí mở một bên.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Có nhiều loại trung bình di chuyển có thể chọn, linh hoạt để thích ứng với các giống và chu kỳ khác nhau.

  2. Các nhà đầu tư có thể có thể kiểm soát rủi ro một cách hiệu quả.

  3. “Tất cả những gì chúng tôi làm là để tạo điều kiện cho các nhà đầu tư.

  4. Dễ hiểu và dễ thực hiện.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Khi giá dao động gần đường trung bình di chuyển, sẽ có nhiều tín hiệu sai và mở vị trí ngược. Bạn có thể đặt lệnh dừng thích hợp để kiểm soát rủi ro.

  2. Không thể hoàn toàn tránh được rủi ro do giá tăng hoặc giảm nhanh. Có thể kết hợp với các chỉ số khác để đánh giá tín hiệu xu hướng.

  3. Các nhà phân tích cần chọn các tham số trung bình di chuyển phù hợp, các tham số không phù hợp có thể gây ra sự chậm trễ của tín hiệu giao dịch.

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ố kỹ thuật khác để xác định tín hiệu xu hướng, chẳng hạn như MACD, RSI, v.v., để tạo ra danh mục đầu tư.

  2. Thêm logic dừng chân. Di chuyển dừng chân hoặc treo dừng chân.

  3. Thử nghiệm và tối ưu hóa các tham số, chọn các tổ hợp tham số tốt nhất. Các tham số như chu kỳ trung bình di chuyển, loại trung bình di chuyển.

  4. Bạn có thể xem xét các chiến lược nhập cảnh kiểu giao dịch ngay lập tức, theo dõi xu hướng.

Tóm tắt

Chiến lược này dựa trên đường trung bình di chuyển để xác định xu hướng giá, để thực hiện vị trí mở một bên. Sử dụng đơn giản, dễ thực hiện, có thể kiểm soát rủi ro một cách hiệu quả. Nhưng cũng có thể có tín hiệu sai và rủi ro mở vị trí ngược. Bằng cách kết hợp các tín hiệu đánh giá các chỉ số khác, tối ưu hóa tham số, thêm lệnh dừng và các cách khác, chiến lược này có thể được cải thiện liên tục, làm cho nó ổn định và đáng tin cậy hơn.

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

//@version=2
strategy(title = "Noro's MAs Tests v1.1", shorttitle = "MAs tests 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")
len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")
anti = input(true, defval = true, title = "Antipila")

//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)

//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3

//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0

plot(ma, color = blue, linewidth = 3, transp = 0)

trend = anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]

longCondition = trend == 1 and trend[1] == -1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)