Стратегия перекрестного использования стохастических показателей на разные периоды времени

Автор:Чао Чжан, Дата: 2023-10-24 14:44:00
Тэги:

img

Обзор

Стратегия многочасового стохастического перекрестного действия - это типичная стратегия, следующая за трендом. Она рассчитывает значения стандартного отклонения в разных временных рамках (например, ежедневно, еженедельно, ежемесячно и т. Д.), Конструирует несколько линий K и D, принимает среднее значение этих линий для построения скользящих средних, и длится, когда быстрая линия пересекает над медленной линией, и коротко, когда быстрая линия пересекает ниже медленной линии. Объединяя линии стандартного отклонения в разных временных рамках, эта стратегия может эффективно фильтровать шум рынка и улавливать преобладающую тенденцию.

Логика стратегии

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

Во-первых, стратегия рассчитывает K-значения стандартного отклонения по различным параметрам в пяти группах, соответствующих ежедневным, еженедельным и месячным временным рамкам:

smoothK = input(55)
SMAsmoothK = input(13)  
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)

smoothK1 = input(89) 
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1) 

...

smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

Затем он вычисляет D прямых с различными параметрами соответственно:

smoothD = input(34)
d = sma(k, smoothD)  

...

smoothD4 = input(233) 
d4 = sma(k4, smoothD4)

Далее он вычисляет среднее значение линий K и D, чтобы получить быструю линию Kavg и медленную линию Davg:

Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4)

Наконец, он длинный, когда Кавг пересекается над Давгом, и короткий, когда Кавг пересекается ниже Давга:

long = crossover(Kavg, Davg)  
short = crossunder(Kavg, Davg)

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

Преимущества

  • Использует предсказательную силу стандартного отклонения в нескольких временных рамках для фильтрации шума и улавливания тенденций
  • Гибкость корректировки периода задержки путем настройки параметров временных рамок
  • Само стандартное отклонение имеет сильную тенденцию, следующие характеристики
  • Пересечение скользящей средней позволяет избежать ввода в заблуждение одним ложным прорывом
  • Легко оптимизировать периоды скользящих средних для большей стабильности

Риски и решения

  • Многократные пересечения скользящих средних временных рамок могут генерировать много ложных сигналов, оптимизировать периоды скользящих средних.
  • Стандартное отклонение подвержено ошибкам от волатильных движений, следует рассмотреть возможность добавления фильтров
  • Фиксированные периоды не могут адаптироваться к изменениям рынка, принимают адаптивные периоды
  • Долгие периоды хранения рискуют преследовать вершины и дно, используйте остановки для блокировки прибыли
  • Ограничивается зависимость от одного индикатора KDJ, объединяется с другими показателями

Решения:

  1. Добавить фильтры, чтобы избежать ложных сигналов прорыва

  2. Использование адаптивных периодов на основе волатильности рынка

  3. Используйте последующие остановки для своевременного выхода сделок

  4. Оптимизировать периоды скользящих средних для наилучшего баланса

  5. Включить больше показателей для повышения надежности

Возможности для расширения

Эта стратегия может быть еще улучшена в следующих областях:

  1. Включить другие индикаторы сигналов, такие как MACD, полосы Боллинджера для улучшения качества сигнала

  2. Добавление фильтров тренда, таких как направление SMA, ADX, чтобы избежать контратендных сделок

  3. Использование адаптивных периодов на основе волатильности рынка

  4. Внедрять последующие остановки на основе параметров стратегии для выхода из торгов

  5. Оптимизировать периоды быстрой и медленной скользящей средней для лучших параметров

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

  7. Пробный прорыв после перекрестки скользящих средних

  8. Оценить различные стратегии выхода, такие как Chandelier Exit для оптимизации выходов

Заключение

Стратегия Multi Timeframe Stochastic Crossover сочетает в себе следующую тенденцию способность стохастического индикатора и стабильность движущихся средних стратегий. Принимая средние из многопериодных стандартных отклонений K и D линий для генерации сигналов, она эффективно использует предсказательную силу стандартного отклонения в разных временных рамках, отфильтровывает шум рынка и улавливает преобладающий тренд. Эта стратегия имеет место для настройки параметров и дальнейших улучшений, таких как фильтры, остановки и т. Д. В целом, она интегрирует сильные стороны нескольких инструментов технического анализа и является эффективной стратегией тренда, достойной изучения и оптимизации.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Slow Stochastic Multi K&D Average Crossover Strategy", overlay=false, pyramiding=0, calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100)


price = input(close)

///////////////////////////////
smoothK = input(55) 

SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)



smoothD = input(34)
d = sma(k, smoothD)


///////////////////////////

smoothK1 = input(89) 

SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)

smoothD1 = input(55)
d1 = sma(k1, smoothD1)

//////////////////////////////////////

smoothK2 = input(144) 

SMAsmoothK2 = input(5)
k2 = sma(stoch(price, high, low, smoothK2), SMAsmoothK2)

smoothD2 = input(89)
d2 = sma(k2, smoothD2)

/////////////////////////////////////

smoothK3 = input(233) 

SMAsmoothK3 = input(3)
k3 = sma(stoch(price, high, low, smoothK3), SMAsmoothK3)

smoothD3 = input(144)
d3 = sma(k3, smoothD3)

////////////////////////////////////////////////

smoothK4 = input(377) 

SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

smoothD4 = input(233)
d4 = sma(k4, smoothD4)

/////////////////////////////////////////////////

Kavg = avg(k,k1,k2,k3,k4, k4)
plot(Kavg, color=green)

Davg = avg(d,d1,d2,d3,d4, d4)
plot(Davg, color=red)


///////////////////////////////////////
hline(50, color=gray)


long = crossover(Kavg, Davg)// and d < 50
short = crossunder(Kavg, Davg)// and d > 50


last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) 
short_signal = crossover(last_short, last_long)



strategy.entry("Long", strategy.long, when=long_signal)
strategy.entry("Short", strategy.short, when=short_signal) 

//len1 = input(3)

//closelong = d[1] < k[len1]
//closeshort = d[1] > k[len1]

//strategy.close("Long", when=closelong)
//strategy.close("Short", when=closeshort)



Больше