Эта стратегия сочетает в себе преимущества движущейся средней линии Хулла и движущейся средней линии Т3, чтобы разработать стратегию для торговли между рынками. Эта стратегия может использоваться как для короткой линии торговли, так и для отслеживания тенденций длинной линии торговли. Время входа и выхода определяется в зависимости от изменения их направления путем вычисления равновесия движущейся средней линии Хулла и движущейся средней линии Т3 как основных торговых сигнальных линий.
Эта стратегия основана на расчете движущейся средней линии Hull и движущейся средней линии T3.
Hull Moving Average (HMA) эффективно фильтрует рыночный шум, показывая гладкую кривую ценовых тенденций, используя методы иероглифации с учетом взвешенных движущихся сред. Он более чувствителен к изменениям цен, чем простые движущиеся средние и индексальные движущиеся средние, и также эффективно подавляет ложные прорывы.
Т3 позволяет скорректировать движущийся средний более близко к цене с помощью некоторых сверхпараметров, снижая задержку. Он может быстрее реагировать на изменения цены путем многократного сглаживания индекса.
Эта стратегия рассчитывает среднее значение обоих, как основной торговый показатель. В зависимости от направления этой средней линии, время входа определяется: если средняя линия текущего цикла выше, чем в предыдущем цикле, это сигнал многоголового входа; если средняя линия текущего цикла ниже, чем в предыдущем цикле, это сигнал пустого входа.
Для правила выхода, выйти, если цена прорвется через остановку или достигнет остановки; также выйти, если произойдет смещение в направлении средней линии.
Эта стратегия сочетает в себе преимущества движущейся средней Hull и движущейся средней T3 в том, что она не только гладко удаляет шум, но и быстро реагирует на изменения цен, что приводит к созданию комплексного показателя. Во-вторых, эта стратегия применяется как к короткой, так и к средней длинной линии торговли, позволяя гибко корректировать соответствующие торговые циклы путем корректировки параметров расчетного цикла.
Эта стратегия в основном опирается на индикаторы уравнения, которые могут вызывать несколько ложных сигналов в период колебаний. Кроме того, уравнение имеет определенную задержку и может пропустить оптимальный момент входа в изменения цены. Установка остановочных точек требует осторожности, чтобы избежать чрезмерного расслабления или чрезмерного напряжения.
Можно рассмотреть возможность добавления других вспомогательных индикаторов, таких как сильные и слабые индикаторы, индикаторы волатильности и т. д., для проверки усредненных сигналов, фильтрации ложных сигналов. Можно протестировать различные комбинации усредненных сигналов и алгоритмы взвешивания, чтобы оптимизировать эффективность генерации усредненных сигналов.
Эта стратегия объединяет преимущества движущейся средней линии Хулла и движущейся средней линии Т3 в единый комплексный показатель, который определяет направление тренда. Благодаря оптимизации параметров, стратегия может быть легко применена к различным торговым циклам. Стратегия имеет определенные преимущества, но также имеет проблемы с задержкой следования и созданием ложных сигналов.
/*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")