Стратегия высокочастотного хеджирования на основе цвета столбца MACD и линейной регрессии


Дата создания: 2023-10-27 10:42:54 Последнее изменение: 2023-10-27 10:42:54
Копировать: 0 Количество просмотров: 871
1
Подписаться
1617
Подписчики

Стратегия высокочастотного хеджирования на основе цвета столбца MACD и линейной регрессии

Обзор

Эта стратегия объединяет MACD и линейный индикатор регрессии, чтобы достичь высокой частоты обратной торговли с помощью хитрой комбинации, особенно подходящей для короткого арбитража и хеджирования, что является типичной нейтральной стратегией.

Стратегический принцип

Стратегия состоит из следующих частей:

  1. Цвет столба MACD в качестве индикатора тренда. Когда цвет столба MACD зеленый, это означает, что он находится в тенденции к росту, и в этот момент не делается пустой лист; когда цвет столба MACD красный, это означает, что он находится в тенденции к снижению, и в этот момент не делается лишний лист.

  2. Линейное регрессирование как ключевой индикатор торгового сигнала. Когда цена пересекает линейное регрессирование снизу, делайте больше; когда цена пересекает линейное регрессирование сверху вниз, делайте больше.

  3. Канал PAC состоит из высоких, низких и закрывающихся ЭМА, которые используются для определения направления линейной регрессии. Торговый сигнал создается только тогда, когда направление линейной регрессии соответствует тренду внутри канала.

  4. EMA 89 как линия остановки, когда цена снова пересекает эту линию, а также остановка ликвидации.

Логика генерирования торговых сигналов:

Многоголовый сигнал: линейный регресс вверх, проходящий по каналу PAC вниз, и линейный регресс вверх по склону, и цвет столбика MACD не красный Головной сигнал: линейный регресс вниз через канал PAC вверх и линейный регресс вниз и MACD столбик не зеленый

Стоп-слегка: цена снизилась до EMA 89

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

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

  1. Используйте цвета столбиков MACD, чтобы определить тенденцию и избежать обратной торговли.

  2. Линейная регрессия обладает гладкостью, которая позволяет отфильтровывать часть шума.

  3. Формируемые EMA-пути четко определяют направление полигонов.

  4. Стоп-линия устанавливается разумно и гарантирует максимальную прибыль.

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

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

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

  1. Линейная регрессия и канальный индикатор требуют определенной параметрической оптимизации, в противном случае они могут быть неэффективными.

  2. При больших толчках может быть чаще задействован приостановка убытков. Приостановка убытков может быть расширена.

  3. Если вы совершаете большое количество сделок, обратите внимание на влияние комиссионных.

  4. MACD имеет определенную отсталость и может пропустить кратковременный обратный тренд.

  5. Кроме того, канал EMA должен постоянно оптимизироваться для адаптации к изменениям на рынке.

Направление оптимизации

  1. Настройка линейной регрессии и параметров каналов, чтобы показатели были более соответствующими характеристикам разных сортов.

  2. Расслабьтесь при остановке, но убедитесь, что коэффициент остановки больше 1.

  3. Оптимизация параметров MACD, чтобы она могла поймать больше короткосрочных сигналов.

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

  5. Повышение контроля над позициями, чтобы предотвратить чрезмерные убытки.

  6. В сочетании с RSI и другими индикаторами, отфильтрованными отчасти от торговых сигналов.

Подвести итог

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

Исходный код стратегии
/*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=2
// strategy("Sonic R + Linear Reg + Kumo Cloud + Barcolor MACD", overlay=true,default_qty_value=10000,initial_capital=200,currency=currency.USD, pyramiding=1)
EMA = input(defval=89, title="EMA Signal")
HiLoLen     = input(34, minval=2,title="High Low channel Length")
pacC        = ema(close,HiLoLen)
pacL        = ema(low,HiLoLen)
pacH        = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close//
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=90)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=90)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=80)
//Moving Average//
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=black,linewidth=3,style=line)
linereg = linreg(close, EMA, 0)
plot(linereg, color = orange, title = "Linear Regression Curve", style = line, linewidth = 1)
//////ICHIMOKU/////////
conversionPeriods = input(9),
basePeriods = input(26, minval=1, title="Base Line")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span"),
displacement = input(26, minval=1)
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine) 
leadLine2 = donchian(laggingSpan2Periods-1)
p1 = plot(leadLine1, offset = displacement-1, color=gray,title="Senkou span A", transp=90)
p2 = plot(leadLine2, offset = displacement-1, color=gray, title="Senkou span B", transp=90)
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red, title="Kumo Cloud")
///////////////// MACD BARCOLOR /////////////////////
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
hisup= iff(delta>delta[1] and delta>0, 1,
	     iff(delta<delta[1], -1, nz(hisup[1], 0)))
hisdown = iff(delta<delta[1] and delta<0, 1,
	     iff(delta>delta[1], -1, nz(hisdown[1], 0)))
barcolor(hisup==1 and MACD>0 ? lime: hisdown==1 and MACD<0 ? red : blue )
///////////// SIGNAL ///////////////
conbuy = iff(crossover(linereg,pacL) and rising(linereg,5), 1,
	     iff(crossover(linereg,pacH) or (crossunder(linereg,pacL) and pacL<signalMA), -1, nz(conbuy[1], 0)))
consell = iff(crossunder(linereg,pacH) and falling(linereg,5), 1,
	     iff(crossunder(linereg,pacL) or (crossover(linereg,pacH) and pacH>signalMA), -1, nz(consell[1], 0)))
golong= conbuy==1 and close>open and open<pacH and close>linereg and hisdown!=1
goshort= consell==1 and close<open and open>pacL and close<linereg and hisup!=1
if(golong)
    strategy.entry("Buy",strategy.long)
if(goshort)
    strategy.entry("Sell",strategy.short)
closelong= conbuy==-1
closeshort=consell==-1
if(closelong)
    strategy.close("Buy")
if(closeshort)
    strategy.close("Sell")
 ////////////// TP and SL//.
//SL = input(defval=200.00, title="Stop Loss Point", type=float, step=1)
//rr= input(defval=0.1,title="Reward/Risk",type=float)
//useTPandSL = input(defval = false, title = "Use exit order strategy?")
//Stop = SL
//Take=SL*rr
//Q = 100
//if(useTPandSL)
//    strategy.exit("Out Long", "Buy", qty_percent=Q, profit= Take, loss=Stop)
//    strategy.exit("Out Short", "Sell", qty_percent=Q, profit= Take, loss=Stop)