
Chiến lược này là một chiến lược giao dịch định lượng dựa trên tín hiệu chéo của nhiều đường trung bình di chuyển và các chỉ số dao động ngẫu nhiên. Chiến lược tổng hợp các đường trung bình di chuyển ngắn hạn, trung hạn và dài hạn, kết hợp với tính năng mua bán quá mức của chỉ số dao động ngẫu nhiên, để nắm bắt các bước ngoặt và cơ hội giao dịch của xu hướng thị trường thông qua xác nhận nhiều tín hiệu.
Chiến lược này sử dụng năm đường trung bình di chuyển 3, 5, 6, 10 và 80 ngày cùng với Stochastic Oscillator. Các tín hiệu giao dịch được kích hoạt dựa trên các điều kiện sau:
Chiến lược này tạo ra một hệ thống giao dịch tương đối hoàn hảo thông qua việc sử dụng kết hợp nhiều đường trung bình di chuyển và các chỉ số dao động ngẫu nhiên. Điểm mạnh của chiến lược là độ tin cậy của tín hiệu và sự ổn định của hệ thống, nhưng cũng cần chú ý đến việc kiểm soát chi phí giao dịch và sự thích nghi của môi trường thị trường. Bằng cách tối ưu hóa và hoàn thiện liên tục, chiến lược này có thể đạt được lợi nhuận ổn định trong giao dịch thực tế.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Moving Average and Stochastic Crossover Strategy", overlay=true)
// Calculate the moving averages
ma3 = ta.sma(close, 3)
ma5 = ta.sma(close, 5)
ma6 = ta.sma(close, 6)
ma10 = ta.sma(close, 10)
ma80 = ta.sma(close, 80)
// Stochastic Oscillator with settings %K(15), %D(9), and slowing 9
k = ta.stoch(close, high, low, 15)
d = ta.sma(k, 9)
slow_d = ta.sma(d, 9)
// Buy signal confirmation: MA10 crosses above MA5, MA6, and K line crosses above D line
buySignalConfirmation = ta.crossover(ma10, ma5) and ta.crossover(ma10, ma6) and ta.crossover(k, d)
// Sell signal confirmation: MA5 crosses above MA10, MA6, and D line crosses above K line
sellSignalConfirmation = ta.crossunder(ma5, ma10) and ta.crossunder(ma5, ma6) and ta.crossunder(d, k)
// Strategy logic
if (buySignalConfirmation)
strategy.entry("Buy", strategy.long)
if (sellSignalConfirmation)
strategy.entry("Sell", strategy.short)
// Plot the moving averages and Stochastic Oscillator for visualization
plot(ma3, color=color.orange, title="MA3", linewidth=2)
plot(ma5, color=color.blue, title="MA5", linewidth=2)
plot(ma6, color=color.purple, title="MA6", linewidth=2)
plot(ma10, color=color.green, title="MA10", linewidth=2)
plot(ma80, color=color.red, title="MA80", linewidth=2)
plot(k, color=color.blue, title="%K", linewidth=2)
plot(d, color=color.red, title="%D", linewidth=2)
plot(slow_d, color=color.purple, title="Slow %D", linewidth=2)