Chiến lược theo dõi xu hướng đường cân bằng Ichimoku

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

Tổng quan

Chiến lược này sử dụng đường chuyển đổi, đường cơ sở và ranh giới đám mây từ chỉ số Ichimoku Kinko Hyo để xác định hướng xu hướng và thực hiện các giao dịch theo dõi xu hướng. Nó đi dài khi giá phá vỡ trên đỉnh đám mây và đi ngắn khi giá phá vỡ dưới đáy đám mây. Lợi nhuận được thực hiện khi tỷ lệ lợi nhuận được đặt trước đạt được. Mất mát được cắt giảm khi tỷ lệ lỗ được đặt trước đạt được.

Chiến lược logic

Chiến lược chủ yếu sử dụng các đường chỉ số Ichimoku sau:

  • Đường chuyển đổi (Tenkan-sen): Tượng trưng cho xu hướng ngắn hạn, được tính bằng mức trung bình của mức cao nhất và thấp nhất trong 9 giai đoạn qua
  • Đường cơ sở (Kijun-sen): đại diện cho xu hướng trung hạn, được tính bằng mức trung bình của mức cao nhất và thấp nhất trong 26 giai đoạn qua
  • Leading Span A (Senkou Span A): Trung bình của chuyển đổi và đường cơ sở
  • Leading Span B (Senkou Span B): Mức trung bình của mức cao nhất và thấp nhất trong 52 giai đoạn qua

Nó đi dài khi giá phá vỡ trên đám mây và đi ngắn khi giá phá vỡ dưới đám mây. Lý do vào và ra được kích hoạt khi giá phá vỡ đám mây trên và dưới tương ứng. Việc ra được kích hoạt khi tỷ lệ lợi nhuận hoặc lỗ đạt được.

Phân tích lợi thế

  • Sử dụng Ichimoku để xác định hướng xu hướng, tránh các tín hiệu sai từ tiếng ồn thị trường
  • Phá vỡ mây trên / dưới xác định các điểm đảo ngược xu hướng hiệu quả
  • Lấy lợi nhuận và điểm dừng lỗ giúp khóa lợi nhuận và kiểm soát rủi ro

Phân tích rủi ro

  • Ichimoku bị chậm trễ và có thể bỏ lỡ những điểm tốt nhất.
  • Chế độ điều chỉnh thông số kém của các đường như Conversion Line có thể gây ra tín hiệu sai
  • Đặt lệnh dừng lỗ quá chặt chẽ rủi ro thoát sớm; rủi ro quá lỏng lỗ lớn

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

  • Xem xét kết hợp các chỉ số khác để cải thiện độ chính xác
  • Tối ưu hóa các thông số năng động cho các giai đoạn và thị trường khác nhau
  • Sử dụng stop loss để điều chỉnh stop dựa trên hành động giá và tránh thoát sớm
  • Phát triển chiến lược lợi nhuận / lỗ tự động để điều chỉnh thông minh các điểm dựa trên biến động

Tóm lại

Chiến lược này sử dụng đám mây Ichimoku để xác định xu hướng và thực hiện theo dõi xu hướng đơn giản. Mặc dù có một số sự chậm trễ và tín hiệu sai, việc tối ưu hóa các thông số, dừng và sử dụng các chỉ số khác có thể cải thiện nó. Dễ hiểu và thực hiện, nó tốt cho người mới bắt đầu học hỏi và tham khảo khi phát triển các chiến lược khác. Kiểm tra và tối ưu hóa liên tục sẽ cải thiện các thông số và quy tắc cho hiệu suất trực tiếp tốt hơn.


/*backtest
start: 2023-10-04 00:00:00
end: 2023-10-08 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Estratégia com Ichimoku" , pyramiding=0, calc_on_every_tick = true, initial_capital = 20000, commission_type = strategy.commission.cash_per_order, commission_value = 10.00)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////Ichimoku Clouds////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////(VERSÃO 40.0)//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

periodoLinhaDeConversao = input(defval=9, title="Tenkan-sen (Linha de Conversão)",  minval=1)
periodoLinhaBase = input(defval=26, title="Kijun-sen (Linha Base)",  minval=1)
periodoNivelAdiantadoB = input(defval=52, title="Senkou Span B (Nível adiantado B)",  minval=1)
deslocamento = input(defval=26, title="Deslocamento",  minval=1)

linhaDeConversao = (highest(high,periodoLinhaDeConversao)+lowest(low,periodoLinhaDeConversao))/2
linhaBase = (highest(high,periodoLinhaBase)+lowest(low,periodoLinhaBase))/2
nivelAdiantadoA = (linhaDeConversao + linhaBase)/2
nivelAdiantadoB = (highest(high,periodoNivelAdiantadoB)+lowest(low,periodoNivelAdiantadoB))/2

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy.initial_capital = 50000
//Hardcoded quantity - strategy.entry(qty=)
capitalInicial = strategy.initial_capital
lotes = (strategy.initial_capital - (strategy.initial_capital % (open*100)))/open

//Percentage input goal - strategy.exit(profit=)
percentGoal = input (defval = 5.0, title = "Goal (%)", type = float, minval=0.0, step=0.1)
longGoal = (strategy.position_avg_price * (percentGoal/100)) * 100
shortGoal = (strategy.position_avg_price - (strategy.position_avg_price / (1+(percentGoal/100)))) * 100

//Percentage input stop - strategy.exit(loss=)
percentStop = input (defval = 0.5, title = "Stop (%)", type = float, minval=0.0, step=0.1)
longStop = (strategy.position_avg_price * (percentStop/100)) * 100
shortStop = (strategy.position_avg_price * (percentStop/100)) * 100

strategy.entry('entryLong', strategy.long, lotes, when = strategy.position_size == 0 and crossover(close,max(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.entry('entryShort', strategy.short, lotes, when = strategy.position_size == 0 and crossunder(close,min(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.exit('exitLong', 'entryLong', profit = longGoal, loss = longStop)
strategy.exit('exitShort', 'entryShort', profit = shortGoal, loss = shortStop)

plot(strategy.equity, title="Variação de capital", color=white)
//plot(strategy.position_size, color=red)

Thêm nữa