В процессе загрузки ресурсов... загрузка...

CT TTM Стратегия количественной торговли, основанная на сжатии

Автор:Чао Чжан, Дата: 2023-11-15 16:06:37
Тэги:

img

Обзор

Эта стратегия использует индикатор CT TTM Squeeze для выявления ценовых тенденций и применяет последующие остановки для контроля рисков.

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

Стратегия использует индикатор CT TTM Squeeze для определения ценовых тенденций.

  • e1 - средняя точка средней полосы
  • osc - осциллятор, рассчитанный на основе разницы между ценой закрытия и e1 за период, регрессирующий линейно
  • Diff - разница между полосами Боллинджера и каналами Келтнера
  • osc_color - обозначить цвета осциллятора
  • mid_color - обозначить различные цвета

Если osc превышает 0, он отображается зеленым, что означает длинный; если osc превышает 0, он отображается красным, что означает короткий.

Когда ОСК положительный, идет длинный; когда ОСК отрицательный, идет короткий.

Стратегия использует осциллятор OSC для определения направления тренда и дифф для измерения длинного/короткого импульса.

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

Стратегия имеет следующие преимущества:

  1. Использование CT TTM Squeeze для определения тенденций имеет относительно высокую точность. CT TTM Squeeze всесторонне рассматривает скользящие средние, полосы Боллинджера и каналы Келтнера, которые могут эффективно идентифицировать тенденции цен.

  2. Применение осциллятора для определения длинных/коротких сигналов позволяет избежать ложных сигналов в зонах, где не наблюдается тренд.

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

  4. Стратегия имеет несколько параметров и легко оптимизируется.

  5. Различные цвета используются для различения длинных/коротких сигналов и силы, визуально представляя суждения о тренде.

Анализ рисков

Стратегия также имеет следующие риски:

  1. CT TTM Squeeze может генерировать ложные сигналы в определенных рыночных условиях, что приводит к торговым потерям.

  2. Дивергенция в осцилляторе может привести к неправильным торговым сигналам.

  3. Чрезмерно агрессивные остановки могут привести к ненужным потерям.

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

  5. Чрезмерная оптимизация может привести к настройке кривой. Следует позаботиться о том, чтобы избежать перенастройки при оптимизации параметров.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих аспектах:

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

  2. Добавить модули оптимизации стоп-потери для более интеллектуальных остановок.

  3. Оптимизировать управление деньгами путем тестирования фиксированной дроби, формулы Келли и т. Д. Это может улучшить эффективность использования капитала, обеспечивая при этом риск по торговле.

  4. Уточнение параметров для конкретных продуктов для улучшения адаптивности.

  5. Добавьте алгоритмы машинного обучения для адаптивного обучения. Использование RNN, LSTM и т. Д. может улучшить адаптивную способность стратегии.

Заключение

Эта стратегия использует CT TTM Squeeze для определения направления тренда, осциллятор пересекает 0 в качестве сигналов входа и отслеживает остановки для управления рисками. Ее преимущества заключаются в высокой точности, легкой оптимизации, но существуют риски, такие как отказ индикатора, слишком тесные остановки.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("CT TTM Squeeze") 
length = input(title="Length",  defval=20, minval=0) 
bband(length, mult) =>
	sma(close, length) + mult * stdev(close, length)
keltner(length, mult) =>
	ema(close, length) + mult * ema(tr, length)
	
	
// Variables
e1 = (highest(high, length) + lowest(low, length)) / 2 + sma(close, length)
osc = linreg(close - e1 / 2, length, 0)
diff = bband(length, 2) - keltner(length, 1)
osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : osc[0] >= 0 ? #009b9b : #ff9bff
mid_color = diff >= 0 ? green : red

// Strategy

long = osc > 0
short = osc < 0

if long
    strategy.entry("Long", strategy.long)

if short
    strategy.entry("Short", strategy.short) 


plot(osc, color=osc_color, style=histogram, linewidth=2)
plot(0, color=mid_color, style=circles, linewidth=3)


Больше