
Đây là một chiến lược giao dịch số lượng đơn giản dựa trên chỉ số đường trung bình. Nó sử dụng đường trung bình nhanh và chậm để xác định thời gian mua và bán. Khi đường nhanh vượt qua đường chậm từ phía dưới, nó tạo ra tín hiệu mua; khi đường nhanh vượt qua đường chậm từ phía trên, nó tạo ra tín hiệu bán.
Chiến lược này chủ yếu dựa trên chức năng theo dõi xu hướng của đường trung bình. Các tham số đường nhanh nhỏ, phản ứng nhanh với sự thay đổi giá; tham số đường chậm lớn, đại diện cho xu hướng dài hạn. Đường nhanh đi qua đường chậm từ dưới có nghĩa là xu hướng ngắn hạn bắt đầu đảo ngược, đi vào xu hướng tăng; và đường nhanh đi qua đường chậm từ trên có nghĩa là xu hướng ngắn hạn bắt đầu đảo ngược, đi vào xu hướng giảm. Bằng cách nắm bắt các tín hiệu này, bạn có thể giao dịch theo thứ tự.
Cụ thể, chiến lược này xác định hai đường trung bình là ngày 5 (đường nhanh) và ngày 34 (đường chậm). Mỗi ngày tính giá trị của hai đường trung bình này và so sánh xem đường nhanh có phá vỡ đường chậm từ phía dưới không. Nếu có tín hiệu vàng, hãy làm nhiều hơn; Nếu có tín hiệu chết, hãy cân bằng.
Chiến lược này đơn giản, dễ hiểu và dễ thực hiện hơn các chiến lược phức tạp khác, nó phù hợp hơn với người mới bắt đầu giao dịch số lượng.
Chiến lược hai đường trung bình có thể lọc hiệu quả tiếng ồn thị trường và nắm bắt các xu hướng chính. Bằng cách điều chỉnh các tham số số ngày của đường trung bình chậm và nhanh, nó có thể thích ứng với sự thay đổi của thị trường trong các chu kỳ khác nhau.
Chiến lược này cũng có cơ chế dừng lỗ. Khi giá bắt đầu đảo ngược, nó sẽ dừng lỗ kịp thời và có thể kiểm soát rủi ro hiệu quả.
Chiến lược hai đường đều có thể có những rủi ro như không dừng lỗ, không phù hợp với đường cong. Cụ thể, các vấn đề chính là:
Đường trung bình có độ chậm trễ, có thể xảy ra khi tín hiệu được phát ra sau khi hoàn thành. Khi đó, lợi nhuận đã biến thành lỗ.
Trong trường hợp xung đột, có thể có nhiều tín hiệu giả. Điều này sẽ gây ra quá nhiều giao dịch không cần thiết, tăng chi phí giao dịch và mất điểm trượt.
Chiến lược này hoàn toàn dựa vào các chỉ số kỹ thuật mà không kết hợp với phân tích cơ bản.
Không tính đến quản lý vị trí và kiểm soát rủi ro. Một sự cố bất ngờ có thể làm cho chiến lược bùng nổ.
Để tận dụng tốt hơn các lợi thế của chiến lược này và giảm thiểu rủi ro, chúng ta có thể tối ưu hóa các khía cạnh sau:
Kết hợp các chỉ số xu hướng và chỉ số biến động, thiết lập các điều kiện nhập cảnh nghiêm ngặt hơn, lọc các tín hiệu giả. Ví dụ như chỉ số MACD hoặc KDJ.
Thêm một cơ chế dừng thích hợp. Nếu giảm một tỷ lệ nhất định sau khi Gold Forks dừng lại. hoặc giảm một tỷ lệ nhất định sau khi hình thành điểm cao mới.
Tối ưu hóa các tham số số ngày của đường trung bình chậm và nhanh, điều chỉnh cho các thay đổi giá theo chu kỳ khác nhau. Bạn có thể tối ưu hóa các tham số để tìm tham số tốt nhất.
Các chỉ số thị trường lớn có thể được sử dụng để đánh giá xu hướng thị trường tổng thể, tránh giao dịch thường xuyên trong thời gian biến động.
Kết hợp với sự thay đổi khối lượng giao dịch để xác minh độ tin cậy của tín hiệu xu hướng. Ví dụ: tăng phải có điều kiện phá vỡ trọng lượng.
Chiến lược hai dòng đồng đều là một chiến lược giao dịch định lượng rất điển hình. Nó có các đặc điểm đơn giản, trực quan, dễ thực hiện, rất phù hợp cho người mới bắt đầu giao dịch định lượng để học và nắm bắt. Bằng cách liên tục kiểm tra và tối ưu hóa các tham số, có thể đạt được hiệu quả tốt hơn.
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// This strategy is a modification to the "Bill Williams, Awesome Oscillator
// (AO) Backtest" strategy (Copyright by HPotter v1.0 29/12/2016)
//
// This version of the strategy by Midnight Mouse. 10/4/2018
//
// DESCRIPTION
//
// This indicator plots the oscillator as a column where periods fit for buying
// are marked as green, and periods fit for selling as orange/brown. If the
// current value of AO (Awesome Oscillator) is > the previous, the period is
// deemed fit for buying and the indicator is marked green. If the AO values is
// not over the previous, the period is deemed fit for selling and the indicator
// is marked orange/brown.
//
// You can change long to short in the Input Settings
//
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy("Awesome Oscillator.MMouse_Lager_BCE")
// === SETTINGS ===
// Strategy start date
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2017, title = "From Year", minval = 2014)
// Strategy settings
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
allowShorts = input(false, title="Include Short Trades")
reverse = input(false, title="Trade reverse")
// === BODY ===
// Use Heikin-Ashi candles for the buy/sell signal
ha_t = heikinashi(syminfo.tickerid)
ha_high = security(ha_t, timeframe.period, high)
ha_low = security(ha_t, timeframe.period, low)
length = input( 14 )
price = open
vrsi = rsi(price, length)
// Calc (H+L)/2 for each length
xSMA1_hl2 = sma((ha_high + ha_low)/2, nLengthFast)
xSMA2_hl2 = sma((ha_high + ha_low)/2, nLengthSlow)
// Get SMA difference (Fast - Slow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
// Derive the color of the column
cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? #93c47d : #ad5e1d
// Determine the position to take (Long vs. Short)
pos = iff(xSMA1_SMA2 > xSMA1_SMA2[1], 1, iff(xSMA1_SMA2 < xSMA1_SMA2[1], -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos))
// Only apply strategy from the start date
if (time >= timestamp(FromYear, FromMonth, FromDay, 00, 00))
if (possig == 1)
// Market is currently fit for a Long position
strategy.entry("Long", strategy.long)
if (possig == -1)
// Market is currently fit for a Short position
if(allowShorts)
// Shorts are allowed. Record a Short position
strategy.entry("Short", strategy.short)
else
// Shorts are not allowed. Closec the Long position.
strategy.close("Long")
// Define the candle colors
//barcolor(possig == -1 ? red :
// possig == 1 ? green :
// blue )
// Plot the oscillator
plot(xSMA1_SMA2, style=columns, linewidth=1, color=cClr)