
Эта стратегия объединяет преимущества Hull Moving Average и T3 Moving Average, чтобы разработать стратегию для торговли между городами. Эта стратегия может использоваться как для торговли на коротких линиях, так и для отслеживания тенденций на средних и длинных линиях.
Стратегия основана на расчетах Hull Moving Average и T3 Moving Average.
Hull Moving Average (HMA) эффективно фильтрует рыночный шум, показывая сглаживание кривой ценовых тенденций, используя методы иерархического вычисления с использованием взвешенных движущихся средних. Он более чувствителен к изменениям цен, чем простые движущиеся средние и индексированные движущиеся средние, а также эффективно подавляет ложные прорывы.
T3 Moving Average, уменьшая эффект задержки, может быть более близко к цене с помощью некоторой гиперпараметрической корректировки. Он может быстрее реагировать на изменения цены с помощью многократного сглаживания индекса.
Эта стратегия рассчитывает среднее значение обоих, как основной торговый показатель. Время входа определяется в зависимости от направления этого среднего: если среднее значение текущего цикла выше, чем в предыдущем цикле, то это сигнал входа для многоголовых; если среднее значение текущего цикла ниже, чем в предыдущем цикле, то это сигнал входа для пустых голов.
Для правил выхода, если цена преодолела точку остановки или достигла точки остановки, выходит; если направление средней линии изменилось, также выполняется выход.
Эта стратегия сочетает в себе преимущества Hull Moving Average и T3 Moving Average, позволяя сгладить шум и быстро реагировать на изменения цен, создавая таким образом комплексный индикатор. Во-вторых, эта стратегия одновременно применима к торговле на короткой и средней длинных линиях.
Эта стратегия основывается на показателях средней линии, которые могут вызывать многократные ложные сигналы в шокирующем тренде. Кроме того, средняя линия имеет определенную отсталость и может пропустить оптимальную точку входа в ценовые колебания. Установка стоп-стоп-стоп требует осторожности, чтобы избежать слишком мягкой или слишком срочной.
Можно рассмотреть возможность добавления других вспомогательных показателей, таких как показатели слабости, показатели волатильности и т. д., для проверки равномерных сигналов, фильтрации ложных сигналов. Можно протестировать различные комбинации равномерных и весовые алгоритмы, оптимизировать эффективность генерирования равномерных сигналов. Можно добавить динамический риск управления с помощью адаптивных стоп-лостов и стоп-следов.
Эта стратегия объединяет преимущества Hull Moving Average и T3 Moving Average, образуя комплексный показатель для определения направления тенденции. Благодаря оптимизации параметров, стратегия может быть гибко применена к различным торговым циклам.
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
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/
// © exlux99
//@version=4
strategy(title="Swing HULL + T3 avg", shorttitle="Swing HULL T3 AVG", overlay=true)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////GENERAL INPUTS//////////////////////////////////////
length_Ma= input(defval=50, title="Length MAs", minval=1)
//==========HMA
getHULLMA(src, len) =>
hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
hullma
//==========T3
getT3(src, len, vFactor) =>
ema1 = ema(src, len)
ema2 = ema(ema1,len)
ema3 = ema(ema2,len)
ema4 = ema(ema3,len)
ema5 = ema(ema4,len)
ema6 = ema(ema5,len)
c1 = -1 * pow(vFactor,3)
c2 = 3*pow(vFactor,2) + 3*pow(vFactor,3)
c3 = -6*pow(vFactor,2) - 3*vFactor - 3*pow(vFactor,3)
c4 = 1 + 3*vFactor + pow(vFactor,3) + 3*pow(vFactor,2)
T3 = c1*ema6 + c2*ema5 + c3*ema4 + c4*ema3
T3
hullma = getHULLMA(close,length_Ma)
t3 = getT3(close,length_Ma,0.7)
avg = (hullma+t3) /2
////////////////////////////PLOTTING////////////////////////////////////////////
colorado = avg > avg[1]? color.green : color.red
plot(avg , title="avg", color=colorado, linewidth = 4)
long=avg>avg[1]
short=avg<avg[1]
tplong=input(0.08, title="TP Long", step=0.01)
sllong=input(1.0, title="SL Long", step=0.01)
tpshort=input(0.03, title="TP Short", step=0.01)
slshort=input(0.06, title="SL Short", step=0.01)
if(time_cond)
strategy.entry("long",1,when=long)
strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
strategy.entry("short",0,when=short)
strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")