Количественная торговая стратегия, основанная на соотношении сигнал/шум и скользящей средней


Дата создания: 2024-01-02 12:24:35 Последнее изменение: 2024-01-02 12:24:35
Копировать: 1 Количество просмотров: 868
1
Подписаться
1621
Подписчики

Количественная торговая стратегия, основанная на соотношении сигнал/шум и скользящей средней

Название стратегии

Стратегия движущейся средней торговли (Signal-to-Noise)

Обзор стратегии

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

  1. Вычислить сигнал-шумное соотношение на определенный цикл
  2. Применение коэффициента шума для сглаживания
  3. Сравнение текущего коэффициента шума с средним линейным значением для получения торгового сигнала
  4. По торговому сигналу - плюс или пустота

Третье: принципы стратегии.

  1. Формула расчета Signal to Noise Ratio (SNR) - StN = -10*log(Σ(1/close)/n) где n - длина цикла
  2. Применение простого скользящего среднего ((SMA) получает гладкий сигнал-шум
  3. Сравнение текущего коэффициента StN и коэффициента SMAStN: (1) Если SMAStN > StN, пустота (2) Если SMAStN < StN, сделайте больше (3) Ликвидация в противном случае

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

Основные преимущества этой стратегии:

  1. Уровень доверия и шума определяет рыночные колебания и риски, SMA имеет функцию отключения шума
  2. Выработка торговых сигналов, используя преимущества различных индикаторов, в сочетании с SMA для оценки рыночного риска
  3. Устройство стратегии корректировки параметров в соответствии с различными рыночными условиями
  4. Stdout сигналы указывают на дополнительное коучинг, интуитивно оценивая рыночные характеристики

Пятое: стратегический анализ рисков.

Однако эта стратегия также несет в себе некоторые риски:

  1. Риск ошибки в оценке соотношения шума и средней линии
  2. Неправильная установка цикла может привести к ложному сигналу
  3. Относительно небольшие шансы на побег, оптимизируемые с помощью параметров
  4. Внезапные события приводят к сильным колебаниям, которые могут привести к остановке.

Решение риска:

  1. Настройка среднелинейных параметров для предотвращения чрезмерного сглаживания
  2. Оптимизация циклических параметров для тестирования адаптивности на различных рынках
  3. Условия для купона были изменены, чтобы предоставить больше возможностей для купона.
  4. Настройка стоп-лосса для контроля максимальных потерь

Шестое: оптимизация стратегии

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

  1. Тестирование использования более типов сочетаний с равнолинейными
  2. Повышение риска сдерживающих механизмов
  3. Добавление управления позициями, корректировка позиций в зависимости от колебаний
  4. Повышение стабильности стратегии с использованием большего количества факторов оценки
  5. Автоматическая оптимизация параметров с помощью методов машинного обучения

VII. Заключение

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

Исходный код стратегии
/*backtest
start: 2023-12-25 00:00:00
end: 2023-12-29 10:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HPotter 05/01/2021
// The signal-to-noise (S/N) ratio. 
// And Simple Moving Average.
// Thank you for idea BlockchainYahoo
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors. 
////////////////////////////////////////////////////////////
SignalToNoise(length) =>
    StN = 0.0
    for i = 1 to length-1
        StN := StN + (1/close[i])/length
    StN := -10*log(StN)

strategy(title="Backtest Signal To Noise ", shorttitle="StoN", overlay=false)
length = input(title="Days", type=input.integer, defval=21, minval=2)
Smooth =  input(title="Smooth", type=input.integer, defval=7, minval=2)
reverse = input(false, title="Trade reverse")
StN = SignalToNoise(length)
SMAStN = sma(StN, Smooth)
pos = iff(SMAStN[1] > StN[1] , -1,
	   iff(SMAStN[1] < StN[1], 1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )
plot(StN, title='StN' )
plot(SMAStN, title='Smooth', color=#00ff00)