Introducción de tres minutos a la cuantificación (4): análisis estadístico de datos de mercado

hola, soy edamame. Esta serie utiliza los códigos y casos más optimizados para llevarlo rápidamente a comenzar con la cuantificación, y solo habla de los productos más secos. Amigos que quieren aprender a cuantificar pero no saben cómo comenzar, ¡apúrense y léanlo!

Revisión anterior:

Introducción de tres minutos a la cuantificación (1): adquisición de datos de mercado y dibujo de gráficos de velas japonesas

Introducción de tres minutos a la cuantificación (2): Introducción a

Introducción de tres minutos a la cuantificación (3): Calcule la tasa de rendimiento

Este número continuará introduciendo cómo hacemos un análisis estadístico simple después de obtener los datos. Maodou actualizará esta serie todos los fines de semana. Se recomienda que la recopile para facilitar el aprendizaje.

1. Estadísticas de días ascendentes y descendentes

Tomemos Cambridge Technology como ejemplo y contemos sus altibajos este año.

Primero importe los paquetes relevantes y autentique la cuenta Tushare Pro.

import tushare as ts
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

pro = ts.pro_api('your token')
 
 

Obtenga los datos de mercado de Cambridge Technology desde este año, si no sabe cómo llamar a la interfaz de datos, puede leer mi publicación anterior.

df = pro.daily(ts_code='603083.SH', start_date='20230101', end_date='20230512')
df.head()

devuelve de la siguiente manera:

1. Cuente el número de

print('总计天数:{}'.format(len(df)))
print('上涨天数:{}'.format(len(df[df['close']>df['pre_close']])))
print('下跌天数:{}'.format(len(df[df['close']<df['pre_close']])))

Se imprime de la siguiente manera:

2. Contar los días positivos/negativos del stock este año

print('总计天数:{}'.format(len(df)))
print('阳线天数:{}'.format(len(df[df['close']>df['open']])))
print('阴线天数:{}'.format(len(df[df['close']<df['open']])))

Se imprime de la siguiente manera:

3. Contar el número de días y fechas en las que el stock ha aumentado más del 5% este año

df1=df[((df['close']-df['pre_close'])/df['pre_close'])>=0.05]
print(len(df1))
print(list(df1.trade_date))

Se imprime de la siguiente manera:

2. Estadísticas de crecimiento de intervalo

1. Incremento acumulativo en rango

rate1=(df.iloc[0].close-df.iloc[-1].close)/df.iloc[-1].close
print('区间累计涨幅:{}'.format(rate1))

2. El mayor aumento en el rango

#仅用于上涨个股
rate2=(max(df.high)-min(df.low))/min(df.low)
print('区间最大涨幅:{}'.format(rate2))

3. Incremento acumulado en un solo mes

Tomando abril como ejemplo, primero filtre los datos en abril:

df2=df[df.trade_date.str.contains('202304')]
df2.head()

devuelve de la siguiente manera:

Luego cuente de acuerdo con el método anterior:

rate3=(df2.iloc[0].close-df2.iloc[-1].close)/df2.iloc[-1].close
print('四月累计涨幅:{}'.format(rate3))

4. El mayor incremento en un solo mes

#仅用于上涨个股
rate4=(max(df2.high)-min(df2.low))/min(df2.low)
print('区间最大涨幅:{}'.format(rate4))

3. Estadísticas de probabilidad creciente

1. Probabilidad al alza

p=len(df[df['change']>0])/len(df)

2. Estime la probabilidad de que 3 días aumenten en los próximos 5 días

En n ensayos de Bernoulli repetidos e independientes, sea p la probabilidad de que ocurra el evento A (ascendente) en cada ensayo. Use X para representar el número de veces que ocurre el evento A en los experimentos de Bernoulli de n veces, luego la distribución discreta de la variable aleatoria X es una distribución binomial, X~B(n,p)

#scipy.stats包中的binom类对象表示二项分布
prob=stats.binom.pmf(3,5,p)
print(prob)

Imprima de la siguiente manera:

Lo anterior es todo el contenido de los productos secos de hoy. Maodou actualizará esta serie cada fin de semana y continuará compartiendo con ustedes la situación real de la estrategia cuantitativa de carga de torbellino todos los días de negociación. Bienvenidos a todos a que les gusten y sigan.

Backtest: descripción de la estrategia de carga de torbellino

Oferta Firme: Abril Datos Estratégicos Publicidad & Preguntas Frecuentes

Supongo que te gusta

Origin blog.csdn.net/weixin_37475278/article/details/130824543
Recomendado
Clasificación