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


Дата создания: 2023-10-26 17:18:53 Последнее изменение: 2023-10-26 17:18:53
Копировать: 0 Количество просмотров: 686
1
Подписаться
1617
Подписчики

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

Обзор

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

Стратегический принцип

Стратегия основана на определении тенденций, основанных на следующих компонентах:

  1. Вычислить показатель стохастики для короткого цикла с длиной цикла input{\displaystyle \input{\mathrm {30}} } и сглаживающим параметром 2

  2. Вычислить показатель стохастики для длинного цикла с длиной цикла input{\displaystyle \input{\text{90}} , с параметром сглаживания 2

  3. Добавляя коротко- и долгосрочные стохастические показатели, получаем комплексную стохастическую кривую ts

  4. Вычислить на кривой ts переходный весомый скользящий средний tsl с длиной цикла input(30)

  5. Сравнение текущего значения tsl с его значениями 1 цикла назад, когда tsl повышается, считается тенденцией к росту, а когда tsl снижается, считается тенденцией к снижению

  6. С помощью кривой Stochastics можно определить, является ли сигнал многоголовым или пустым.

  • Когда tsl поднимается и ts находится в средней зоне, это многоголовый сигнал
  • Сигнал пустоты, когда tsl падает и ts находится в средней зоне

Анализ преимуществ стратегии

Эта стратегия объединяет определение тренда и определение перекупа и перепродажи, что позволяет более надежно идентифицировать направление тренда. Конкретные преимущества следующие:

  1. Двойные стохастические индикаторы могут одновременно отражать краткосрочные и долгосрочные перекупки и перепродажи, избегая пропуска некоторых сигналов.

  2. Взвешивание сделок может отфильтровать ложные прорывные сигналы

  3. Расположение кривой стохастики подтверждает надежность трендовых сигналов

  4. Параметры регулируемы, длина цикла может быть скорректирована в соответствии с различными рынками

  5. Стратегическая концепция четкая, понятная и легко изменяемая

Анализ рисков и улучшений

В этой стратегии также есть некоторые риски, о которых следует помнить:

  1. Стохастические индикаторы легко выдают ложные сигналы, требующие фильтрации в сочетании с более длинными циклами

  2. Параметры фиксированного цикла не подходят для всех рыночных условий, можно рассмотреть параметры динамической оптимизации

  3. Повышение точности только на основе технических показателей в сочетании с фундаментальными факторами

  4. Недостоверность данных о количестве сделок может повлиять на результаты, необходимо проверить качество данных о количестве сделок.

  5. Недостаточно времени для отслеживания, требуется больше исторических данных для проверки эффективности

  6. Оптимизируемый входный пункт, теперь это crosses under минимальное значение прямое увеличение, можно установить буферную зону

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Trend Finder V2", shorttitle="TFV2", format=format.price, precision=2, overlay = true)

//----------Indicator------------//

periodK = input(30)
periodD = 3
smoothK = 2

periodK_two = input(90)
periodD_two = 3
smoothK_two = 2

k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

k_two = sma(stoch(close, high, low, periodK_two), smoothK_two)
d_two = sma(k, periodD_two)

ts = k + k_two
tsl = vwma(ts, input(30, title = "VWMA Length"))

//--------Label parameter--------// 

up_label = tsl[1] < 100 and tsl > 100 ? 1 : 0
down_label = tsl[1] > 100 and tsl < 100 ? 1 : 0

//----------Color Code-----------//

//tsl_col = tsl > 100 and tsl > tsl[1] ? color.aqua : tsl > 100 and tsl < tsl[1] ? color.green : tsl < 100 and tsl > tsl[1] ? color.maroon : tsl < 100 and tsl < tsl[1] ? color.red : color.silver

//tsl_col = tsl > 100 and ts < 100 and ts > ts[1] ? color.aqua : tsl > 100 and ts > 100 and (ts > ts[1] or ts < ts[1]) ? color.green : tsl < 100 and ts > 100 and ts < ts[1] ? color.red : tsl < 100 and ts < 100 and (ts < ts[1] or ts > ts[1]) ? color.maroon : color.purple  

tsl_col = ts > ts[1] and tsl > tsl[1] ? color.lime : ts < ts[1] and tsl < tsl[1] ? color.red : color.yellow 

ts_col = (tsl_col == color.lime or tsl_col == color.maroon) and (k>k[1] and k < 30) ? color.lime :  (tsl_col == color.green or tsl_col == color.red) and (k < k[1] and k > 70)  ? color.red : color.silver

//-------------Plots-------------//

buy = tsl_col[1] == color.yellow and tsl_col == color.lime ? 1 : 0
sell = tsl_col[1] == color.yellow and tsl_col == color.red ? -1 : 0

plotcandle(open,high,low,close, color=tsl_col)

strategy.entry("Long", strategy.long,when=buy==1)
strategy.close("Long", when=sell==-1)