Chiến lược theo dõi xu hướng dựa trên ICHIMOKU Cloud và chỉ số STOCH

Tác giả:ChaoZhang, Ngày: 2023-11-15 11:19:29
Tags:

img

Tổng quan

Chiến lược này dựa trên chỉ số mô hình biểu đồ đám mây ICHIMOKU và chỉ số ngẫu nhiên STOCH để xác định và theo dõi xu hướng.

Nguyên tắc chiến lược

Chiến lược chủ yếu đánh giá hướng xu hướng hiện tại và tình huống mua quá mức / bán quá mức thông qua biểu đồ đám mây ICHIMOKU và chỉ số STOCH.

Khi đường chuyển đổi vượt qua trên đường cơ sở và chỉ số Stoch bật trở lại từ khu vực quá bán, nó được coi là xu hướng tăng và chiến lược đi theo hướng tăng.

Trong mã, Đường chuyển đổi được định nghĩa là trung bình của giá cao nhất và thấp nhất của các thanh N1 cuối cùng; Đường cơ sở được định nghĩa là trung bình của giá cao nhất và thấp nhất của các thanh N2 cuối cùng.

Chỉ số Stoch xác định các đường ngưỡng mua quá mức và bán quá mức, cũng như các thông số làm mịn K và D. Một tín hiệu tăng được tạo ra khi Stoch bật trở lại từ khu vực bán quá mức, và một tín hiệu giảm được tạo ra khi nó giảm trở lại từ khu vực mua quá mức.

Bằng cách kết hợp hai chỉ số, chiến lược xác định hướng xu hướng.

Phân tích lợi thế

Chiến lược kết hợp các chỉ số mô hình biểu đồ và các chỉ số mua quá mức / bán quá mức để xác định hiệu quả hướng xu hướng.

So với việc sử dụng chỉ số đánh giá xu hướng duy nhất, chiến lược này xem xét toàn diện cả tình huống xu hướng và vượt quá và có thể xác định chính xác hơn thời gian nhập cảnh.

Biểu đồ mây ICHIMOKU có thể xác định xu hướng trung và dài hạn, trong khi chỉ số Stoch có thể phát hiện các tình huống mua quá mức / bán quá mức ngắn hạn.

Phân tích rủi ro

Những rủi ro chính của chiến lược này là:

  1. Nguy cơ thất bại của chỉ báo trong trường hợp xảy ra sự kiện thiên nga đen.

  2. Có một số sự chậm trễ, có thể bỏ lỡ một phần của xu hướng hoặc đảo ngược các vị trí mở.

  3. Phán quyết kết hợp nhiều yếu tố có một số tính chủ quan, và cài đặt tham số không đúng có thể gây ra lỗi.

  4. Tần suất giao dịch cao có thể ảnh hưởng đến lợi nhuận do chi phí giao dịch.

Các biện pháp tối ưu hóa tương ứng:

  1. Kết hợp các sự kiện tin tức để tránh giao dịch mù trong các sự kiện chính sách lớn.

  2. Giảm các tham số chu kỳ một cách thích hợp để giảm khả năng chậm trễ.

  3. Tối ưu hóa các thông số thông qua backtesting để cải thiện các thiết lập khoa học.

  4. Tăng thích hợp phạm vi lấy lợi nhuận và dừng lỗ để giảm tần suất giao dịch.

Hướng dẫn tối ưu hóa

Các hướng tối ưu hóa chính cho chiến lược này là:

  1. Tối ưu hóa các tham số chu kỳ của đường chuyển đổi ICHIMOKU và đường cơ sở để phù hợp hơn với các đặc điểm thị trường khác nhau.

  2. Tối ưu hóa các thông số làm mịn K, D và các giá trị ngưỡng mua/bán quá mức của chỉ số Stoch.

  3. Tăng các chỉ số khác để hình thành một mô hình đa yếu tố và cải thiện độ tin cậy của hệ thống.

  4. Tối ưu hóa điểm lấy lợi nhuận và dừng lỗ để giảm tần suất giao dịch trong khi đảm bảo lợi nhuận.

  5. Thêm một mô-đun để đánh giá các trường hợp khẩn cấp và tránh thất bại trong các sự kiện lớn.

Tóm lại

Chiến lược này kết hợp các biểu đồ đám mây ICHIMOKU và chỉ số Stoch để đưa ra các phán đoán toàn diện về hướng xu hướng và tình huống mua quá mức / bán quá mức, có thể theo dõi hiệu quả thị trường xu hướng. Bằng cách xem xét các mẫu biểu đồ và các chỉ số định lượng, chiến lược có hệ thống hơn.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ICHI + STOCH V1", overlay=true)
length = input.int(20, minval=1)
smoothK = input(5)
smoothD = input(3)
OverBought = input(25)
OverSold = input(65)
Profit = input(1800)
Stop = input(1200)
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
co = ta.crossover(k,d)
cu = ta.crossunder(k,d)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")
conversionLine = math.avg(ta.lowest(conversionPeriods), ta.highest(conversionPeriods))
baseLine = math.avg(ta.lowest(basePeriods), ta.highest(basePeriods))
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = math.avg(ta.lowest(laggingSpan2Periods), ta.highest(laggingSpan2Periods))
TREND = ta.ema(math.avg(leadLine1,leadLine2),displacement)
//plot(conversionLine, color=#2962FF, title="Conversion Line")
//plot(baseLine, color=#B71C1C, title="Base Line")
//plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span")
plot(TREND, color=#2962FF, title="TREND")
p1 = plot(leadLine1,style=plot.style_line, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")

p2 = plot(leadLine2,style=plot.style_line, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))
close_price = ta.sma(close,1)
pc = plot(close_price,style=plot.style_line, color=#2a0ab9,
	 title="Price Close")
if (not na(k) and not na(d))
	if (co and k < OverSold)and(close_price > TREND)
		strategy.entry("BUY order", strategy.long, comment="BUY order")
		strategy.exit("exitBUY", "BUY order", profit = Profit, loss = Stop)
	if (cu and k > OverBought)and(close_price < TREND)
		strategy.entry("SELL order", strategy.short, comment="SELL order")
		strategy.exit("exitSELL", "SELL order", profit = Profit, loss = Stop)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Thêm nữa