Chiến lược giao cắt đường trung bình động cổ điển


Ngày tạo: 2023-11-07 15:48:41 sửa đổi lần cuối: 2023-11-07 15:48:41
sao chép: 0 Số nhấp chuột: 388
1
tập trung vào
1166
Người theo dõi

Chiến lược giao cắt đường trung bình động cổ điển

Tổng quan

Chiến lược chéo trung bình di chuyển là một chiến lược phân tích kỹ thuật rất cổ điển. Nó đánh giá xu hướng của thị trường bằng cách tính toán các trung bình di chuyển của các chu kỳ khác nhau và quan sát sự giao thoa của chúng để đạt được mục đích mua thấp và bán cao.

Nguyên tắc

Chiến lược này chủ yếu là tính toán đường SMA 10 ngày và đường TRIMA 10 ngày. Khi SMA vượt qua TRIMA, nó tạo ra tín hiệu mua, cho thấy thị trường chuyển từ giảm sang tăng, và có thể mua.

Cụ thể, chiến lược đầu tiên nhập giá đóng cửa và xác định độ dài của chu kỳ để tính toán SMA và TRIMA. Công thức tính toán của SMA là:

SMA = (P1 + P2 + … + Pn) / n

Trong đó Pn là giá đóng cửa trong n ngày qua.

Công thức TRIMA là:

TRIMA = (SMA1 + SMA2 + SMA3) / 3

Trong đó, SMA1, SMA2 và SMA3 là SMA của giá đóng cửa trong n ngày qua.

Vì vậy, TRIMA tương đương với một lần SMA khác với SMA, với hiệu quả mịn hơn. Khi SMA ngắn kỳ trên SMA dài kỳ, thể hiện sự phá vỡ trên đường trung bình ngắn kỳ, có thể mua. Ngược lại, khi SMA dưới TRIMA, thể hiện sự phá vỡ dưới đường trung bình ngắn kỳ, có thể bán.

Ưu điểm

Lợi thế lớn nhất của chiến lược này là sử dụng khả năng phân tích xu hướng của trung bình di chuyển, có thể xác định hiệu quả xu hướng thị trường, loại bỏ tiếng ồn thị trường ngắn hạn và thực hiện mua bán thấp. So với trung bình di chuyển đơn lẻ, việc sử dụng kết hợp SMA và TRIMA có thể làm tăng độ tin cậy phá vỡ và giảm khả năng phá vỡ giả. Ngoài ra, trung bình di chuyển có tính mượt mà, có thể có hiệu quả dừng lỗ và giảm khả năng dừng lỗ đơn.

Rủi ro

Rủi ro chính của chiến lược này là bản thân đường trung bình di chuyển bị tụt hậu so với sự thay đổi giá, có thể bỏ lỡ giai đoạn trước của xu hướng, dẫn đến việc nhập cảnh quá muộn. Ngoài ra, khi thị trường không có xu hướng rõ ràng, chiến lược sẽ tạo ra nhiều đột phá giả. Cuối cùng, chiến lược đường trung bình di chuyển phụ thuộc nhiều hơn vào tối ưu hóa tham số, và nếu các tham số được đặt không đúng cách, nó cũng có thể ảnh hưởng lớn đến hiệu quả của chiến lược.

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. Tối ưu hóa các tham số chu kỳ của các trung bình di chuyển, sử dụng phương pháp khoa học hơn để tìm các kết hợp chu kỳ tốt nhất.

  2. Tăng các chỉ số lọc lượng giao dịch để tránh tín hiệu sai khi giao dịch không tốt.

  3. Kết hợp các chỉ số xu hướng như MACD để xác định xu hướng địa phương, tránh giao dịch lặp lại trong thị trường thanh toán.

  4. Sử dụng trung bình di chuyển thích ứng, tham số chu kỳ điều chỉnh động khi thị trường đi vào một giai đoạn nhất định.

  5. Sử dụng nhiều khung thời gian để xác minh, ví dụ, chỉ xem xét nhập học khi đường ngày và đường 4 giờ bị phá vỡ.

Tóm tắt

Chiến lược giao chéo đường trung bình di chuyển là một chiến lược phân tích kỹ thuật đơn giản và thực tế, rất phù hợp với giao dịch giữ vị trí trung bình và dài, có thể xác định hiệu quả hướng xu hướng. Tuy nhiên, chiến lược này cũng có một số chậm trễ, cần kết hợp với chỉ số đánh giá xu hướng để lọc tối ưu hóa, giảm xác suất tín hiệu sai. Nếu các tham số được tối ưu hóa đúng, nó có thể bảo vệ vốn rodeo và có thể nắm bắt cơ hội xu hướng lớn hơn.

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

//TMA strategy I came across, uses sma to display entry/exit points for both margin and non margin trading. The buy/sell signals as well as syntax are hidden behind comments if you scroll down.
//Change the commented fields for margin or spot trading!
//@version=3
strategy("MP Rollercoaster Strat", overlay=true)

bgcolor ( color=black, transp=0, title='Blackground', editable=true)

x = input(close, "Red")
n = input(10, "periods")
trima = sma(sma(x,n), n)

kisa=input(5, "Green")
sma = sma(close, kisa)

bull = (sma>trima)
fill(plot(sma, color = green), plot(trima, color=red), bull ? green : red)

//Conditions
buy_signal = crossover(sma,trima)
sell_signal = crossunder(sma,trima)

plotshape(sell_signal, style=shape.triangleup, color = red, text="Short")
plotshape(buy_signal, style=shape.triangledown, color = green, text="Long")
//plotshape(sell_signal, style=shape.triangleup, color = red, text="Sell")
//plotshape(buy_signal, style=shape.triangledown, color = green, text="Buy")

alertcondition(sell_signal, title = 'Short', message = 'e= s= c=position b=long t=market l= | delay=30 | e= s= b=short l= t=market q=0.01')
alertcondition(buy_signal, title = 'Long', message =  'e= s= c=position b=short t=market l= | delay=30 | e= s= b=long l= t=market q=0.01')

//alertcondition(sell_signal, title = 'Sell', message = 'e= s= c=order b=buy | delay=3 | e= b=sell q=99% p=0.70% u=currency')
//alertcondition(buy_signal, title = 'Buy', message =  'e= s= c=order b=sell | delay=30 | e= b=buy q=80 p=0.1% u=currency')

testStartYear = input(2018, "From Year") 
testStartMonth = input(4, "From Month")
testStartDay = input(1, "From Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "To Year")
testStopMonth = input(1, "To Month")
testStopDay = input(1, "To Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

if testPeriod()
    if buy_signal
        strategy.entry("Long", true)
    

    if sell_signal
        strategy.close("Long")