Эта стратегия является долгосрочной стратегией торговли в облаке Ichimoku. Она длится, когда линия конверсии пересекает линию базиса, и закрывает позицию, когда линия базиса пересекает линию конверсии. Кроме того, при открытии или закрытии позиций она также проверяет Lagging Span, чтобы увидеть, находится ли он выше или ниже облака.
Стратегия использует несколько линий из индикатора Ичимоку.
Линия преобразования: среднее значение максимума и минимума за последние 9 дней, представляющее собой краткосрочное преобразование тренда.
Базовая линия: среднее значение максимума и минимума за последние 26 дней, представляющее собой среднее движение цены за этот период.
Leading Span A: среднее значение конверсии и базовых линий.
Leading Span B: среднее значение максимума и минимума за последние 52 дня, ведущий показатель средне- и долгосрочных тенденций.
Задержка: цена закрытия задерживается на 26 дней назад, представляя импульс тренда.
Чтобы открыть позицию, линия конверсии должна пересечь базовую линию И Lagging Span должен быть выше облака.
Чтобы закрыть позицию, базовая линия должна пересечь ниже линии конверсии И Lagging Span должен быть ниже облака. Это сигнализирует об изменении тренда и предполагает выход из позиции.
Использует облако Ичимоку, чтобы точно определить направление тренда.
Объединение нескольких линий избегает ложных сигналов.
Долгосрочные только совпадают с долгосрочными тенденциями большинства криптовалют.
Строгая фильтрация условий дает высококачественные сигналы.
Позволяет только полную позицию или плоскую, не может регулировать размер позиции.
Очень хорошо работает на бычьем рынке, но рискует большими потерями на медвежьем.
Параметры по умолчанию, настроенные на крипто, могут потребовать корректировки для других активов.
Меньше торговых сигналов означает, что некоторые возможности могут быть упущены.
Добавить функцию размещения позиции для закрытия части позиции, когда потеря достигает порога.
Добавьте короткие сигналы продажи, когда ключевые уровни поддержки нарушаются, чтобы уменьшить потери.
Оптимизировать параметры для большего количества символов и улучшить надежность.
Добавить стоп-лосс, когда потеря достигнет уровня, позволяющего сдерживать риск снижения.
Этот подход надежно определяет изменение тренда путем объединения нескольких линий Ичимоку. Он особенно хорошо работает для активов с постоянными восходящими тенденциями, такими как криптовалюты.
/*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()