Chiến lược giao dịch giao cắt xu hướng


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

Tổng quan

Chiến lược này sử dụng nguyên tắc chéo của đường trung bình di chuyển để đánh giá hướng xu hướng bằng cách chéo đường nhanh và đường chậm để phát tín hiệu mua và bán. Chiến lược này đơn giản, đáng tin cậy và phù hợp với các nhà đầu tư tìm kiếm thu nhập ổn định.

Nguyên tắc

Chiến lược này sử dụng hai đường trung bình di chuyển, mỗi đường trung bình 7 ngày làm đường nhanh, và đường trung bình tháng 5 làm đường chậm. Đường nhanh có thể nắm bắt biến động giá nhanh hơn, đường chậm loại bỏ tiếng ồn và đánh giá hướng xu hướng. Khi đường nhanh phá vỡ đường chậm từ phía dưới, coi đó là tín hiệu thị trường bò, làm nhiều; Khi đường nhanh từ phía trên xuống phá vỡ đường chậm, coi đó là tín hiệu thị trường gấu, làm trống.

Cụ thể, chiến lược này tạo ra tín hiệu mua khi đường thứ 7 cắt ngang đường tháng 5 từ phía dưới và tạo ra tín hiệu bán khi đường thứ 7 đi xuống từ phía trên và phá vỡ đường tháng 5. Chiến lược cũng đánh dấu hình ảnh về thời gian tạo ra tín hiệu.

Ưu điểm

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

  1. Giả thuyết dựa trên một phương pháp đơn giản và đáng tin cậy, dựa trên nguyên tắc chéo trung bình di chuyển nổi tiếng.

  2. Chỉ sử dụng hai đường trung bình di chuyển, lựa chọn tham số đơn giản và dễ thực hiện.

  3. Sử dụng đường dây nhanh và đường dây chậm để xác định xu hướng hiệu quả, lọc tiếng ồn thị trường.

  4. Sử dụng đường trung bình chu kỳ khác nhau, có thể nắm bắt các thay đổi xu hướng trên các quy mô thời gian khác nhau.

  5. Các ứng dụng khác cũng có thể được sử dụng để tạo ra các ứng dụng khác nhau.

  6. Dấu hiệu trực quan gợi ý rõ ràng, quyết định hoạt động rõ ràng hơn.

Rủi ro

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

  1. Chỉ dựa trên hoạt động chéo đồng tuyến, dễ tạo ra tín hiệu kích hoạt sai.

  2. Không có khả năng đánh giá hiệu quả xu hướng mạnh hoặc yếu, có thể bị ngưng thường xuyên trong tình huống chấn động.

  3. Chu kỳ trung bình cố định không thể thích ứng với sự thay đổi của thị trường, cần phải tối ưu hóa các tham số.

  4. Không thể xác định được vị trí mua bán, có một số rủi ro khi hoạt động theo thị trường.

  5. Theo lý thuyết đơn giản hơn, hiệu quả có thể giảm giá, và lợi nhuận có giới hạn.

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. Thêm các chỉ số khác để xác định điểm mua và bán, chẳng hạn như chỉ số KDJ để đánh giá quá mua quá bán.

  2. Thêm các cơ chế dừng lỗ, chẳng hạn như theo dõi dừng lỗ để tránh tổn thất mở rộng.

  3. Tối ưu hóa tham số chu kỳ trung bình để nó có thể thích ứng với các chu kỳ khác nhau.

  4. Tăng bộ lọc lưu lượng truy cập để tránh đột phá giả mạo

  5. Đánh giá xu hướng mạnh yếu, như tính toán độ lệch đường trung bình, vận hành với cường độ khác nhau.

  6. Kết hợp nhiều phân tích theo chu kỳ thời gian, để đánh giá xu hướng liên tục.

Tóm tắt

Chiến lược này dựa trên nguyên tắc chéo trung bình di chuyển, dễ dàng và đáng tin cậy để xác định xu hướng tăng và giảm. Ưu điểm là hoạt động dễ dàng, nhược điểm là có một số rủi ro theo xu hướng mù quáng.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dadashkadir

//@version=4
strategy("Mount MaV - Day MaV CrossOver Strgty", shorttitle="Yusram Str.", overlay=true)
src = input(title= "Kaynak", type=input.source, defval=close)
mav = input(title="Hareketli Ortlama Tipi", defval="SMA", options=["SMA", "EMA", "WMA"])
Gbar = input(title="Günlük Bar Sayısı", defval=7, minval=1, maxval=999)
Abar = input(title="Aylık Bar Sayısı", defval=5, minval=1, maxval=999)
//displacement = input(20, minval=1, title="Displacement")
getMA(src, length) =>
    ma = 0.0
    if mav == "SMA"
        ma := sma(src, length)
        ma

    if mav == "EMA"
        ma := ema(src, length)
        ma

    if mav == "WMA"
        ma := wma(src, length)
        ma
    ma
long = "M" //Aylık
ln = security(syminfo.ticker, long, src)
lnma = getMA(ln, Abar)
gnma = getMA(src, Gbar)
col1= gnma>gnma[1]
col3= gnma<gnma[1]
colorM = col1 ? color.green : col3 ? color.navy : color.yellow
l1 = plot(lnma, title="MhO", trackprice = true, style=plot.style_line, color=color.red, linewidth=3)
l2 = plot(gnma, title="DhO", trackprice = true, style=plot.style_line, color=colorM, linewidth=3)
fill(l1, l2, color = lnma < gnma ? color.green : color.red, title="Gölgelendirme", transp=90)
zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")
al  = crossover (gnma, lnma) and zamanaralik <= year
sat = crossover (lnma, gnma) and zamanaralik <= year
plotshape(al,  title = "Giriş",  text = 'Al',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Çıkış", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

FromDay    = input(defval = 1, title = "Str. Başlama Tarihi Gün", minval = 1, maxval = 31)
FromMonth  = input(defval = 1, title = "Str. Başlama Tarihi Ay", minval = 1, maxval = 12)
FromYear   = input(defval = 2015, title = "Str. Başlama Tarihi Yıl", minval = 2005)
ToDay      = input(defval = 1, title = "Str. Bitiş Tarihi Gün", minval = 1, maxval = 31)
ToMonth    = input(defval = 1, title = "Str. Bitiş Tarihi Ay", minval = 1, maxval = 12)
ToYear     = input(defval = 9999, title = "Str. Bitiş Tarihi Yıl", minval = 2006)
Start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)
Finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)
Timerange() =>
    time >= Start and time <= Finish ? true : false
if al
    strategy.entry("Al", strategy.long, when=Timerange())
if sat
    strategy.entry("Sat", strategy.short, when=Timerange())