Chiến lược giao dịch Sea and Sky và Ichimoku Kinko Hyo


Ngày tạo: 2023-09-18 15:13:35 sửa đổi lần cuối: 2023-09-18 15:13:35
sao chép: 0 Số nhấp chuột: 1251
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này kết hợp với việc sử dụng các chỉ số không gian biển và bảng cân bằng đầu tiên để xác định hướng xu hướng và theo dõi xu hướng. Dữ liệu đường K mịn của không gian biển làm giảm tiếng ồn.

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

Tính toán giá đóng cửa trên biển, và vẽ các chỉ số bảng cân bằng trực tiếp như đường chuyển đổi, đường chuẩn. Làm nhiều hơn khi giá đóng cửa cao hơn hai ngày trước và cao hơn đường trên và độ trễ trên biểu đồ đám mây.

Phân tích lợi thế

  • Bộ lọc không khí biển phá vỡ giả để cải thiện chất lượng tín hiệu
  • Một bảng cân bằng mắt nhiều tín hiệu chỉ số xác nhận lẫn nhau
  • Lây dây chậm trễ để tránh bị mắc kẹt, đảm bảo dừng
  • Theo đó, thời gian nắm giữ cổ phiếu dài và cơ hội lợi nhuận lớn.

Phân tích rủi ro

  • Chỉ số không khí biển không thể được tối ưu hóa hoàn hảo
  • Cài đặt các tham số bảng cân bằng trực tiếp ảnh hưởng đến kết quả đáng kể
  • Hành động giữ cổ phiếu quá lâu có thể gây thiệt hại
  • Tần suất giao dịch thấp, không phù hợp với giao dịch ngắn hạn

Bạn có thể điều chỉnh các tham số mịn, rút ngắn thời gian nắm giữ, tối ưu hóa các tham số bảng cân bằng ban đầu để kiểm soát rủi ro.

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

  • Kiểm tra các tham số phẳng khác nhau
  • Các tham số chu kỳ để tối ưu hóa bảng cân bằng ban đầu
  • Thiết lập chiến lược tái nhập cảnh sau khi rời sân
  • Các tham số kiểm tra sức khỏe trong các giống khác nhau

Tóm tắt

Chiến lược này kết hợp nhiều chỉ số để xác định hướng xu hướng, có khả năng kiểm soát lùi mạnh hơn.

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