Обзор
Эта стратегия использует несколько гармонических скользящих средних для построения торговых сигналов. Она сначала рассчитывает гармонические скользящие средние от 1-го до 6-го порядка, а затем объединяет эти скользящие средние для построения двойных длинных / коротких торговых сигналов. Она становится короткой, когда краткосрочная линия сигнала пересекает длинную, и становится длинной, когда краткосрочная линия сигнала пересекает выше.
Логика стратегии
Стратегия сначала определяет функцию harm_average для вычисления гармонической скользящей средней на n периодов. Затем она вычисляет гармонические скользящие средние от 1 до 6 порядка, а именно от T1 до T6. Среди них T1 - это 3-периодическая гармоническая скользящая средняя, T2 - 3-периодическая гармоническая скользящая средняя T1 и так далее.
После этого он строит кривую баланса, которая синтетически рассматривает обратную кубическую гармоническую скользящую среднюю от T1 до T6. Это может одновременно отражать как краткосрочные, так и долгосрочные факторы.
Наконец, согласно T1 к T6, он создает двойные длинные/короткие кросс-трейдинговые сигналы, где X1 принимает минимум T1, T2 и T3, а X2 принимает максимум T4, T5 и T6. Он длинный, когда X1 пересекает выше X2, и короткий, когда X1 пересекает ниже X2. Здесь X1 отражает краткосрочные факторы, а X2 отражает долгосрочные факторы.
Анализ преимуществ
Использование нескольких гармонических скользящих средних может эффективно фильтровать рыночный шум и улучшать качество сигнала
Создание двойных длинных/коротких торговых сигналов может своевременно зафиксировать поворотные моменты тренда
Кривая баланса синтетически рассматривает несколько временных рамок, которые могут точно оценить направление тренда.
Принятие кубического среднего может еще больше подчеркнуть роль промежуточных переменных и повысить стабильность стратегии
Анализ рисков
У самих гармонических средних есть высокая отсталость, которая может упустить возможности краткосрочного обращения
Чрезмерная оптимизация с использованием нескольких средних может снизить надежность стратегии
Вычисления на кубиках могут до некоторой степени усиливать промежуточный шум, что приводит к некоторым ложным сигналам
Двойные кресты имеют некоторую степень отставания, не в состоянии вовремя захватить поворотные точки
Руководство по оптимизации
Можно испытать больше типов или более высоких порядков гармонических средних
Внедрение динамической корректировки средних дней для оптимизации системы среднего значения
Испытать различные параметры мощности, такие как квадраты и журналы
Включить дополнительные индикаторы для проверки качества сигнала
Резюме
Эта стратегия использует множественную гармоническую систему средних для построения двойных длинных / коротких торговых сигналов. По сравнению с едиными системами средних, эта стратегия может лучше идентифицировать тенденции и фильтровать шум. Между тем, двойные кресты также могут своевременно улавливать переломные моменты рынка.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Harmonic System Strategy", overlay=true) harm_average(x,y,z) =>3 / (1 / x + 1 / y + 1 / z) T1 = harm_average(close[1], close[2], close[3]) T2 = harm_average(T1, T1[1], T1[2]) T3 = harm_average(T2, T2[1], T2[2]) T4 = harm_average(T3, T3[1], T3[2]) T5 = harm_average(T4, T4[1], T4[2]) T6 = harm_average(T5, T5[1], T5[2]) Balance = 18 / (1 / T1 * 3 + 1 / T2 * 3 + 1 / T3 * 3 + 1 / T4 * 3 + 1 / T5 * 3 + 1 / T6 * 3) plot(T1,linewidth=2, color=color.green,title="T1") plot(T2,linewidth=1, color=color.blue,title="T2") plot(T3,linewidth=1, color=color.blue,title="T3") plot(Balance,linewidth=2, color=color.black,title="Balance") plot(T4,linewidth=1, color=color.blue,title="T4") plot(T5,linewidth=1, color=color.blue,title="T5") plot(T6,linewidth=2, color=color.red,title="T6") X1 = min(min(T1,T2),T3) X2 = max(max(T4,T5),T6) X3 = min(T1,T2) X4 = max(T3,T4) Buy=crossover(X1,X2) Sell=crossunder(X3,X4) if crossover(X1,X2) strategy.entry("Long", strategy.long, comment="Long") if crossunder(X3,X4) strategy.entry("Short", strategy.short, comment="Short")