Стратегия перекрестного перемещения среднего движения Ичимоку

Автор:Чао Чжан, Дата: 2023-12-19 15:40:53
Тэги:

img

Обзор

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

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

Стратегия Ичимоку использует специализированную систему, состоящую из 5 скользящих средних линий, а именно линии конверсии, базовой линии, лидирующего спена 1, лидирующего спена 2 и отстающего спена. В частности, линия конверсии изображает недавний импульс цены, базовая линия показывает средне-долгосрочную тенденцию, лидирующие линии объединяют конверсию и базу для прогнозирования будущих движений, а отстающий спен отображает прошлые цены для ссылки. Торговые сигналы генерируются, когда цена проходит через базовую линию. Стратегия также включает фильтры тела и цвета свечей, чтобы избежать ложных перерывов.

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

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

Риски

Стратегия Ichimoku имеет относительно длинные торговые интервалы. Это означает, что краткосрочные колебания цен не могут быть зафиксированы. Кроме того, скользящие средние не срабатывают, когда цены сильно колеблются. Такие ситуации могут привести к неправильным сигналам и потерям в сделках.

Возможности для расширения

Стратегия Ichimoku может быть улучшена в таких областях, как: 1) корректировка средних параметров для разных периодов и продуктов; 2) включение показателей объема для подтверждения отношений цена-объем; 3) внедрение моделей машинного обучения для уточнения определения сигнала; 4) добавление большего количества фильтров для снижения вероятности неправильной торговли.

Заключение

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


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Ichimoku Strategy v1.0", shorttitle = "Ichimoku str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
conversionPeriods = input(9, minval = 1, title = "Conversion Periods")
basePeriods = input(26, minval = 1, title = "Base Periods")
laggingSpan2Periods = input(52, minval = 1, title = "Lagging Span")
usebf = input(true, defval = true, title = "Use body filter")
usecf = input(true, defval = true, title = "Use color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Ichimoku
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

//Lines
plot(conversionLine, color=red, title="Conversion Line")
plot(baseLine, color=blue, title="Base Line")
plot(close, offset = -basePeriods, color=green, title="Lagging Span")
p1 = plot(leadLine1, offset = basePeriods, color=green, title="Lead 1")
p2 = plot(leadLine2, offset = basePeriods, color=red, title="Lead 2")
fill(p1, p2)

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebf == false

//Color Filter
bar = close > open ? 1 : close < open ? -1 : 0
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false

//Signals
up = low > baseLine and rb and body
dn = high < baseLine and gb and body

//Trading
if up
    //if strategy.position_size < 0
    //    strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    //if strategy.position_size > 0
    //    strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Больше