Стратегия пересечения SMA Ichimoku - это распространенная стратегия торговли. Эта стратегия использует принципы золотого креста и мертвого креста скользящих средних, в сочетании с облаком Ichimoku и гладкой скользящей средней SMA, чтобы сформировать относительно полную торговую систему. Эта стратегия может автоматически открывать и закрывать позиции акций.
Эта стратегия в основном оценивает покупку и продажу акций путем сравнения между линией конверсии и базовой линией в индикаторе Ichimoku и кроссоверов краткосрочных и долгосрочных скользящих средних SMA.
В частности, код определяет линию конверсии, базовую линию, ведущий интервал 1 и ведущий интервал 2 индикатора Ичимоку.
При суждении о покупке линия конверсии должна быть ниже базовой линии, а краткосрочная скользящая средняя должна быть ниже долгосрочной скользящей средней, то есть происходит золотой крест.
При суждении о продаже линия конверсии должна быть выше базовой линии, а краткосрочная скользящая средняя должна быть выше долгосрочной скользящей средней, т.е. происходит мертвый перекресток.
Кроме того, код также определяет некоторые вспомогательные условия, такие как цена закрытия выше, чем в предыдущий день, и с использованием разницы и деления скользящих средних значений для оценки наклона.
Эта стратегия объединяет в себе преимущества нескольких технических показателей и имеет следующие преимущества:
Само облако Ichimoku содержит суждение о тренде, в сочетании с скользящими средними SMA может сформировать мощное суждение о тренде.
Движущиеся средние SMA сами могут определять тенденции и импульс цен.
Добавление суждения о цене закрытия позволяет избежать ненужного открытия и закрытия позиций.
Расчет скользящего среднего наклона увеличивает суждение о импульсе скользящих средних перекресток и может фильтровать ложные перекрестки.
В целом, эта стратегия имеет относительно точное суждение о тренде, может уменьшить ненужную торговлю и имеет некоторое пространство для оптимизации.
Эта стратегия также сопряжена с некоторыми рисками:
И Ичимоку, и SMA могут отставать и не отражать изменения цены во времени.
Сочетание нескольких условий увеличивает сложность и вероятность ошибок.
Стратегия основана исключительно на технических показателях и не может оценивать влияние крупных новостей.
Стратегия не устанавливает условия остановки потерь, с риском увеличения потерь.
Стратегия не учитывает особые рыночные условия, такие как консолидация.
Неправильные параметры также могут повлиять на эффективность стратегии.
Эта стратегия может быть оптимизирована в следующих аспектах:
Установите условия остановки потери, чтобы автоматически остановить потерю при увеличении потерь.
Усилить оценку крупных новостных событий, чтобы избежать их влияния.
Усилить суждение о особых рыночных условиях, таких как увеличение диапазона торговли или корректировка параметров.
Испытывайте и оптимизируйте комбинации параметров для поиска оптимальных параметров.
Внедрение алгоритмов машинного обучения для оптимизации параметров и оценки рынка.
Добавьте индикаторы импульса, чтобы избежать ложных прорывов.
Объедините больше фундаментальных факторов, таких как изменение объема.
В целом, эта стратегия кроссовера SMA Ichimoku объединяет преимущества движущихся средних Ichimoku и SMA, чтобы сформировать относительно полную стратегию торговли акциями. Эта стратегия имеет сильную способность определять тенденции и может эффективно захватывать трендовые возможности. Но есть также такие проблемы, как задержка, высокая сложность, отсутствие стоп-лосса. Это дает большое пространство для оптимизации этой стратегии.
/*backtest start: 2023-09-15 00:00:00 end: 2023-10-15 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("Ichimoku+SMAsmoothed", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) // conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") SMA1=input(title="SMA LONG",defval=21) SMA2=input(title="SMA SHORT",defval=19) p=ohlc4[1] donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) //plot(conversionLine, color=#0496ff, title="Conversion Line") //plot(baseLine, color=#991515, title="Base Line") //plot(close, offset = -displacement, color=#459915, title="Lagging Span") //p1 = plot(leadLine1, offset = displacement, color=green, // title="Lead 1") //p2 = plot(leadLine2, offset = displacement, color=red, // title="Lead 2") //fill(p1, p2, color = leadLine1 > leadLine2 ? green : red) ma1=sma(p, SMA1) ma2=sma(p, SMA2) p_a = ma1*2 p_b = ma1 p_c = p_a - p_b p_d = p_c/24 p_e = ma2*2 p_f = ma2 p_g = p_e - p_f p_h = p_g/24 closelong = ohlc4<ohlc4[SMA1] and ohlc4<ohlc4[1]// and leadLine1<leadLine2 and p_h<p_d if (closelong) strategy.close("Long") closeshort = ohlc4>ohlc4[SMA1] and ohlc4>ohlc4[1]// and leadLine1>leadLine2 and p_h>p_d if (closeshort) strategy.close("Short") longCondition = ohlc4>ohlc4[1] and leadLine1>leadLine2 and p_h>p_d if (longCondition) strategy.entry("Long",strategy.long) shortCondition = ohlc4<ohlc4[1] and leadLine1<leadLine2 and p_h<p_d if (shortCondition) strategy.entry("Short",strategy.short)