
Chiến lược Ichimoku Kumo Twist sử dụng đường chuyển đổi, đường chuẩn và đường dẫn của chỉ số Ichimoku để xây dựng tín hiệu giao dịch, thuộc chiến lược theo dõi xu hướng. Nó tìm kiếm điểm đảo ngược của xu hướng ngắn hạn và trung hạn thông qua sự đảo ngược của dải mây Ichimoku để có được điểm phá vỡ có rủi ro thấp hơn và cơ hội bán tháo. Chiến lược này có thể được sử dụng cho giao dịch trong ngày hoặc giao dịch đường dài trung bình trong vài tuần.
Chiến lược này chủ yếu sử dụng ba đường trung bình của chỉ số Ichimoku - đường chuyển đổi, đường chuẩn và đường dẫn 1 và đường K để tính giá cao nhất và giá thấp nhất. Đường chuyển đổi tính trung bình giá cao nhất và giá thấp nhất của 9 đường K trước, đại diện cho đường trung bình ngắn hạn của biểu đồ cân bằng đầu tiên; đường chuẩn tính trung bình giá cao nhất và giá thấp nhất của 26 đường K trước, đại diện cho đường trung bình dài hạn. đường dẫn 1 là đường trung bình của đường chuyển đổi và đường chuẩn, đường dẫn 2 là đường trung bình của 52 đường K trước.
Đường dẫn 1 tạo ra tín hiệu mua khi nó đi qua đường dẫn 2, và đường dẫn 1 dưới đường dẫn 2 tạo ra tín hiệu bán. Chiến lược giao dịch này là theo dõi đường trung bình ngắn hạn và trung hạn để bắt được sự thay đổi của xu hướng.
Ichimoku Cloud Belt Reversal Strategy kết hợp cả xu hướng ngắn hạn và trung hạn để xác định hiệu quả điểm đảo ngược xu hướng.
Chiến lược dựa trên đường thẳng, có một số độ trễ, có thể lọc một phần tiếng ồn.
Sử dụng Cloudband để đánh giá mức độ rõ ràng của xu hướng mạnh hoặc yếu, để thực hiện các bước vào và lối ra tốt hơn.
Không cần tối ưu hóa tham số, bạn có thể sử dụng tham số tiêu chuẩn của Ichimoku.
Nguyên tắc Ichimoku phức tạp hơn, không nhạy cảm với điều chỉnh tham số và không dễ tối ưu hóa quá mức.
Có thể có nhiều tín hiệu sai trong thị trường.
Khi các xu hướng ngắn hạn và trung hạn bị lệch, chiến lược sẽ thất bại.
Cần phải kết hợp với Stop Loss để kiểm soát rủi ro, nếu không có thể gây ra tổn thất lớn.
Có thể thử nghiệm các kết hợp các tham số khác nhau của đường chuyển đổi và đường chuẩn để tìm điểm cân bằng tốt nhất.
Kết hợp các chỉ số khác để lọc tín hiệu vào sân và tránh xây dựng sân trong một hình thức bất lợi rõ ràng.
Thêm chiến lược dừng lỗ, thiết lập dừng động hoặc dừng theo dõi.
Tối ưu hóa quản lý vị trí, điều chỉnh quy mô vị trí theo thị trường.
Ghi thêm phí giao dịch vào phản hồi để kết quả phản hồi chính xác hơn.
Ichimoku là một chiến lược có xu hướng trung bình. Nó có thể xác định hiệu quả các điểm biến hướng và mở vị trí theo hướng phù hợp với xu hướng. Tuy nhiên, chiến lược này cũng có một số chi phí giám sát và phải đi kèm với các biện pháp quản lý rủi ro nghiêm ngặt để sử dụng lâu dài.
/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Ichimoku Kumo Twist Strategy (Presets)", shorttitle="Kumo Twist Strategy", overlay=true)
xlowest_(src, len) =>
x = src
for i = 1 to len - 1
v = src[i]
if (na(v))
break
x := min(x, v)
x
xlowest(src, len) =>
na(src[len]) ? xlowest_(src, len) : lowest(src, len)
xhighest_(src, len) =>
x = src
for i = 1 to len - 1
v = src[i]
if (na(v))
break
x := max(x, v)
x
xhighest(src, len) =>
na(src[len]) ? xhighest_(src, len) : highest(src, len)
dropn(src, n) =>
na(src[n]) ? na : src
ichiConversionPeriods(presets) =>
if presets == "Crypto Doubled"
20
else
if presets == "Crypto Singled"
10
else
if presets == "Standard Doubled"
18
else
9
ichiBasePeriods(presets) =>
if presets == "Crypto Doubled"
60
else
if presets == "Crypto Singled"
30
else
if presets == "Standard Doubled"
52
else
26
ichiLaggingSpan2Periods(presets) =>
if presets == "Crypto Doubled"
120
else
if presets == "Crypto Singled"
60
else
if presets == "Standard Doubled"
104
else
52
ichiDisplacement(presets) =>
if presets == "Crypto Doubled"
30
else
if presets == "Crypto Singled"
30
else
if presets == "Standard Doubled"
26
else
26
scaling = input(title="Scaling", options=["Linear", "Log"], defval="Linear")
presets = input(title="Presets", options=["Crypto Doubled", "Crypto Singled", "Standard Doubled", "Standard Singled"], defval="Crypto Doubled")
dropCandles = input(1, minval=0, title="Drop first N candles")
showClouds = input(false, "Show Clouds")
stoploss = input(true, title="Stop Loss")
conversionPeriods = ichiConversionPeriods(presets)
basePeriods = ichiBasePeriods(presets)
laggingSpan2Periods = ichiLaggingSpan2Periods(presets)
displacement = ichiDisplacement(presets)
logScaling = scaling == "Log"
lows = dropn(low, dropCandles)
highs = dropn(high, dropCandles)
lowsp = logScaling ? log(lows) : lows
highsp = logScaling ? log(highs) : highs
donchian(len) =>
avg(xlowest(lowsp, len), xhighest(highsp, len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
golong = crossover(leadLine1, leadLine2)
goshort = crossunder(leadLine1, leadLine2)
strategy.entry("Buy", strategy.long, when=golong, stop=(stoploss ? high+syminfo.mintick : na))
strategy.entry("Sell", strategy.short, when=goshort, stop=(stoploss ? low-syminfo.mintick : na))
conversionLinep = logScaling ? exp(conversionLine) : conversionLine
baseLinep = logScaling ? exp(baseLine) : baseLine
leadLine1p = logScaling ? exp(leadLine1) : leadLine1
leadLine2p = logScaling ? exp(leadLine2) : leadLine2
plot(showClouds ? conversionLinep : na, color=#0496ff, title="Conversion Line")
plot(showClouds ? baseLinep : na, color=#991515, title="Base Line")
p1 = plot(showClouds ? leadLine1p : na, offset = displacement, color=green, title="Lead 1")
p2 = plot(showClouds ? leadLine2p : na, offset = displacement, color=red, title="Lead 2")
fill(p1, p2, color = showClouds ? (leadLine1p > leadLine2p ? green : red) : na)