Ichimoku Kinko Hyo Mean Reversation chiến lược

Tác giả:ChaoZhang, Ngày: 2023-09-24 13:11:38
Tags:

Tổng quan

Chiến lược này tích hợp chỉ số Ichimoku Kinko Hyo, đột phá hàng ngày, đường trung bình di chuyển lỏng Gaussian, MACD và các chỉ số kỹ thuật khác để xác định hướng xu hướng và tìm các điểm vào đáng tin cậy.

Chiến lược logic

  1. Phán quyết của Ichimoku Kinko Hyo: Đường chuyển đổi vượt qua đường cơ sở là tín hiệu tăng.

  2. Phán đoán đột phá hàng ngày: Hôm nay đóng cửa cao hơn ngày hôm qua đóng cửa gần một số ngưỡng xác nhận tăng.

  3. Phán quyết MA được làm bằng Gaussian: Giá chéo trên MA là tăng.

  4. Phán quyết của MACD: DIFF crossover trên DEA là tăng.

  5. Kết hợp các yếu tố trên để xác định sự thay đổi xu hướng và điểm nhập cảnh.

Ưu điểm

  1. Nhiều chỉ số cải thiện độ chính xác.

  2. Các xác nhận trong ngày và nhiều khung thời gian tránh sự đột phá sai.

  3. Ichimoku Kinko Hyo có thể xác định được xu hướng.

  4. Gaussian làm mịn MA có sự chậm trễ nhỏ.

  5. MACD đánh giá sự thay đổi động lực.

Rủi ro

  1. Nhiều điều kiện đồng thời làm giảm khả năng xâm nhập.

  2. Các thông số chỉ số sai có thể tạo ra tín hiệu sai.

  3. Các tín hiệu trong ngày và nhiều khung thời gian có thể xung đột.

  4. Những vụ trốn thoát giả vẫn xảy ra, gây ra tổn thất.

Các giải pháp có thể:

  1. Điều chỉnh các tham số để tăng các mục nhập.

  2. Tối ưu hóa các tham số cho các sản phẩm và khung thời gian khác nhau.

  3. Điều phối tín hiệu từ các khung thời gian khác nhau.

  4. Sử dụng stop loss để hạn chế lỗ.

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

  1. Kiểm tra các kết hợp chỉ số khác nhau để có tín hiệu tốt hơn.

  2. Thêm máy học để cải thiện phán đoán từ nhiều dữ liệu hơn.

  3. Thêm phát hiện xu hướng để tránh giao dịch ngược xu hướng.

  4. Tối ưu hóa quản lý tiền bạc cho sự bền vững.

  5. Tối ưu hóa dừng lỗ và lấy lợi nhuận cho lợi nhuận.

Tóm lại

Chiến lược này tích hợp nhiều chỉ số để xác định hướng xu hướng, và đi vào các tín hiệu tăng có khả năng cao được xác minh trên các khung thời gian và chỉ số. Nó có thể được cải thiện bằng cách điều chỉnh các tham số, tối ưu hóa sự kết hợp của các chỉ số và kết hợp nhiều dữ liệu hơn để tích hợp nhiều tín hiệu hơn trong khi duy trì sự ổn định cho nhiều cơ hội giao dịch hơn.


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

//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Ichimoku + Daily-Candle_X + HULL-MA_X + MacD", shorttitle="٩(̾●̮̮̃̾•̃̾)۶", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=26, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0,precision=6)
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", type=float, step=0.0001)
SL = input(defval=-500.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=25000.00, title="Target Point in $", type=float, step=1)
ot=1
p = input(7, minval=1, title="Length")
pi=3.1415926535
w=2*pi/p
beta = (1 - cos(w))/(pow(1.414,2.0/3) - 1)
alfa = -beta + sqrt(beta*beta + 2*beta)
ret1= pow(alfa,4)*close+4*(1-alfa)*nz(ret1[1])-6*pow(1-alfa,2)*nz(ret1[2])+4*pow(1-alfa,3)*nz(ret1[3])-pow(1-alfa,4)*nz(ret1[4])
ret2= pow(alfa,4)*close[1]+4*(1-alfa)*nz(ret1[1])-6*pow(1-alfa,2)*nz(ret1[2])+4*pow(1-alfa,3)*nz(ret1[3])-pow(1-alfa,4)*nz(ret1[4])
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)
closelong = ret1<ret2 and close<ret2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
longCondition = ret1>ret2 and strategy.opentrades<ot and confidence>dt and close>ret2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
    strategy.entry("Long",strategy.long)
//                         /L'-, 
//                               ,'-.           /MM . .             /  L '-, 
//     .                    _,--dMMMM\         /MMM  `..           /       '-, 
//     :             _,--,  )MMMMMMMMM),.      `QMM   ,<>         /_      '-,' 
//     ;     ___,--. \MM(    `-'   )M//MM\       `  ,',.;      .-'* ;     .' 
//     |     \MMMMMM) \MM\       ,dM//MMM/     ___ < ,; `.      )`--'    / 
//     |      \MM()M   MMM)__   /MM(/MP'  ___, \  \ `  `. `.   /__,    ,' 
//     |       MMMM/   MMMMMM( /MMMMP'__, \     | /      `. `-,_\     / 
//     |       MM     /MMM---' `--'_ \     |-'  |/         `./ .\----.___ 
//     |      /MM'   `--' __,-  \""   |-'  |_,               `.__) . .F. )-. 
//     |     `--'       \   \    |-'  |_,     _,-/            J . . . J-'-. `-., 
//     |         __  \`. |   |   |         \    / _           |. . . . \   `-.  F 
//     |   ___  /  \  | `|   '      __  \   |  /-'            F . . . . \     '` 
//     |   \  \ \  /  |        __  /  \  |  |,-'        __,- J . . . . . \ 
//     |    | /  |/     __,-  \  ) \  /  |_,-     __,--'     |. .__.----,' 
//     |    |/    ___     \    |'.  |/      __,--'           `.-;;;;;;;;;\ 
//     |     ___  \  \     |   |  `   __,--'                  /;;;;;;;;;;;;. 
//     |     \  \  |-'\    '    __,--'                       /;;;;;;;;;;;;;;\ 
// \   |      | /  |      __,--'                             `--;;/     \;-'\ 
//  \  |      |/    __,--'                                   /  /         \  \ 
//   \ |      __,--'                                        /  /           \  \ 
//    \|__,--'                                          _,-;M-K,           ,;-;\ 
//                                                     <;;;;;;;;           '-;;;; 
//a1=plot(n1,color=c)
//a2=plot(n2,color=c)
//plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
//plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
//plot(conversionLine, color=#0496ff, title="Conversion Line")
//plot(baseLine, color=#991515, title="Base Line")
//plot(close, offset = -displacement, color=#459915, title="Lagging Span")
//p1=plot (leadLine1, offset = displacement, color=green,  title="Lead 1")
//p2=plot (leadLine2, offset = displacement, color=red,  title="Lead 2")
//fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart

Thêm nữa