Chiến lược giao chéo vàng là một chỉ số thị trường đơn giản giúp các nhà đầu tư dài hạn xác định thời điểm vào. Chiến lược này tạo ra tín hiệu giao dịch dựa trên sự giao chéo của đường trung bình di chuyển ngắn hạn và dài hạn. Khi đường trung bình di chuyển ngắn hạn đi qua đường trung bình di chuyển dài hạn, hình thành giao chéo vàng, cho thấy thị trường đi vào thị trường bò, có thể làm nhiều hơn; khi đường trung bình di chuyển ngắn hạn đi qua đường trung bình di chuyển dài hạn, hình thành giao chéo chết, cho thấy thị trường đi vào thị trường gấu, nên đóng cửa.
Chiến lược này sử dụng hàm sma để tính toán trung bình di chuyển đơn giản trong ngắn hạn và dài hạn. Độ dài của trung bình di chuyển ngắn hạn được đặt là 50 ngày và độ dài của trung bình di chuyển dài hạn là 200 ngày. Chiến lược sử dụng hàm crossover và crossunder để đánh giá xem đường ngắn sẽ đi trên hoặc đi xuống đường dài hạn để tạo tín hiệu giao dịch.
Khi đường ngắn xuyên qua đường dài, nó cho thấy xu hướng thị trường chuyển từ giảm sang tăng, tạo ra một giao dịch vàng. Đây là một tín hiệu cho biết nhiều hơn. Chiến lược sẽ mở thêm vị trí thông qua hàm strategy.entry.
Bằng cách nắm bắt các điểm biến động của xu hướng thị trường để xác định thời gian nhập và thời gian giữ, có thể lọc hiệu quả tiếng ồn thị trường, một chiến lược theo dõi xu hướng đơn giản và thực tế.
Có thể thiết lập dừng lỗ để kiểm soát rủi ro, tối ưu hóa tham số trung bình di chuyển để giảm tín hiệu giả, kết hợp với các chỉ số khác để xác nhận tín hiệu đáng tin cậy, phát triển cơ chế xử lý sự kiện bất ngờ để đối phó với tin tức quan trọng.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa các tham số trung bình di chuyển, điều chỉnh chiều dài của đường trung bình ngắn hạn và dài hạn để phù hợp hơn với các đặc điểm của các thị trường khác nhau;
Điều kiện đánh giá tăng lượng giao dịch, chỉ phát ra tín hiệu khi số lượng giao dịch tăng;
Kết hợp với các chỉ số khác như MACD, RSI để xác nhận tín hiệu giao thoa vàng/chết để tránh tín hiệu giả;
Tăng cường các chiến lược dừng lỗ, chẳng hạn như dừng theo dõi, dừng tỷ lệ, để kiểm soát tổn thất đơn;
Tăng các chiến lược quản lý vị trí, chẳng hạn như cố định vị trí, tăng vị trí chỉ số, để kiểm soát rủi ro tổng thể;
Tối ưu hóa thời gian nhập cảnh, quan sát một thời gian sau khi giao thoa xảy ra và lọc các giao thoa giả.
Bằng cách tối ưu hóa như trên, các tham số chiến lược có thể phù hợp hơn với các đặc điểm thống kê của thị trường, lọc các tín hiệu giả, kiểm soát rủi ro, và trong khi vẫn đơn giản, tiếp tục nâng cao tính ổn định và lợi nhuận của chiến lược.
Chiến lược Gold Cross là một chiến lược theo dõi xu hướng đơn giản và thực tế. Nó trực quan nắm bắt xu hướng thị trường thông qua đường trung bình di chuyển, có thể xác định thời gian nhập và thoát hiệu quả cho các nhà đầu tư dài dòng. Chiến lược này dễ thực hiện, phù hợp với người mới bắt đầu học, cũng có thể mở rộng và tối ưu hóa nhiều mặt, làm cho nó trở thành một chiến lược giao dịch định lượng linh hoạt và đáng tin cậy.
/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Dumb strategy 2 - Golden Cross", shorttitle="Golden Cross", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
lShort = input(50, title="short length")
lLong = input(200, title="long length")
src = input(close, title="Source")
smaShort = sma(src, lShort)
smaLong = sma(src, lLong)
plot(smaShort, title="SMA Short", style=line, linewidth=3, color=lime)
plot(smaLong, title="SMA Long", style=line, linewidth=3, color=red)
//
//Backtest Time Inputs
//
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(01, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? blue : na
bgcolor(testPeriodBackgroundColor, transp=80)
testPeriod() => true
if testPeriod()
longCondition = crossover(smaShort, smaLong)
if (longCondition)
strategy.entry("Long Entry", strategy.long)
shortCondition = crossunder(smaShort, smaLong)
if (shortCondition)
strategy.close_all(true)