Потенциал рынка Ichimoku Bullish Cloud Стратегия

Автор:Чао Чжан, Дата: 2024-02-02 16:57:46
Тэги:

img

Обзор

Эта стратегия является долгосрочной стратегией торговли в облаке Ichimoku. Она длится, когда линия конверсии пересекает линию базиса, и закрывает позицию, когда линия базиса пересекает линию конверсии. Кроме того, при открытии или закрытии позиций она также проверяет Lagging Span, чтобы увидеть, находится ли он выше или ниже облака.

Логика стратегии

Стратегия использует несколько линий из индикатора Ичимоку.

  1. Линия преобразования: среднее значение максимума и минимума за последние 9 дней, представляющее собой краткосрочное преобразование тренда.

  2. Базовая линия: среднее значение максимума и минимума за последние 26 дней, представляющее собой среднее движение цены за этот период.

  3. Leading Span A: среднее значение конверсии и базовых линий.

  4. Leading Span B: среднее значение максимума и минимума за последние 52 дня, ведущий показатель средне- и долгосрочных тенденций.

  5. Задержка: цена закрытия задерживается на 26 дней назад, представляя импульс тренда.

Чтобы открыть позицию, линия конверсии должна пересечь базовую линию И Lagging Span должен быть выше облака.

Чтобы закрыть позицию, базовая линия должна пересечь ниже линии конверсии И Lagging Span должен быть ниже облака. Это сигнализирует об изменении тренда и предполагает выход из позиции.

Преимущества стратегии

  1. Использует облако Ичимоку, чтобы точно определить направление тренда.

  2. Объединение нескольких линий избегает ложных сигналов.

  3. Долгосрочные только совпадают с долгосрочными тенденциями большинства криптовалют.

  4. Строгая фильтрация условий дает высококачественные сигналы.

Риски стратегии

  1. Позволяет только полную позицию или плоскую, не может регулировать размер позиции.

  2. Очень хорошо работает на бычьем рынке, но рискует большими потерями на медвежьем.

  3. Параметры по умолчанию, настроенные на крипто, могут потребовать корректировки для других активов.

  4. Меньше торговых сигналов означает, что некоторые возможности могут быть упущены.

Улучшения

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

  2. Добавьте короткие сигналы продажи, когда ключевые уровни поддержки нарушаются, чтобы уменьшить потери.

  3. Оптимизировать параметры для большего количества символов и улучшить надежность.

  4. Добавить стоп-лосс, когда потеря достигнет уровня, позволяющего сдерживать риск снижения.

Резюме

Этот подход надежно определяет изменение тренда путем объединения нескольких линий Ичимоку. Он особенно хорошо работает для активов с постоянными восходящими тенденциями, такими как криптовалюты.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 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/
// Simple long-only Ichimoku Cloud Strategy
// Enter position when conversion line crosses base line up, and close it when the opposite happens. 
// Additional condition for open / close the trade is lagging span, it should be higher than cloud to open position and below - to close it.
//@version=4
strategy("Ichimoku Cloud Strategy Long Only", shorttitle="Ichimoku Cloud Strategy (long only)", overlay=true )

conversion_length = input(9, minval=1, title="Conversion Line Periods"),
base_length = input(26, minval=1, title="Base Line Periods")
lagging_length = input(52, minval=1, title="Lagging Span 2 Periods"),
delta = input(26, minval=1, title="Delta")

average(len) => avg(lowest(len), highest(len))

conversion_line = average(conversion_length) // tenkan sen - trend
base_line = average(base_length) // kijun sen - movement
lead_line_a = avg(conversion_line, base_line) // senkou span A
lead_line_b = average(lagging_length) // senkou span B
lagging_span = close // chikou span - trend / move power

plot(conversion_line, color=color.blue, linewidth=2, title="Conversion Line")
plot(base_line, color=color.white, linewidth=2, title="Base Line")
plot(lagging_span, offset = -delta, color=color.purple, linewidth=2, title="Lagging Span")

lead_line_a_plot = plot(lead_line_a, offset = delta, color=color.green, title="Lead 1")
lead_line_b_plot = plot(lead_line_b, offset = delta, color=color.red, title="Lead 2")
fill(lead_line_a_plot, lead_line_b_plot, color = lead_line_a > lead_line_b ? color.green : color.red)

// Strategy logic

long_signal = crossover(conversion_line,base_line) and ((lagging_span) > (lead_line_a)) and ((lagging_span) > (lead_line_b))
short_signal = crossover(base_line, conversion_line) and ((lagging_span) < (lead_line_a)) and ((lagging_span) < (lead_line_b))

strategy.entry("LONG", strategy.long, when=strategy.opentrades == 0 and long_signal, alert_message='BUY')
strategy.close("LONG", when=strategy.opentrades > 0 and short_signal, alert_message='SELL')
    
    // === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2021, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2021, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() => true
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END

if not isPeriod
    strategy.cancel_all()
    strategy.close_all()

Больше