Chiến lược chéo trung bình di chuyển

Tác giả:ChaoZhang, Ngày: 2023-10-17 16:46:57
Tags:

img

Tổng quan

Chiến lược này là một chiến lược theo xu hướng dựa trên các đường trung bình động. Nó sử dụng chéo và chéo giữa các đường trung bình di chuyển nhanh và chậm để xác định hướng xu hướng cho giao dịch xu hướng rủi ro thấp.

Chiến lược logic

Chiến lược sử dụng một trung bình di chuyển nhanh của giai đoạn 9 và một trung bình di chuyển chậm của giai đoạn 21. Khi MA nhanh vượt qua trên MA chậm, nó báo hiệu xu hướng tăng trên thị trường và một vị trí dài được thực hiện. Khi MA nhanh vượt qua dưới MA chậm, nó báo hiệu xu hướng giảm và bất kỳ vị trí dài nào cũng được đóng.

Cụ thể, chiến lược tính toán các giá trị của MA nhanh và chậm và so sánh mối quan hệ của chúng để xác định hướng xu hướng. Trong xu hướng tăng, nếu MA nhanh vượt qua trên MA chậm, một tín hiệu đầu vào dài sẽ được kích hoạt. Trong xu hướng giảm, nếu MA nhanh vượt qua dưới MA chậm, một tín hiệu đầu ra sẽ được kích hoạt để đóng vị trí dài hiện có.

Bằng cách này, sự chéo chéo và chéo chéo của các MAs nhanh và chậm nắm bắt các chuyển đổi xu hướng cho xu hướng rủi ro thấp sau giao dịch.

Ưu điểm

  • Sử dụng đường trung bình động để xác định xu hướng lọc ra tiếng ồn thị trường và xác định hướng xu hướng
  • MA nhanh nắm bắt các thay đổi xu hướng nhanh hơn, trong khi MA chậm lọc ra các tín hiệu sai
  • Sử dụng crossover để mua và crossunder để bán tránh theo đuổi đỉnh và bán đáy
  • Logic giao dịch đơn giản và rõ ràng, dễ hiểu và thực hiện

Rủi ro

  • Các đường trung bình động có độ trễ và có thể bỏ lỡ các điểm vào / ra tốt nhất cho các chuyển đổi xu hướng
  • Độ dài MA cố định không thể thích nghi với các chu kỳ thị trường khác nhau
  • Chiến lược MA kép có xu hướng tạo ra tín hiệu giao dịch quá mức và quá phù hợp
  • Sử dụng chỉ MAs để xác định giao dịch dễ bị các sự kiện đột ngột và thua lỗ

Rủi ro có thể được quản lý bằng cách điều chỉnh các tham số, thêm các bộ lọc, dừng lỗ / lấy lợi nhuận.

Hướng dẫn cải thiện

  • Kiểm tra các thiết lập tham số khác nhau như chiều dài MA, ngưỡng chéo / chéo, v.v.
  • Thêm các chỉ số động lực như bộ lọc để tránh đột phá sai
  • Thêm các chỉ số xác định xu hướng để phân biệt các thị trường xu hướng và dao động
  • Kết hợp các số liệu biến động để tối ưu hóa dừng và lấy lợi nhuận
  • Sử dụng máy học để tối ưu hóa các thông số một cách năng động

Tóm lại

Như một chiến lược theo xu hướng đơn giản, ý tưởng cốt lõi là sử dụng MA nhanh và chậm để xác định hướng xu hướng. Ưu điểm là sự đơn giản, quy tắc rõ ràng và theo dõi xu hướng hiệu quả. Nhược điểm là chậm trễ, tín hiệu sai và giao dịch quá mức. Chúng ta có thể tối ưu hóa nó bằng cách điều chỉnh các tham số và thêm các chỉ số khác để thích nghi tốt hơn với điều kiện thị trường. Nhìn chung, chiến lược MA kép cung cấp một cách tiếp cận đơn giản và đáng tin cậy để giao dịch định lượng. Với những cải tiến liên tục, hiệu suất của nó có thể trở nên tốt hơn.


/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-20 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Profitable Crypto Strategy", shorttitle="Profit Strategy", overlay=true)

// Define strategy parameters
fastLength = input.int(9, title="Fast MA Length", minval=1)
slowLength = input.int(21, title="Slow MA Length", minval=1)
stopLossPercent = input.float(1.0, title="Stop Loss %", step=0.1)
takeProfitPercent = input.float(1.0, title="Take Profit %", step=0.1)

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Entry condition: Buy when fast MA crosses above slow MA
longCondition = ta.crossover(fastMA, slowMA)
// Exit condition: Sell when fast MA crosses below slow MA
shortCondition = ta.crossunder(fastMA, slowMA)

// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.orange, title="Slow MA")

// Strategy entry and exit logic
var stopLossPrice = 0.0
var takeProfitPrice = 0.0

if (longCondition)
    stopLossPrice := close * (1.0 - stopLossPercent / 100)
    takeProfitPrice := close * (1.0 + takeProfitPercent / 100)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")

// Set stop loss and take profit for open positions
strategy.exit("Stop Loss/Profit", stop=stopLossPrice, limit=takeProfitPrice)


Thêm nữa