Стратегия торговли биткоинами на основе Ichimoku Kinko Hyo


Дата создания: 2024-01-31 11:06:02 Последнее изменение: 2024-01-31 11:06:02
Копировать: 0 Количество просмотров: 653
1
Подписаться
1617
Подписчики

Стратегия торговли биткоинами на основе Ichimoku Kinko Hyo

Обзор

Эта стратегия основана на первичной стратегии торговли биткойнами, основанной на балансовом таблице. Она формирует балансовую таблицу, рассчитывая среднее значение наивысшей и самой низкой цены за разные периоды, и генерирует торговые сигналы, когда короткие периодические линии пересекают длинные периодические линии.

Стратегический принцип

Стратегия использует показатели сбалансированной таблицы на первый взгляд, а конкретный расчетный формул выглядит следующим образом:

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, делается равновесная позиция.

Анализ преимуществ

Эта стратегия имеет следующие преимущества:

  1. Используя первичный балансовый индекс, можно эффективно отфильтровывать рыночный шум и идентифицировать тенденции.
  2. Использование скрещивания различных циклических линий в качестве торговых сигналов позволяет уменьшить количество ложных сигналов.
  3. Стратегическая логика проста и понятна, легко понятна и реализуема.
  4. Настраиваемые параметры цикла, адаптированные к различным рыночным условиям.

Анализ рисков

Однако эта стратегия также несет в себе некоторые риски:

  1. Первичный индикатор равновесия задерживается и может пропустить кратковременный сигнал.
  2. Когда пересекаются короткие и длинные циклы, они подвержены арбитражу.
  3. Сигналы, посылаемые индикатором, могут быть ненадежными при резких колебаниях на рынке.

Эти риски можно снизить путем соответствующей оптимизации циклических параметров или в сочетании с другими показателями.

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизация параметров длинных и коротких циклов, адаптация к изменениям рынка.
  2. Повышение стратегии сдерживания убытков.
  3. В сочетании с другими показателями, такими как MACD, повышается точность сигнала.
  4. Приостановка торговли во время высокой волатильности, чтобы избежать больших потерь.

Подвести итог

Эта стратегия основана на первичных показателях равновесия, которые генерируют торговые сигналы, когда краткосрочные линии прорывают долгосрочные линии. По сравнению с одиночными показателями, она может эффективно отфильтровывать ложные сигналы. Стабильность и прибыльность стратегии могут быть дополнительно улучшены за счет оптимизации параметров и контроля риска.

Исходный код стратегии
/*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)