Chiến lược giao dịch chéo là một trong những chiến lược giao dịch phổ biến. Chiến lược này sử dụng nguyên tắc giao dịch chéo của đường chéo, kết hợp với chỉ số Ichimoku và đường trung bình di chuyển trơn SMA để tạo thành một hệ thống giao dịch hoàn chỉnh hơn. Chiến lược này có thể tự động thực hiện các hoạt động mở cửa cổ phiếu.
Chiến lược này chủ yếu đánh giá mua bán cổ phiếu bằng cách so sánh đường chuyển đổi và đường chuẩn trong chỉ số Ichimoku, và sự giao thoa của đường trung bình di chuyển ngắn hạn và dài hạn SMA.
Cụ thể, mã định nghĩa đường chuyển đổi của chỉ số Ichimoku là ConversionLine, đường chuẩn là BaseLine, đường dẫn 1 là LeadLine1 và đường dẫn 2 là LeadLine2. Đồng thời định nghĩa đường trung bình di chuyển SMA dài hạn là Ma1 và đường trung bình di chuyển SMA ngắn hạn là Ma2.
Khi quyết định mua, điều kiện phải đáp ứng đồng thời là đường xoay thấp hơn đường chuẩn và đường trung bình ngắn hạn thấp hơn đường trung bình dài hạn, tức là có sự phân rã đường trung bình.
Khi quyết định bán, điều kiện phải đáp ứng cùng một lúc là đường chuyển đổi cao hơn đường chuẩn và đường trung bình ngắn hạn cao hơn đường trung bình dài hạn, tức là xảy ra ngã ba trung bình.
Ngoài ra, mã cũng xác định một số điều kiện phụ trợ, chẳng hạn như phán quyết giá đóng cửa cao hơn ngày trước, và sử dụng số lượng của đường trung bình để làm chênh lệch và sau đó chia cho một số để xác định độ lệch của đường trung bình. Điều này có thể xác định độ mạnh và hướng của đường trung bình.
Chiến lược này tập hợp các lợi thế của nhiều chỉ số kỹ thuật để đánh giá tốt hơn về xu hướng thị trường, với các lợi thế sau:
Bản đồ Ichimoku tự nó chứa các phán đoán về xu hướng, kết hợp với đường trung bình SMA có thể tạo ra phán đoán xu hướng mạnh mẽ hơn.
Đường trung bình SMA có thể xác định xu hướng và sức mạnh của giá, đường trung bình nhanh có thể xác định điểm mua và bán.
Tăng giá trị kết thúc để tránh mở và đóng cửa các vị thế không cần thiết.
Tính toán độ lệch đường trung bình làm tăng khả năng đánh giá sức mạnh của đường trung bình và có thể lọc các đường giả.
Nhìn chung, chiến lược này chính xác hơn trong việc đánh giá xu hướng, có thể giảm các giao dịch không cần thiết và có một số không gian để tối ưu hóa.
Chiến lược này cũng có một số rủi ro:
Ichimoku và SMA đều có thể bị chậm trễ và không phản ánh được sự thay đổi giá.
Sự kết hợp của nhiều điều kiện đã làm tăng sự phức tạp của chiến lược và khả năng sai lầm.
Chiến lược chỉ dựa trên các chỉ số kỹ thuật, không thể đánh giá được ảnh hưởng của các thông tin quan trọng.
Chiến lược không đặt điều kiện dừng lỗ, có nguy cơ tăng lỗ.
Chiến lược này không tính đến việc xử lý các trường hợp đặc biệt, chẳng hạn như tổng hợp các trường hợp.
Thiết lập tham số không đúng cũng ảnh hưởng đến hiệu quả của chính sách.
Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Cài đặt điều kiện dừng lỗ, có thể tự động dừng lỗ khi lỗ mở rộng.
Tăng khả năng đánh giá các thông tin quan trọng, tránh ảnh hưởng của các thông tin quan trọng.
Thêm phán đoán về tình huống đặc biệt, chẳng hạn như mở rộng phạm vi giao dịch hoặc điều chỉnh tham số.
Kiểm tra tối ưu hóa các tham số kết hợp để tìm các tham số tối ưu nhất.
Thêm các thuật toán học máy, sử dụng AI để tối ưu hóa tham số và phán đoán thị trường.
Tăng số lượng có thể đánh giá, tránh đột phá giả.
Kết hợp với các chỉ số cơ bản hơn, chẳng hạn như sự thay đổi khối lượng giao dịch.
Tóm lại, chiến lược giao chéo đường trung bình này tích hợp các lợi thế của chỉ số Ichimoku và đường trung bình di chuyển SMA để tạo thành một chiến lược giao dịch chứng khoán hoàn chỉnh hơn. Chiến lược này có khả năng đánh giá xu hướng mạnh mẽ, có thể nắm bắt cơ hội xu hướng một cách hiệu quả.
/*backtest
start: 2023-09-15 00:00:00
end: 2023-10-15 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// strategy("Ichimoku+SMAsmoothed", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
//
conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")
SMA1=input(title="SMA LONG",defval=21)
SMA2=input(title="SMA SHORT",defval=19)
p=ohlc4[1]
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
//plot(conversionLine, color=#0496ff, title="Conversion Line")
//plot(baseLine, color=#991515, title="Base Line")
//plot(close, offset = -displacement, color=#459915, title="Lagging Span")
//p1 = plot(leadLine1, offset = displacement, color=green,
// title="Lead 1")
//p2 = plot(leadLine2, offset = displacement, color=red,
// title="Lead 2")
//fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
ma1=sma(p, SMA1)
ma2=sma(p, SMA2)
p_a = ma1*2
p_b = ma1
p_c = p_a - p_b
p_d = p_c/24
p_e = ma2*2
p_f = ma2
p_g = p_e - p_f
p_h = p_g/24
closelong = ohlc4<ohlc4[SMA1] and ohlc4<ohlc4[1]// and leadLine1<leadLine2 and p_h<p_d
if (closelong)
strategy.close("Long")
closeshort = ohlc4>ohlc4[SMA1] and ohlc4>ohlc4[1]// and leadLine1>leadLine2 and p_h>p_d
if (closeshort)
strategy.close("Short")
longCondition = ohlc4>ohlc4[1] and leadLine1>leadLine2 and p_h>p_d
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = ohlc4<ohlc4[1] and leadLine1<leadLine2 and p_h<p_d
if (shortCondition)
strategy.entry("Short",strategy.short)