Стратегия торговли движущейся средней от сигнала к шуму на основе количественной торговли

Автор:Чао Чжан, Дата: 2024-01-02 12:24:35
Тэги:

img

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

Стратегия торговли движущейся средней от сигнала к шуму

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

Эта стратегия реализует количественную торговлю путем вычисления соотношения сигнала к шуму за определенный период и объединения его с движущимися средними торговыми сигналами.

  1. Расчет соотношения сигнала к шуму за определенный период (регулируемый)
  2. Применение скользящей средней для сглаживания соотношения сигнал-шум
  3. Сравните текущее соотношение сигнал-шум с скользящим средним значением для получения торговых сигналов
  4. Длинный или короткий на основе торговых сигналов

III. Принцип стратегии

  1. Формула для расчета соотношения сигнал-шум (StN) такова: StN = -10*log ((Σ(1/close) /n), где n - длина периода
  2. Применять простую скользящую среднюю (SMA) к соотношению сигнал-шум для получения сглаженного StN
  3. Сравните текущий StN с сглаженным SMAStN: (1) Если SMAStN > StN, перейти на короткий (2) Если SMAStN < StN, перейти на длинный (3) В противном случае, закрытая позиция

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

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

  1. StN может оценивать колебания рынка и риск, SMA имеет возможность снижения шума
  2. Объединение StN для оценки рыночного риска и SMA для генерации торговых сигналов использует преимущества различных индикаторов.
  3. Параметры, регулируемые для адаптации к различным рыночным условиям
  4. Сигналы сдерживания напрямую указывают на длительный или короткий, интуитивно понятный подход к характеристикам рынка

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

Эта стратегия также сопряжена с некоторыми рисками:

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

Решения:

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

VI. Направление оптимизации

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

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

VII. Резюме

Эта стратегия реализует количественную торговлю, оценивая рыночный риск с помощью соотношения сигнал-шум и генерируя торговые сигналы из скользящей средней. По сравнению с едиными техническими показателями, эта стратегия объединяет преимущества как StN, так и 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)

Больше