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 (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