Ichimoku Trends theo chiến lược

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

img

Tổng quan

Chiến lược này được thiết kế dựa trên chỉ số Ichimoku để theo dõi xu hướng và giao dịch phá vỡ cân bằng, nhằm mục đích nắm bắt xu hướng giá trung bình đến dài hạn để có lợi nhuận ổn định.

Chiến lược logic

Chiến lược sử dụng năm đường Ichimoku - Tenkan-sen, Kijun-sen, Senkou Span A, Senkou Span B và Chikou Span để xác định xu hướng giá và mức hỗ trợ / kháng cự.

  1. Khi các đường băng gần trên Kijun-sen và Kijun-sen không bằng phẳng, một tín hiệu mua được kích hoạt.
  2. Khi các đường chéo gần dưới Kijun-sen và Kijun-sen không bằng phẳng, một tín hiệu bán được kích hoạt.
  3. Khi kết thúc là trên đám mây, thanh khoản là tốt để có các vị trí.
  4. Khi kết thúc dưới đám mây, thanh khoản thấp và nên tránh nhận các vị trí.
  5. Khi Chikou Span vượt qua điểm đóng cửa, một tín hiệu mua được kích hoạt.
  6. Khi Chikou Span vượt qua bên dưới, một tín hiệu bán được kích hoạt.

Các tín hiệu giao dịch trên được kết hợp để xác định thời gian nhập cảnh cuối cùng.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Sử dụng Ichimoku để xác định xu hướng có thể lọc tiếng ồn thị trường và nắm bắt xu hướng trung bình đến dài hạn.
  2. Bao gồm điều kiện đám mây tránh có các vị trí trong thanh khoản kém.
  3. Chikou Span đóng vai trò là sự xác nhận để tránh sự trốn thoát giả.
  4. Các quy tắc đơn giản và rõ ràng để thực hiện.

Phân tích rủi ro

Những rủi ro của chiến lược này liên quan đến:

  1. Cài đặt tham số không phù hợp có thể dẫn đến việc bỏ lỡ các cơ hội giao dịch.
  2. Phân tích xu hướng có thể bị chậm khi xu hướng thay đổi, không thể cắt giảm lỗ kịp thời.
  3. Rủi ro mất mát cao hơn cho các vị trí dài.

Những rủi ro này có thể được giải quyết bằng cách tối ưu hóa các tham số, kết hợp với các chỉ số khác để xác định sự thay đổi xu hướng và dừng lỗ nghiêm ngặt.

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

Chiến lược có thể được tối ưu hóa thêm từ các khía cạnh sau:

  1. Tối ưu hóa các thông số Ichimoku để tìm ra sự kết hợp tốt nhất.
  2. Thêm bộ lọc giá & khối lượng để tránh lệch xu hướng.
  3. Bao gồm các chỉ số biến động để xác định các điểm đảo ngược.
  4. Thêm các mô hình máy học để xác định tình trạng xu hướng.

Tóm lại

Chiến lược này tận dụng Ichimoku để xác định xu hướng giá và điều kiện thanh khoản để theo xu hướng, có thể lọc hiệu quả tiếng ồn và nắm bắt xu hướng trung bình đến dài hạn với giảm nhỏ hơn.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("My Ichimoku Strat", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency=currency.EUR)
// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// === SERIES SETUP ===
//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)

//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))


//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)

//Senkou Span A 
SenkouSpanA = (KijunSen + TenkanSen)/2

//Senkou Span B 
SenkouSpanB = sma((high+low)/2,52)

//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB


//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])

plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)

//Alerts

buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur

sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8)
buy=buy2 and buy3 or (buy1 and sellCompteur <=8)
plotchar(buy,char='B',size=size.small,color=lime)
plotchar(sell,char='S',size=size.small,color=orange)

//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)

// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

Thêm nữa