Chiến lược giao dịch giao dịch chéo xu hướng Bull/Bear

Tác giả:ChaoZhang, Ngày: 2023-10-07 09:56:30
Tags:

Tổng quan

Chiến lược này sử dụng nguyên tắc chéo trung bình động để xác định hướng xu hướng và tạo ra tín hiệu mua và bán.

Nguyên tắc

Chiến lược này sử dụng hai đường trung bình động, MA 7 ngày như đường nhanh và MA 5 tháng như đường chậm. Đường nhanh nắm bắt sự thay đổi giá nhanh chóng trong khi đường chậm lọc ra tiếng ồn và xác định hướng xu hướng. Khi đường nhanh vượt qua đường chậm từ dưới, nó được coi là tín hiệu tăng giá để đi dài. Khi đường nhanh phá vỡ đường chậm từ trên, nó được coi là tín hiệu giảm giá để đi ngắn.

Đặc biệt, chiến lược tính toán đường trung bình di chuyển đơn giản 7 ngày (SMA) và đường SMA 5 tháng, vẽ chúng trên biểu đồ giá. Khi đường 7 ngày vượt qua đường 5 tháng từ dưới, một tín hiệu mua được tạo ra. Khi đường 7 ngày vượt qua đường 5 tháng từ trên, một tín hiệu bán được kích hoạt. Chiến lược cũng hiển thị các khoảng thời gian tín hiệu.

Ưu điểm

Chiến lược có những lợi thế sau:

  1. Cơ sở lý thuyết đơn giản và đáng tin cậy, dựa trên nguyên tắc chéo trung bình động được biết đến rộng rãi.

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

  3. Các dòng nhanh và chậm làm việc cùng nhau một cách hiệu quả để xác định xu hướng và lọc tiếng ồn thị trường.

  4. Các khung thời gian khác nhau được ghi lại thông qua các MA giai đoạn khác nhau, phát hiện sự thay đổi xu hướng trên nhiều quy mô.

  5. Thực hiện đơn giản với logic rõ ràng, dễ hiểu.

  6. Các tín hiệu được hiển thị rõ ràng và trực quan để quyết định giao dịch.

Rủi ro

Ngoài ra còn có một số rủi ro:

  1. Có xu hướng tín hiệu sai chỉ dựa trên MA.

  2. Không thể đánh giá hiệu quả sức mạnh xu hướng, gây ra stop loss thường xuyên trong các thị trường dao động.

  3. Thời gian MA cố định không thể thích nghi với những thay đổi trên thị trường, đòi hỏi tối ưu hóa các tham số.

  4. Mức độ vào và ra không rõ ràng, với một số rủi ro.

  5. Cơ sở lý thuyết đơn giản có thể gây tổn hại đến hiệu suất và tiềm năng lợi nhuận.

Tăng cường

Chiến lược có thể được cải thiện trong các khía cạnh sau:

  1. Thêm các chỉ số khác để xác định mức nhập cảnh và xuất cảnh, chẳng hạn như KDJ cho quá mua / quá bán.

  2. Thực hiện các cơ chế dừng lỗ như dừng lại để hạn chế lỗ.

  3. Tối ưu hóa thời gian MA để thích nghi với các chu kỳ thị trường khác nhau.

  4. Thêm bộ lọc âm lượng để tránh các sự đột phá giả.

  5. Đánh giá sức mạnh của xu hướng, ví dụ như độ dốc MA, để quy mô vị trí.

  6. Kết hợp nhiều khung thời gian để tiếp tục xu hướng tốt hơn.

Kết luận

Chiến lược xác định xu hướng tăng / giảm đơn giản và đáng tin cậy dựa trên lý thuyết chéo MA. Những ưu điểm là sự đơn giản và dễ sử dụng, trong khi những nhược điểm là rủi ro vốn có theo xu hướng. Các thông số tinh chỉnh, thêm các chỉ số phụ trợ vv có thể cải thiện hiệu suất chiến lược. Các nhà đầu tư có thể chọn sử dụng nó dựa trên sự thèm mạo hiểm của họ.


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


Thêm nữa