Tài nguyên đang được tải lên... tải...

Heiken Ashi và Ichimoku Kinko Hyo Chiến lược giao dịch

Tác giả:ChaoZhang, Ngày: 2023-09-18 15:13:35
Tags:

Tổng quan

Chiến lược này kết hợp các chỉ số Heiken Ashi và Ichimoku Kinko Hyo để xác định hướng xu hướng và theo dõi xu hướng.

Chiến lược logic

Tính toán giá đóng cửa Heiken Ashi và vẽ các chỉ số Ichimoku như đường chuyển đổi, đường cơ sở vv. Đi dài khi đóng cửa cao hơn hai ngày trước và trên cạnh trên cùng của Ichimoku và đường chậm. Đi ngắn khi đóng cửa thấp hơn hai ngày trước và dưới cạnh dưới cùng của Ichimoku và đường chậm. Chuyển đổi và đường cơ sở cũng cung cấp tín hiệu thứ cấp.

Ưu điểm

  • Heiken Ashi lọc các đột phá giả cải thiện chất lượng tín hiệu
  • Ichimoku sử dụng nhiều tín hiệu xác nhận
  • Đường bị tụt lại tránh được những đòn chém để đảm bảo lợi nhuận.
  • Theo xu hướng dẫn đến nắm giữ lâu hơn và lợi nhuận lớn hơn

Rủi ro

  • Heiken Ashi làm mịn không thể được tối ưu hóa hoàn hảo
  • Các thông số Ichimoku ảnh hưởng đáng kể đến kết quả
  • Các rủi ro nắm giữ dài tăng lỗ
  • Tần suất giao dịch thấp hơn không phù hợp cho ngắn hạn

Các rủi ro có thể được kiểm soát bằng cách điều chỉnh độ mượt mà, thời gian giữ, tối ưu hóa các thông số Ichimoku v.v.

Những cải tiến

  • Kiểm tra các thông số làm mịn Heiken Ashi khác nhau
  • Tối ưu hóa các thông số thời gian Ichimoku
  • Lập chiến lược về các quy tắc tái nhập cảnh sau khi rời khỏi
  • Kiểm tra độ bền trên các sản phẩm khác nhau

Kết luận

Chiến lược này sử dụng nhiều chỉ số để xác định hướng xu hướng với các đường rút được kiểm soát. Hiệu suất có thể được cải thiện hơn nữa thông qua các tham số điều chỉnh vv.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy("Heiken Ashi + Ichimoku Kinko Hyo Strategy", shorttitle="HaI", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)

hahigh = security(heikinashi(syminfo.tickerid), timeframe.period, high)
halow = security(heikinashi(syminfo.tickerid), timeframe.period, low)

TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
SenkouSpanH = max(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
SenkouSpanL = min(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
ChikouSpan = close[displacement-1]

plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
sa=plot (SenkouSpanA, offset = displacement, color=green,  title="Senkou Span A", linewidth = 2)
sb=plot (SenkouSpanB, offset = displacement, color=red,  title="Senkou Span B", linewidth = 3)
fill(sa, sb, color = SenkouSpanA > SenkouSpanB ? green : red)

longCondition = hahigh > max(hahigh[1],hahigh[2]) and close>ChikouSpan and close>SenkouSpanH and (TenkanSen>=KijunSen or close>KijunSen)
if (longCondition)
    strategy.entry("Long",strategy.long)

shortCondition = halow < min(halow[1],halow[2]) and close<ChikouSpan and close<SenkouSpanL and (TenkanSen<=KijunSen or close<KijunSen)
if (shortCondition)
    strategy.entry("Short",strategy.short)

closelong = halow < min(halow[1],halow[2]) and (TenkanSen<KijunSen or close<TenkanSen or close<KijunSen or close<SenkouSpanH or close<ChikouSpan)
if (closelong)
    strategy.close("Long")

closeshort = hahigh > max(hahigh[1],hahigh[2]) and (TenkanSen>KijunSen or close>TenkanSen or close>KijunSen or close>SenkouSpanL or close>ChikouSpan)
if (closeshort)
    strategy.close("Short")

Thêm nữa