Потенциальный объем рынка Стратегия длинного облака Ишимоку


Дата создания: 2024-02-02 16:57:46 Последнее изменение: 2024-02-02 16:57:46
Копировать: 0 Количество просмотров: 630
1
Подписаться
1617
Подписчики

Потенциальный объем рынка Стратегия длинного облака Ишимоку

Обзор

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

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

Эта стратегия использует несколько линий технических показателей Ichimoku.

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

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

  3. Фронтовая линия A: среднее значение переходной линии и базовой линии.

  4. Фронтальная линия B: среднее значение наивысших и наименьших цен за последние 52 дня, представляющее собой предварительный индикатор среднесрочной и долгосрочной тенденции.

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

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

При равных позициях необходимо одновременно удовлетворить условию прохода линии конверсии под базовой линией и отставания 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()