Эта стратегия является улучшением, основанным на торговой системе Ichimoku.
Стратегия использует классическую систему Ичимоку в качестве базовой ссылки.
Тенкан-Сен: Линия конверсии, отражающая среднесрочные тенденции.
Киджун-сен: Базовая линия.
Сенку Спан: Лидирующая линия.
Чику-Спан: Отстающая линия, отражающая тенденции прошлого.
На этой основе стратегия внесла следующие улучшения:
Временные параметры следуют теории нечетного квадрата, чтобы лучше соответствовать рыночным моделям.
Для контроля рисков торговли добавляются правила управления деньгами, включая стоп-лосс, получение прибыли, размещение позиций и т. д.
Период обратного тестирования регулируется для более полного тестирования.
В частности, условия длинного входа включают в себя tenkan cross kijun up, chikou above price, price above kumo, future kumo bullish и т. Д. Короткий вход требует tenkan cross kijun down, chikou below price и т. Д.
Правила управления денежными средствами требуют 30% получения прибыли и 5% стоп-лосса для длинных; стоп-лосса, если более 3 ATR от tenkan для коротких.
Основными преимуществами совмещения Ичимоку и управления деньгами являются:
Само Ichimoku отражает краткосрочные, среднесрочные и долгосрочные тенденции, разумный вход/выход.
Теория нечетного квадрата оптимизирует параметры, чтобы соответствовать статистике рынка.
Управление денежными средствами эффективно контролирует однократные торговые остановки, когда прибыль превышает.
Настраиваемый период обратного тестирования позволяет проводить более полные испытания.
В целом, эта стратегия всесторонне рассматривает тенденции, выбор параметров, контроль рисков и т. д. Она эффективна в выявлении краткосрочных возможностей и контроле торговых рисков с большой практичностью.
Основными рисками этой стратегии являются:
Ичимоку склонна к ложным утечкам, вызывающим ненужные входы.
Фиксированная прибыль и стоп-лосс могут быть уязвимы для ловушек.
Неполные данные об обратном тестировании могут переоценивать производительность.
Стратегия больше подходит для рынков с тенденциями. Может быть менее эффективным на рынках с диапазоном. Условия входа могут быть оптимизированы для определения тенденций.
К основным направлениям совершенствования относятся:
Добавьте фильтры индикаторов для улучшения качества входа, такие как MACD, KDJ и т.д.
Динамическое получение прибыли и остановка убытков. Например, получение прибыли после N ATR прорывов, остановка убытков ниже поддержки.
Многоактивное тестирование на более длинных данных для проверки стабильности.
Отличить тенденции и диапазоны рынков. Оптимизировать записи для адаптации к изменяющимся рыночным условиям.
Эта стратегия всесторонне рассматривает тенденции, управление деньгами и т. Д., Использует Ichimoku для выявления длинных возможностей и применяет правила контроля риска для ограничения потерь на одной сделке.
/*backtest start: 2023-11-27 00:00:00 end: 2023-12-27 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // Author Obarut //@version=5 strategy("İchimoku Strategy With MM Short-Long",overlay=true,process_orders_on_close=true) //Ichimoku Inputs ts_period = input.int(8, minval=1, title="Tenkan-Sen Period") ks_period = input.int(16, minval=1, title="Kijun-Sen Period") ssb_period = input.int(24, minval=1, title="Senkou-Span B Period") cs_offset = input.int(16, minval=1, title="Chikou-Span Offset") ss_offset = input.int(8, minval=1, title="Senkou-Span Offset") long_entry = input(true, title="Long Entry") short_entry = input(true, title="Short Entry") // Back Testing Period Inputs fromday = input.int(defval=1,title="Start Date",minval=1,maxval=31) frommonth = input.int(defval=1,title="Start Month",minval=1,maxval=12) fromyear = input.int(defval=1980,title="Start Year",minval=1800, maxval=2100) today = input.int(defval=1,title="En Date",minval=1,maxval=31) tomonth = input.int(defval=1,title="End Month",minval=1,maxval=12) toyear =input.int(defval=2100,title="End Year",minval=1800,maxval=2200) start=timestamp(fromyear,frommonth,fromday,00,00) finish=timestamp(toyear,tomonth,today,00,00) timewindow= time>=start and time<=finish //Ichimoku Componenets Calculation Function middle(len) => math.avg(ta.lowest(len), ta.highest(len)) // Ichimoku Components tenkan = middle(ts_period) kijun = middle(ks_period) senkouA = math.avg(tenkan, kijun) senkouB = middle(ssb_period) //Senkou Span Lines slopes slopetenkan=(tenkan-tenkan[2])/tenkan slopekijun= (kijun-kijun[2])/kijun //Avarage True Range atr = ta.atr(14) //Senkou Span Lines ss_above = math.max(senkouA[ss_offset-1], senkouB[ss_offset-1]) ss_below = math.min(senkouA[ss_offset-1], senkouB[ss_offset-1]) // Price Distance From Tenkan distance = close - tenkan // Price Distance from Kijun distancek = close - kijun // Entry/Exit Signals tk_cross_kijun_bull = tenkan >= kijun//Tenkan Sen is greater than or equal to Kijun Sen tk_cross_kijun_bear = tenkan <= kijun//Tenkan Sen is smaller than or equal to Kijun Sen cs_cross_bull = close > high[cs_offset-1]//Chikou is above the price cs_cross_bear = close < close[cs_offset-1]//Chikou is below the price price_above_kumo = close > ss_above//Price is above the Kumo cloud pbsenkA = close < ss_above // Price is below the Senkou Span which is higher pasenkB = close > ss_below// Price is above the Senkou span which is lower price_below_kumo = close < ss_below // Price is below Kumo cloud future_kumo_bull = senkouA > senkouB and (ta.roc(senkouA,3)>0) and (ta.roc(senkouB,3)>=0) // Future Kumo cloud is bullish pbtenkan=close<tenkan tkbelowkij=tenkan<kijun future_kumo_bear = senkouA < senkouB//Future Kumo cloud is bearish // Price Distance From Tenken disbull = distance < 2*atr //Price Distance From Kijun disbullk = distancek < 3*atr //Price Above Tenkan Condition patk = close > tenkan // Kijun Above Senkou Span Condition kjasenkA = kijun > ss_above // Price Below Kijun Condition pbkijun = close < kijun //Consolidation Tenkan and Kijun are inside Kumo cloud kijuninsidekumo= kijun<ss_above and kijun>ss_below tenkaninsidekumo= tenkan<ss_above and tenkan>ss_below consolidation=kijuninsidekumo and tenkaninsidekumo //Bullish Entry Condition bullish= tk_cross_kijun_bull and cs_cross_bull and price_above_kumo and future_kumo_bull and disbull and patk and not consolidation //Bullish exit bearish=tk_cross_kijun_bear and pbsenkA and cs_cross_bear and future_kumo_bear or price_below_kumo // Bearish Entry Condition bearish2=tk_cross_kijun_bear and pbtenkan and tkbelowkij and tkbelowkij and cs_cross_bear and future_kumo_bear if(bullish and timewindow and long_entry ) strategy.entry("Long Entry", strategy.long) if(bearish2 and timewindow and short_entry) strategy.entry("Short Entry",strategy.short) // Bearish Condition lastentryprice = strategy.opentrades.entry_price(strategy.opentrades - 1) // Take Profit or Stop Loss in Bearish exit1= (close-tenkan)>3*atr and slopetenkan<=0 exit2= (close-lastentryprice)>5*atr and close<(tenkan-0.04*atr) if(bearish and timewindow and not short_entry or exit1 or exit2 or (close>1.30*lastentryprice ) or (close< 0.95*lastentryprice)) strategy.close("Long Entry") if(bullish and timewindow and not long_entry) strategy.close("Short Entry") if(time>finish) strategy.close_all("time up") plot(tenkan, color=#0496ff, title="Tenkan-Sen") plot(kijun, color=#991515, title="Kijun-Sen") plot(close, offset=-cs_offset+1, color=#2e640e, title="Chikou-Span") sa=plot(senkouA, offset=ss_offset-1, color=color.rgb(17, 122, 21), title="Senkou-Span A") sb=plot(senkouB, offset=ss_offset-1, color=color.rgb(88, 8, 8), title="Senkou-Span B") fill(sa, sb, color = senkouA > senkouB ? color.rgb(198, 234, 198) : color.rgb(208, 153, 153), title="Cloud color")