
Стратегия Ichimoku Kumo Twist использует преобразовательную линию, базовую линию и проводящую линию индикатора Ichimoku для построения торговых сигналов. Она относится к стратегии отслеживания тенденций.
Эта стратегия основана на использовании трех средних линий индикатора Ичимоку - переходной, базовой и основной линии 1, а также высшей и низшей цены на линии K. Переходная линия рассчитывает средние цены на высшие и низшие цены на последних 9 линиях K, представляющие собой кратковременные средние цены на первичной равновесной карте; базовая линия рассчитывает средние цены на высшие и низшие цены на последних 26 линиях K, представляющие собой долгосрочные средние цены.
Когда проводник 1 проходит через проводник 2, он создает сигнал покупки, а когда проводник 1 проходит под проводником 2, он создает сигнал продажи. Эта стратегия торговли заключается в том, чтобы отслеживать короткосрочные и среднесрочные средние линии, чтобы улавливать изменения в тренде.
Стратегия реверсионного пояса в облаке Ичимоку, объединяющая краткосрочные и среднесрочные тенденции, позволяет эффективно идентифицировать точки реверсии.
Основанная на равномерной стратегии, с некоторой задержкой, она может отфильтровывать часть шума.
Используйте облачную полосу для определения сильных и слабых тенденций, чтобы получить лучшие входы и выходы.
Не нужно оптимизировать параметры, используйте стандартные параметры Ichimoku.
Принцип Ичимоку более сложен, не чувствителен к корректировке параметров и не поддается чрезмерной оптимизации.
В ходе рыночной консолидации может появиться несколько ошибочных сигналов.
Когда краткосрочные и среднесрочные тенденции отклоняются, возникают ситуации с неэффективностью стратегии.
Для контроля риска необходимо использовать стоп-лосс, иначе возможны большие убытки.
Можно тестировать различные комбинации параметров на переходной и базовой линиях, чтобы найти оптимальную точку равновесия.
В сочетании с другими показателями фильтруйте входные сигналы, чтобы избежать создания позиций в явно неблагоприятных условиях.
Добавление стратегии остановки убытков, установка динамической остановки убытков или остановки убытков вслед за ними.
Оптимизация управления позициями, корректировка размеров позиций в соответствии с рыночными условиями.
Для более точного отсчета в обратном измерении добавляется плата за транзакцию.
Ichimoku облачная реверсивная стратегия в целом является умеренной трендовой стратегией. Она может эффективно идентифицировать трендовые поворотные точки и открывать позиции в соответствии с трендом. Но в этой стратегии также есть определенные затраты на мониторинг, которые должны сопровождаться строгими мерами управления риском для длительного использования.
/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Ichimoku Kumo Twist Strategy (Presets)", shorttitle="Kumo Twist Strategy", overlay=true)
xlowest_(src, len) =>
x = src
for i = 1 to len - 1
v = src[i]
if (na(v))
break
x := min(x, v)
x
xlowest(src, len) =>
na(src[len]) ? xlowest_(src, len) : lowest(src, len)
xhighest_(src, len) =>
x = src
for i = 1 to len - 1
v = src[i]
if (na(v))
break
x := max(x, v)
x
xhighest(src, len) =>
na(src[len]) ? xhighest_(src, len) : highest(src, len)
dropn(src, n) =>
na(src[n]) ? na : src
ichiConversionPeriods(presets) =>
if presets == "Crypto Doubled"
20
else
if presets == "Crypto Singled"
10
else
if presets == "Standard Doubled"
18
else
9
ichiBasePeriods(presets) =>
if presets == "Crypto Doubled"
60
else
if presets == "Crypto Singled"
30
else
if presets == "Standard Doubled"
52
else
26
ichiLaggingSpan2Periods(presets) =>
if presets == "Crypto Doubled"
120
else
if presets == "Crypto Singled"
60
else
if presets == "Standard Doubled"
104
else
52
ichiDisplacement(presets) =>
if presets == "Crypto Doubled"
30
else
if presets == "Crypto Singled"
30
else
if presets == "Standard Doubled"
26
else
26
scaling = input(title="Scaling", options=["Linear", "Log"], defval="Linear")
presets = input(title="Presets", options=["Crypto Doubled", "Crypto Singled", "Standard Doubled", "Standard Singled"], defval="Crypto Doubled")
dropCandles = input(1, minval=0, title="Drop first N candles")
showClouds = input(false, "Show Clouds")
stoploss = input(true, title="Stop Loss")
conversionPeriods = ichiConversionPeriods(presets)
basePeriods = ichiBasePeriods(presets)
laggingSpan2Periods = ichiLaggingSpan2Periods(presets)
displacement = ichiDisplacement(presets)
logScaling = scaling == "Log"
lows = dropn(low, dropCandles)
highs = dropn(high, dropCandles)
lowsp = logScaling ? log(lows) : lows
highsp = logScaling ? log(highs) : highs
donchian(len) =>
avg(xlowest(lowsp, len), xhighest(highsp, len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
golong = crossover(leadLine1, leadLine2)
goshort = crossunder(leadLine1, leadLine2)
strategy.entry("Buy", strategy.long, when=golong, stop=(stoploss ? high+syminfo.mintick : na))
strategy.entry("Sell", strategy.short, when=goshort, stop=(stoploss ? low-syminfo.mintick : na))
conversionLinep = logScaling ? exp(conversionLine) : conversionLine
baseLinep = logScaling ? exp(baseLine) : baseLine
leadLine1p = logScaling ? exp(leadLine1) : leadLine1
leadLine2p = logScaling ? exp(leadLine2) : leadLine2
plot(showClouds ? conversionLinep : na, color=#0496ff, title="Conversion Line")
plot(showClouds ? baseLinep : na, color=#991515, title="Base Line")
p1 = plot(showClouds ? leadLine1p : na, offset = displacement, color=green, title="Lead 1")
p2 = plot(showClouds ? leadLine2p : na, offset = displacement, color=red, title="Lead 2")
fill(p1, p2, color = showClouds ? (leadLine1p > leadLine2p ? green : red) : na)