Стратегия прогнозирования цен на основе логарифма


Дата создания: 2023-12-20 14:40:23 Последнее изменение: 2023-12-20 14:40:23
Копировать: 0 Количество просмотров: 660
1
Подписаться
1621
Подписчики

Стратегия прогнозирования цен на основе логарифма

Обзор

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

Стратегический принцип

  1. Вычислите значение ROC при закрытии, положительное значение будет добавлено к volume_pos, отрицательное значение к volume_neg
  2. Вычислить разницу между volume_pos и volume_neg как net_volume
  3. Расчет стандартной разницы net_volume net_std и средней net_sma
  4. Вычислить net_sma, деленное на net_std, чтобы получить значение z
  5. Применяя ценовую оценку закрытия, 20-дневную стандартную разницу в цене закрытия и значение z в качестве параметров, введите логистическую функцию logistic для прогнозирования цены следующего цикла
  6. Продолжайте делать ставки, когда прогнозируемая цена выше текущей фактической цены в 1,005 раза, и не делайте ставки, когда она ниже 0,995 раза

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

Стратегия сочетает в себе статистическую информацию о объемах сделок и прогноз цены по логистическим функциям.

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

  1. Популярные различия в объемах торгов позволяют оценить настроения рынка.
  2. Арифметическая функция приспосабливается к кривой изменения цены, чтобы лучше прогнозировать
  3. Стратегии просты, понятны и легко реализуемы

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

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

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

Риски можно снизить следующими способами:

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

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

Эта стратегия может быть оптимизирована:

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

С помощью комбинации различных методов можно еще больше повысить стабильность и прибыльность стратегии.

Подвести итог

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

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

//@version=4
strategy("Logistic", overlay=true )

volume_pos = 0.0
volume_neg = 0.0
roc = roc(close, 1)

for i = 0 to 100
    if (roc > 0)
        volume_pos := volume
    else
        volume_neg := volume
    
volume_net = volume_pos - volume_neg
net_std    = stdev(volume_net, 100)
net_sma    = sma(volume_net, 10)
z          =  net_sma / net_std
std        = stdev(close, 20)

logistic(close, std, z) =>
    m = (close + std)
    a = std / close
    pt = m / ( 1 + a*exp(-z))
    pt
    
    
pred = logistic(close, std, z)

buy = pred > close * 1.005
sell = pred < close * 0.995

color = strategy.position_size > 0? #3BB3E4 : strategy.position_size == 0? #FF006E : #6b6b6b
barcolor(color)


if (buy == true)
    strategy.entry("Long", strategy.long, comment="Open L")
    
if (sell == true)
    strategy.close("Long", comment="Close L")