Многопоказательная краткосрочная алгоритмическая стратегия торговли

Автор:Чао Чжан, Дата: 14 сентября 2023 года 19:46:55
Тэги:

Эта статья подробно представляет краткосрочную алгоритмическую торговую стратегию, объединяющую несколько индикаторов.

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

В основе этой стратегии лежит использование сочетания нескольких показателей, в основном включающих:

(1) Система двойных скользящих средних: рассчитывает один быстрый и один медленный скользящий средний корпуса и оценивает тенденцию на основе их перекрестки.

(2) Система Ичимоку: рассчитывает конверсию и базовые линии, среди прочего, и определяет уровни тренда и поддержки / сопротивления на основе облака Ичимоку.

(3) Дончианский канал: создает канал с использованием самых высоких и самых низких цен для выявления ценовых сбоев.

(4) MACD: рассчитывает MACD и линию сигнала, совершая сделки на основе их перекрестки.

Только когда эти индикаторы достигнут консенсуса по оценке тренда, будут генерироваться надежные торговые сигналы.

Принимать длинные позиции, когда быстрая Hull MA пересекает над медленной Hull MA, И линии Ичимоку пересекают над облаком, И Дончианский канал выходит, И MACD пересекает над линией сигнала.

Ежедневные цены закрытия бар также включены, чтобы избежать попадания в ловушку реверсий.

Кроме того, стратегия содержит логику остановки потерь и получения прибыли для контроля риска и вознаграждения для каждой сделки.

II. Преимущества стратегии

Наибольшее преимущество этой стратегии заключается в взаимодополняемости комбинаций индикаторов, что улучшает качество сигнала.

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

Наконец, механизм остановки потерь и получения прибыли также обеспечивает контролируемые риски на одну сделку.

III. Потенциальные риски

Несмотря на разумную стратегию, следует также отметить риски торговли:

Во-первых, множественная комбинация индикаторов увеличивает сложность оптимизации.

Во-вторых, стоп-потери могут быть зафиксированы при сильном движении тренда, что приводит к ненужным потерям.

Наконец, суждения о нескольких временных рамках также могут привести к запутанным ситуациям, которые трудно расшифровать.

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

IV. Резюме

В этой статье подробно представлена краткосрочная алгоритмическая стратегия торговли, объединяющая несколько индикаторов. Для улучшения качества сигнала используется комбинация двойных скользящих средних, Ichimoku, Donchian Channel, MACD и многое другое. Для контроля рисков также используется многочасовой анализ и логика стоп-лосс/тач-принт. С оптимизацией эта стратегия может стать эффективной системой для краткосрочной систематической торговли.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Custom 15m strat",overlay=true)
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", step=0.0001)`
SL = input(defval=-500.00, title="Stop Loss in $", step=1)
TP = input(defval=25000.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
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")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength) //macd
aMACD = ema(MACD, MACD_Length) //signal
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
    strategy.entry("Short",strategy.short)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
//plot(longCondition == true ? 4000:4100,title="long")
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)
// remove the "//" from before the plot script if want to see the indicators on chart

Больше