
Chiến lược này là một chiến lược giao dịch Bitcoin được thiết kế dựa trên chỉ số bảng cân bằng đầu tiên. Nó tạo ra bảng cân bằng bằng cách tính trung bình giá cao nhất và giá thấp nhất trong các chu kỳ khác nhau, tạo ra tín hiệu giao dịch khi đường chu kỳ ngắn đi qua đường chu kỳ dài.
Chiến lược này sử dụng các chỉ số bảng cân bằng, công thức tính toán cụ thể như sau:
Lmax = giá cao nhất trong chu kỳ
Smax = giá thấp nhất trong chu kỳ
Lmed = giá cao nhất trong chu kỳ
Smed = giá thấp nhất trong chu kỳ
Lmin = giá cao nhất trong chu kỳ period_min
Smin = giá thấp nhất trong chu kỳ period_min
HL1 = (Lmax + Smax + Lmed + Smed)/4
HL2 = (Lmed + Smed + Lmin + Smin)/4
Đó là tính toán giá cân bằng của đường chu kỳ dài HL1 và đường chu kỳ ngắn HL2 tương ứng. Khi đường chu kỳ ngắn đi qua đường chu kỳ dài HL1 trên HL2, hãy làm nhiều hơn; Khi đường chu kỳ ngắn đi qua đường chu kỳ dài HL1 dưới HL2, hãy cân bằng.
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Những rủi ro này có thể được giảm bằng cách tối ưu hóa các tham số chu kỳ thích hợp hoặc kết hợp với các chỉ số khác.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này dựa trên chỉ số bảng cân bằng đầu tiên, tạo ra tín hiệu giao dịch khi đường ngắn phá vỡ đường dài. So với chỉ số đơn lẻ, nó có thể lọc hiệu quả các tín hiệu giả. Bằng cách tối ưu hóa tham số và kiểm soát rủi ro, bạn có thể nâng cao hơn nữa sự ổn định và lợi nhuận của chiến lược.
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Alferow
//@version=4
strategy("BTC_ISHIMOKU", overlay=true)
period_max = input(20, minval = 1)
period_med = input(10, minval = 1)
period_min = input(16, minval = 1)
Lmax = highest(high, period_max)
Smax = lowest(low, period_max)
Lmed = highest(high, period_med)
Smed = lowest(low, period_med)
Lmin = highest(high, period_min)
Smin = lowest(low, period_min)
HL1 = (Lmax + Smax + Lmed + Smed)/4
HL2 = (Lmed + Smed + Lmin + Smin)/4
p1 = plot(HL1, color = color.red, linewidth = 2)
p2 = plot(HL2, color = color.green, linewidth = 2)
fill(p1, p2, color = HL1 < HL2 ? color.green : color.red, transp = 90)
start = timestamp(input(2020, minval=1), 01, 01, 00, 00)
finish = timestamp(input(2025, minval=1),01, 01, 00, 00)
trig = time > start and time < finish ? true : false
strategy.entry("Long", true, when = crossover(HL2, HL1) and trig)
// strategy.entry("Short", false, when = crossunder(HL2, HL1) and trig)
strategy.close("Long", when = crossunder(HL2, HL1) and trig)