Chiến lược theo xu hướng dựa trên Ichimoku Kinko Hyo


Ngày tạo: 2023-10-12 17:29:46 sửa đổi lần cuối: 2023-10-12 17:29:46
sao chép: 0 Số nhấp chuột: 665
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này sử dụng đường chuyển đổi, đường cơ sở trong chỉ số Ichimoku Kinko Hyo và đường phía trước và phía sau của đám mây đường để xác định hướng xu hướng của giá và thực hiện giao dịch theo dõi xu hướng. Khi giá vượt qua đỉnh đám mây, hãy làm nhiều, khi phá vỡ đáy đám mây, hãy làm trống, đạt đến mức dừng tỷ lệ lợi nhuận dự kiến, đạt đến mức dừng tỷ lệ thua lỗ dự kiến.

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

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

  • Conversion Line (Tenkan-sen): Đường chuyển đổi, đại diện cho xu hướng ngắn hạn, trung bình của giá cao nhất và thấp nhất trong 9 chu kỳ
  • Base Line (Kijun-sen): Đường chuẩn, đại diện cho xu hướng trung bình, trung bình của 26 chu kỳ giá cao nhất và giá thấp nhất
  • Leading Span A (Senkou Span A): đường dẫn A, trung bình của đường chuyển đổi và đường chuẩn
  • Leading Span B (Senkou Span B): đường dẫn trước B, trung bình giá cao nhất và giá thấp nhất trong 52 chu kỳ

Khi giá lên vượt qua đám mây tuyến trước, hãy làm nhiều hơn; Khi giá xuống vượt qua đám mây tuyến trước, hãy làm trống. ConfigEntry và ExitReason mở lệnh khi phá vỡ đám mây đỉnh và đáy, tương ứng, và đóng lệnh khi đạt tỷ lệ lợi nhuận.

Phân tích lợi thế

  • Sử dụng chỉ số Ichimoku để xác định xu hướng và tránh bị lừa bởi sự biến động của thị trường
  • Nhận biết điểm thay đổi xu hướng bằng cách phá vỡ đám mây / đám mây để tăng hiệu quả giao dịch
  • Thiết lập điểm dừng để nắm bắt cơ hội kiếm lợi nhuận và kiểm soát rủi ro

Phân tích rủi ro

  • Chỉ số Ichimoku bị tụt hậu, có thể bỏ lỡ điểm tốt nhất để thay đổi xu hướng
  • Cần thiết lập hợp lý các tham số chu kỳ, chẳng hạn như chuyển đổi đường, đường chuẩn và các chu kỳ thiết lập không đúng có thể dẫn đến tín hiệu giả
  • Đặt điểm dừng quá nhỏ, có thể dừng quá sớm; đặt quá lớn, nguy cơ tăng lỗ

Hướng tối ưu hóa

  • Xác định xu hướng kết hợp với các chỉ số khác để tăng độ chính xác
  • Chu kỳ tham số tối ưu hóa động, thích ứng với các chu kỳ khác nhau và môi trường thị trường
  • Thiết lập theo dõi dừng để điểm dừng được điều chỉnh theo biến động giá, tránh dừng quá sớm
  • Cân nhắc phát triển chiến lược dừng lỗ tự động, điều chỉnh điểm dừng lỗ theo sự biến động của thị trường

Tóm tắt

Chiến lược này sử dụng Ichimoku Cloud để nhận diện xu hướng và theo dõi xu hướng một cách đơn giản và hiệu quả. Mặc dù có một số rủi ro về sự chậm trễ và tín hiệu sai, nhưng có thể được cải thiện bằng cách tối ưu hóa tham số, cải thiện kỹ thuật dừng lỗ, kết hợp với các chỉ số khác. Chiến lược này dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu học, cũng có thể được sử dụng làm tham khảo cho các chiến lược khác.

Mã nguồn chiến lược
/*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)