Эта стратегия называется
Эта стратегия использует индикатор Parabolic SAR для определения направления тренда и времени переворота. Индикатор Stoch оценивает, является ли он перекупленным или перепроданным. Функция Security извлекает направление длинных циклов скользящих средних для определения общей тенденции.
Когда точки Parabolic SAR преобразуются в сторону падения, это считается быстрым сигналом; когда точки поворачиваются вверх, это указывает на медленность.
Цены на акции K ниже 20 считаются перепроданными, а выше 80 считаются перекупленными.
Функция "Безопасность" вызывает скользящие средние продолжительности цикла для определения общего направления тренда, что позволяет комбинировать анализ между различными временными циклами.
Когда вышеперечисленные три индикатора дают быстрые сигналы, выбирайте длинный. Когда вы даете медвежие сигналы, выбирайте короткий. Строго следуйте принципу фильтрации нескольких индикаторов, чтобы эффективно отфильтровать ложные прорывы и зафиксировать истинные тенденции.
Наибольшее преимущество этой стратегии заключается в ее многочасовом анализе. Три индикатора оценивают поведение цен соответственно на краткосрочном, среднесрочном и долгосрочном уровнях. Параболический SAR фиксирует время обратного движения и краткосрочные тенденции. Акции определяют условия перекупки и перепродажи в настоящее время. Функция безопасности определяет общее направление тренда. Три дополняют друг друга, чтобы эффективно избежать помех от ложных прорывов и использовать возможности установления тренда.
В то же время эта стратегия использует несколько индикаторов для суждения и фильтрации, чтобы минимизировать вероятность ошибочного суждения от одного.
Основные риски этой стратегии заключаются в правильности настройки параметров индикаторов. Размер шага и максимальный размер шага Parabolic SAR напрямую влияют на скорость улавливания реверсий. Циклы сглаживания K-значения и D-значения Stoch должны соответствовать характеристикам рынка. Цикл выбора функции безопасности также влияет на суждение. Неправильное настройка этих ключевых параметров может привести к неправильным торговым решениям стратегии.
Кроме того, принцип многочасового анализа подчеркивает сочетание индикаторов в разные периоды. Однако, как справиться с расхождениями между индикаторами длинного и короткого цикла также является проблемой, на которую стоит обратить внимание. Возможное решение заключается в определении общего направления с помощью индикаторов тренда и определении конкретного времени выхода с использованием индикаторов BREAKOUT.
Основными направлениями дальнейшей оптимизации этой стратегии являются следующие три аспекта:
Увеличить механизм адаптивного размера шага. Позволить параметрам Parabolic SAR корректироваться на основе степени волатильности рынка, чтобы лучше улавливать реверсии.
Добавить механизм стоп-лосса. Выйти со стоп-лосом, когда цена проходит определенный уровень в неблагоприятном направлении. Контролировать потерю одной сделки.
Внедрить методы машинного обучения. Использовать алгоритмы для обучения корреляции между ценовым поведением в разные периоды времени. Параметры стратегии, объединяющие разные временные рамки, также могут быть оптимизированы с помощью алгоритмов.
Количественная стратегия
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='kyenji', shorttitle='kyenji90', overlay=true) // Parabolic SAR parabolicSARStart=input.float(0.01) parabolicSARInc=input.float(0.01) parabolicSARMax=input.float(0.2) psarDot = ta.sar(parabolicSARStart,parabolicSARInc,parabolicSARMax) longConditionPSAR = psarDot > close shortConditionPSAR = psarDot < close // Stoch periodK = input.int(14, title="K", minval=1) periodD = input.int(3, title="D", minval=1) smoothK = input.int(3, title="Smooth", minval=1) k = ta.sma(ta.stoch(close, high, low, periodK), smoothK) d = ta.sma(k, periodD) h0 = 80 h1 = 20 longConditionStoch = k < h1 shortConditionStoch = k > h0 // Security securityPeriod=input('180') longConditionSecurity = ta.crossover(request.security(syminfo.tickerid, securityPeriod, close),request.security(syminfo.tickerid, securityPeriod, open)) shortConditionSecurity = ta.crossunder(request.security(syminfo.tickerid, securityPeriod, close),request.security(syminfo.tickerid, securityPeriod, open)) // Generate Signal longCondition = longConditionSecurity and longConditionPSAR and longConditionStoch shortCondition = shortConditionSecurity and shortConditionPSAR and shortConditionStoch if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)