Эта стратегия - это стратегия торговли биткойнами, разработанная на основе индикатора облака Ичимоку. Она генерирует торговые сигналы, когда краткосрочная линия пересекает долгосрочную линию, рассчитывая цены равновесия за разные периоды.
Стратегия использует индикатор облака Ичимоку.
Lmax = самая высокая цена за период_max
Smax = самая низкая цена за период_max
Lmed = самая высокая цена за период_med
Smed = самая низкая цена за период_med
Lmin = самая высокая цена за период_min
Smin = самая низкая цена за период_min
HL1 = (Lmax + Smax + Lmed + Smed)/4
HL2 = (Lmed + Smed + Lmin + Smin)/4
Он рассчитывает цены равновесия для долгосрочной линии HL1 и краткосрочной линии HL2. Долгий сигнал генерируется, когда HL2 пересекает HL1. Близкий сигнал генерируется, когда HL2 пересекает ниже HL1.
Преимущества этой стратегии включают:
Существуют также некоторые риски:
Эти риски можно уменьшить путем оптимизации параметров или включения других показателей.
Стратегия может быть оптимизирована в следующих аспектах:
Эта стратегия генерирует сигналы, когда краткосрочная линия равновесия пересекает долгосрочную линию, основанную на облаке Ичимоку. По сравнению с одиночными индикаторами, она эффективно фильтрует ложные сигналы. Дальнейшее улучшение параметров и контроля рисков может повысить его стабильность и прибыльность.
/*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)