Ичимоку краткосрочная стратегия управления деньгами

Автор:Чао Чжан, Дата: 28-12-2023 12:12:51
Тэги:

img

Обзор

Эта стратегия является улучшением, основанным на торговой системе Ichimoku.

Принципы стратегии

Стратегия использует классическую систему Ичимоку в качестве базовой ссылки.

Тенкан-Сен: Линия конверсии, отражающая среднесрочные тенденции.

Киджун-сен: Базовая линия.

Сенку Спан: Лидирующая линия.

Чику-Спан: Отстающая линия, отражающая тенденции прошлого.

На этой основе стратегия внесла следующие улучшения:

  1. Временные параметры следуют теории нечетного квадрата, чтобы лучше соответствовать рыночным моделям.

  2. Для контроля рисков торговли добавляются правила управления деньгами, включая стоп-лосс, получение прибыли, размещение позиций и т. д.

  3. Период обратного тестирования регулируется для более полного тестирования.

В частности, условия длинного входа включают в себя 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 для коротких.

Анализ преимуществ

Основными преимуществами совмещения Ичимоку и управления деньгами являются:

  1. Само Ichimoku отражает краткосрочные, среднесрочные и долгосрочные тенденции, разумный вход/выход.

  2. Теория нечетного квадрата оптимизирует параметры, чтобы соответствовать статистике рынка.

  3. Управление денежными средствами эффективно контролирует однократные торговые остановки, когда прибыль превышает.

  4. Настраиваемый период обратного тестирования позволяет проводить более полные испытания.

В целом, эта стратегия всесторонне рассматривает тенденции, выбор параметров, контроль рисков и т. д. Она эффективна в выявлении краткосрочных возможностей и контроле торговых рисков с большой практичностью.

Анализ рисков

Основными рисками этой стратегии являются:

  1. Ичимоку склонна к ложным утечкам, вызывающим ненужные входы.

  2. Фиксированная прибыль и стоп-лосс могут быть уязвимы для ловушек.

  3. Неполные данные об обратном тестировании могут переоценивать производительность.

  4. Стратегия больше подходит для рынков с тенденциями. Может быть менее эффективным на рынках с диапазоном. Условия входа могут быть оптимизированы для определения тенденций.

Руководство по улучшению

К основным направлениям совершенствования относятся:

  1. Добавьте фильтры индикаторов для улучшения качества входа, такие как MACD, KDJ и т.д.

  2. Динамическое получение прибыли и остановка убытков. Например, получение прибыли после N ATR прорывов, остановка убытков ниже поддержки.

  3. Многоактивное тестирование на более длинных данных для проверки стабильности.

  4. Отличить тенденции и диапазоны рынков. Оптимизировать записи для адаптации к изменяющимся рыночным условиям.

Заключение

Эта стратегия всесторонне рассматривает тенденции, управление деньгами и т. Д., Использует 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")

Больше