Chiến lược giao dịch Ichimoku Kinko Hyo


Ngày tạo: 2023-12-12 17:32:08 sửa đổi lần cuối: 2023-12-12 17:32:08
sao chép: 2 Số nhấp chuột: 707
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch Ichimoku Kinko Hyo

Tổng quan

Đây là một chiến lược giao dịch chứng khoán chỉ có nhiều đầu dựa trên chỉ số Ichimoku Kinko Hyo. Chiến lược này sử dụng nguyên tắc cơ bản của sự cân bằng thoáng qua để đánh giá thời gian ra thị trường.

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

Chiến lược này đầu tiên tính toán các thành phần cân bằng ban đầu, bao gồm đường antenna ((Tenkan-Sen), đường chuẩn ((Kijun-Sen), đường dẫn ((Senkou Span A) và đường trì hoãn ((Senkou Span B)).

Thêm vào thị trường khi đáp ứng các điều kiện sau:

  • Đường trung bình ngắn hạn trên đường trung bình dài hạn, thuộc tín hiệu Gold Forks
  • Các nhà đầu tư đang tìm kiếm các giải pháp để tăng giá cổ phiếu của họ.
  • Dưới đây là một biểu đồ màu đỏ cho thấy xu hướng tăng trưởng trong tương lai.
  • Giá ở khoảng cách dưới 2 lần ATR so với đường kim loại, cho thấy giá không cao, phù hợp với chiến lược theo dõi kim loại
  • Giá thấp hơn 3 lần ATR so với đường viền cơ sở, cho thấy giá không cao, phù hợp với chiến lược theo dõi
  • Đường bầu trời và đường chuẩn đều nằm trên bản đồ đám mây, cho thấy xu hướng tăng cân bằng

Khi các điều kiện sau đây được đáp ứng, một lệnh hòa sẽ được thực hiện:

  • Đường trung bình ngắn hạn đi qua đường trung bình dài hạn, thuộc tín hiệu dead fork
  • Giá giảm so với biểu đồ mây, cho thấy giá cổ phiếu mất đi sự hỗ trợ
  • Hoặc lợi nhuận vượt quá 30%, theo chiến lược ngăn chặn
  • Hoặc thua lỗ hơn 3%, theo chiến lược dừng lỗ

Phân tích lợi thế

  • Sử dụng chỉ số cân bằng trực quan để xác định xu hướng giá cổ phiếu, độ chính xác cao
  • Kết hợp với ATR để kiểm soát đợt dừng chân và giảm giá, tránh mua quá mức
  • Xác định nhiều tín hiệu và tránh các tín hiệu giả
  • Chiến lược bổ sung có thể tăng lợi nhuận

Phân tích rủi ro

  • Các tín hiệu cân bằng có thể bị chậm trễ và cần được kết hợp với các chỉ số khác
  • Thiết lập tham số ATR sai có thể dẫn đến quá mua quá bán
  • Chiến lược bồi thường có thể làm tăng rủi ro mất mát
  • Cần xác định các tham số bằng tay, các tham số khác nhau cho các cổ phiếu khác nhau

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

  • Có thể kết hợp các chỉ số khác như MACD, KDJ để xác nhận tín hiệu
  • Bạn có thể tăng điểm dừng và giảm điểm dừng.
  • Các tham số ATR có thể được tự động tối ưu hóa dựa trên dữ liệu lịch sử
  • Có thể nghiên cứu sự khác biệt của các tham số của các cổ phiếu trong các ngành khác nhau để xây dựng một hồ tham số

Tóm tắt

Đây là một chiến lược giao dịch chứng khoán rất thực tế, sử dụng xu hướng đánh giá cân bằng ngay lập tức, kiểm soát rủi ro ATR để theo đuổi phương pháp dừng giảm để kiếm lợi nhuận. Ưu điểm của chiến lược này rõ ràng, hiệu quả sẽ tốt hơn sau khi tối ưu hóa tham số và tối ưu hóa chỉ số tổ hợp, phù hợp với giao dịch trực tiếp.

Mã nguồn chiến lược
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Author Obarut
//@version=5
strategy("İchimoku Strategy With Money Management",overlay=true)

//Inputs
ts_period = input.int(9, minval=1, title="Tenkan-Sen Period")
ks_period = input.int(26, minval=1, title="Kijun-Sen Period")
ssb_period = input.int(52, minval=1, title="Senkou-Span B Period")
cs_offset = input.int(26, minval=1, title="Chikou-Span Offset")
ss_offset = input.int(26, minval=1, title="Senkou-Span Offset")


// Back Testing Period

fromday = input.int(defval=1,title="Start Date",minval=1,maxval=31) 
frommonth = input.int(defval=1,title="Start Month",minval=1,maxval=12)
fromyear = input.int(defval=1980,title="Start Year",minval=1800, maxval=2100)
today = input.int(defval=1,title="En Date",minval=1,maxval=31)
tomonth = input.int(defval=1,title="End Month",minval=1,maxval=12)
toyear =input.int(defval=2100,title="End Year",minval=1800,maxval=2200)


start=timestamp(fromyear,frommonth,fromday,00,00)
finish=timestamp(toyear,tomonth,today,00,00)
timewindow= time>=start and time<=finish

middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components

tenkan = middle(ts_period)
kijun = middle(ks_period)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_period)


atr = ta.atr(14)
ss_above = math.max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_below = math.min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Price Distance From Tenkan

distance = close - tenkan

// Price Distance from Kijun

distancek = close - kijun

// Entry/Exit Signals

tk_cross_kijun_bull = tenkan >= kijun
tk_cross_kijun_bear = tenkan <= kijun
cs_cross_bull = ta.mom(close, cs_offset-1) > 0
cs_cross_bear = ta.mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_above
pbsenkA = close < ss_above
pasenkB = close > ss_below
price_below_kumo = close < ss_above
future_kumo_bull = senkouA > senkouB
future_kumo_bear = senkouA < senkouB
// Price Distance From Tenken
disbull = distance < 2*atr
//Price Distance From Kijun
disbullk = distancek < 3*atr
//Price Above Tenkan Condition
patk = close > tenkan
// Kijun Above Senkou Span Condition
kjasenkA = kijun > ss_above
// Price Below Kijun Condition
pbkijun = close < kijun

//Bullish Condition

bullish= tk_cross_kijun_bull and cs_cross_bull and price_above_kumo and future_kumo_bull and patk and disbull and disbullk 
     and (tenkan>ss_above) and (kijun>ss_above)

if(bullish and timewindow )
    strategy.entry("Long Entry", strategy.long)

// Bearish Condition

bearish=tk_cross_kijun_bear and pbsenkA and cs_cross_bear  
      or pbkijun or price_below_kumo 

lastentryprice = strategy.opentrades.entry_price(strategy.opentrades - 1)

// Take Profit or Stop Loss in Bearish

if(bearish and timewindow or (close>1.30*lastentryprice and close<kijun ) or (close< 0.93*lastentryprice))
    strategy.close("Long Entry")




if(time>finish)
    strategy.close_all("time up")


plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#2e640e, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=color.rgb(17, 122, 21), title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=color.rgb(88, 8, 8), title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? color.rgb(198, 234, 198) : color.rgb(208, 153, 153), title="Cloud color")