Тенденционная стратегия, основанная на тройном индикаторном моделе облаков

Автор:Чао Чжан, Дата: 2023-09-13 17:38:55
Тэги:

Эта стратегия называется Стратегия следования трендам на основе трёх индикаторного облачного паттерна.

Используются три показателя:

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

Движущаяся средняя корпуса, с ее плавными поворотами, отфильтровывает ложные сигналы.

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

Вместе они образуют облачный рисунок, с верхней полосой наивысших значений из трех, а нижней полосой наименьших значений.

Логика торговли такова:

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

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

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

В целом, использование нескольких индикаторов для определения тенденций является распространенным и эффективным подходом.


/*backtest
start: 2022-09-12 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SnarkyPuppy

//@version=5
strategy("HKST Cloud", overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value=100)



////////////////nAMA
Lengthkaufman = input(20) 
xPrice = ohlc4
xvnoise = math.abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
nsignal = math.abs(xPrice - xPrice[Lengthkaufman])
nnoise = math.sum(xvnoise, Lengthkaufman)
nefratio = nnoise != 0? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
nAMA =  float(0)
nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//plot(nAMA,color=color.red)
///short=input(true)



///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////

////////hull moving average
hull_len=input(20)
hull= ta.hma(nAMA,hull_len)

///////atr trail
atr_factor=input(2)
atr_period=input(5)
[supertrend, direction] = ta.supertrend(atr_factor,atr_period)

/////////cloud
band1= math.max(supertrend,hull,nAMA)
band2= math.min(supertrend,hull,nAMA)

b1=plot(band1, "band1", color = color.rgb(76, 175, 79, 85), style=plot.style_linebr)
b2=plot(band2, "band2", color = color.rgb(255, 82, 82, 78), style=plot.style_linebr)
fill(b1,b2,color.rgb(12, 50, 186, 75))
longCondition = ta.crossover(high,band1) //or ta.crossover(low,band2)
if (longCondition)
    strategy.entry("Up", strategy.long)

shortCondition =  ta.crossunder(low,band2) or close<band2
if (shortCondition) 
    strategy.close("Up", shortCondition)



Больше