
Эта стратегия основана на первичной стратегии торговли биткойнами, основанной на балансовом таблице. Она формирует балансовую таблицу, рассчитывая среднее значение наивысшей и самой низкой цены за разные периоды, и генерирует торговые сигналы, когда короткие периодические линии пересекают длинные периодические линии.
Стратегия использует показатели сбалансированной таблицы на первый взгляд, а конкретный расчетный формул выглядит следующим образом:
Lmax = наивысшая цена за период_max
Smax = минимальная цена за период_max
Lmed = максимальная цена за период
Smed = минимальная цена за период
Lmin = наивысшая цена за период_min
Smin = минимальная цена за период_мин
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)