
Это стратегия, которая использует комбинацию двух стохастических индикаторов и переменных весовых скользящих средних для определения тенденции. Эта стратегия использует два различных цикла стохастических индикаторов, один - короткий, другой - длинный, а затем комбинирует переменные весовые скользящие средние для определения текущего направления тенденции.
Стратегия основана на определении тенденций, основанных на следующих компонентах:
Вычислить показатель стохастики для короткого цикла с длиной цикла input{\displaystyle \input{\mathrm {30}} } и сглаживающим параметром 2
Вычислить показатель стохастики для длинного цикла с длиной цикла input{\displaystyle \input{\text{90}} , с параметром сглаживания 2
Добавляя коротко- и долгосрочные стохастические показатели, получаем комплексную стохастическую кривую ts
Вычислить на кривой ts переходный весомый скользящий средний tsl с длиной цикла input(30)
Сравнение текущего значения tsl с его значениями 1 цикла назад, когда tsl повышается, считается тенденцией к росту, а когда tsl снижается, считается тенденцией к снижению
С помощью кривой Stochastics можно определить, является ли сигнал многоголовым или пустым.
Эта стратегия объединяет определение тренда и определение перекупа и перепродажи, что позволяет более надежно идентифицировать направление тренда. Конкретные преимущества следующие:
Двойные стохастические индикаторы могут одновременно отражать краткосрочные и долгосрочные перекупки и перепродажи, избегая пропуска некоторых сигналов.
Взвешивание сделок может отфильтровать ложные прорывные сигналы
Расположение кривой стохастики подтверждает надежность трендовых сигналов
Параметры регулируемы, длина цикла может быть скорректирована в соответствии с различными рынками
Стратегическая концепция четкая, понятная и легко изменяемая
В этой стратегии также есть некоторые риски, о которых следует помнить:
Стохастические индикаторы легко выдают ложные сигналы, требующие фильтрации в сочетании с более длинными циклами
Параметры фиксированного цикла не подходят для всех рыночных условий, можно рассмотреть параметры динамической оптимизации
Повышение точности только на основе технических показателей в сочетании с фундаментальными факторами
Недостоверность данных о количестве сделок может повлиять на результаты, необходимо проверить качество данных о количестве сделок.
Недостаточно времени для отслеживания, требуется больше исторических данных для проверки эффективности
Оптимизируемый входный пункт, теперь это 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)