Краткосрочная количественная торговая стратегия, основанная на множественных индикаторах


Дата создания: 2023-09-14 19:46:55 Последнее изменение: 2023-09-14 19:46:55
Копировать: 1 Количество просмотров: 785
1
Подписаться
1617
Подписчики

В этой статье подробно рассматривается стратегия количественного торговли на коротких линиях с использованием комбинации из нескольких индикаторов. Эта стратегия использует набор мощных технических индикаторов, которые генерируют торговые сигналы в течение низких временных периодов (например, 15 минут).

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

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

(1) Двойная равнолинейная система: вычислить два скользких движущихся средних Хулла, чтобы определить направление тренда в зависимости от их перекрестного отношения.

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

(3) Donchian Channel: создание канала с использованием максимальной и минимальной цены, чтобы определить ценовой прорыв.

(4) MACD: вычисляет MACD и сигнальную линию и выполняет операции в соответствии с их пересечением.

Более надежный торговый сигнал создается, когда эти показатели согласуются в определении тенденции. Конкретная логика заключается в следующем:

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

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

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

Второе: стратегические преимущества

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

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

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

Третье, потенциальные риски

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

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

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

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

В целом, эта стратегия “overall” сочетает в себе логическую науку, которая может быть постоянно оптимизирована с помощью параметрового тестирования, чтобы стать эффективной стратегией количественной краткой линии.

Четвертое содержание.

В данной статье подробно описывается стратегия количественной торговли короткой линией с комбинацией нескольких индикаторов. Она использует такие индикаторы, как двойная равновесия, Ичимоку, Дончианский канал и 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