¿Existe alguna forma de comprobar el ascenso y la caída de los fondos de acciones híbridas en tiempo real? Como los fondos indexados.

A continuación utilizo principalmente el código de acciones como ejemplo, y también se puede cambiar a un código de fondo. ¡Sigue en tiempo real!

Ref = = = gtTusare

Sistema: Ubuntu 15.04 Python: 2.7 Paquete de entorno: Anaconda, solo para entretenimiento. ...

Estoy aprendiendo el lenguaje Python recientemente y quiero aprender a operar con acciones. Entonces, después de adquirir algunos conocimientos básicos, planeo hacer algunos ejercicios de demostración relacionados con las acciones. El primer problema a resolver es, por supuesto, la recopilación de datos.

Busqué en línea y leí algunos fragmentos de código de mis amigos. Sé que el formato de los datos de solicitud de API es así: ',' ifeng': 'ifeng.com'}

URL_ERROR_MSG = 'Error al obtener, verifique el estado de la red o la URL del puerto API no coincide. '

Get_history_data.py

# -*-Encoding: utf-8 -*-

"""

Creado el jueves , 23 de julio de 2007 09:15:40 2015

@author:jet

"""

Importar constantes como tipos de contacto

Importar pandas como pd

Importar json

Importar urlopen desde urllib2, solicitud

def get_hist_data(código = Ninguno, inicio = Ninguno, fin = Ninguno, ktype = 'D '):

"""

Función:

Obtener datos históricos de transacciones de acciones individuales

-

Entrada:

-

Código: Cadena

Código de stock, por ejemplo: 601989.

Inicio: cadena

Formato de fecha de inicio: cuando AAAA-MM-DD está vacío, tome los datos de fecha más antiguos proporcionados por la API

Fin: cadena

Formato de fecha de finalización: cuando AAAA-MM-DD está vacío, toma los datos del último día de negociación

Ktipo: cadena (por defecto=D, la función unifica automáticamente a mayúsculas)

Tipo de datos D=diario Línea K, W=línea K semanal, M=línea K mensual, 5=5 minutos, 15=15 minutos

30=30 minutos, 60=60 minutos p>

¿Salida? :

-

Marco de datos

Fecha Fecha

Precio de apertura

Precio más alto

Precio de cierre

Precio más bajo

¿Sube o baja Chg?

Sube o baja P_chg

Precio promedio de cinco días de Ma5

p>

Precio promedio de 10 días de Ma10

Precio promedio de 20 días de Ma20

Precio promedio de 5 días de VMA5

Promedio de 10 días de Vma

Vma20 promedio de 20 días

Tasa de rotación (este índice no tiene este elemento)

"""?

código = código _ a _ Código API(código . superior())

ktype = ktype.upper()

url=""?

url = get_url(ktipo, código)?

Imprimir(url)

js = json.loads(ping_API(url))

cols = []

if len( js['record'][0])== 14:

cols = ct.

index_day_price_column

En caso contrario:

cols = ct. Columna de precio diario

df = pd. DataFrame(js['record'], columns=cols)

Si ktype en ct. K_TYPE_KEY:

df = df . aplicar map(lambda x:x .replace(u ',',u ' '))

Para columna en columna[1:]:

df[col]=df[col]. astype (tipo de coma flotante)

Si el inicio no es Ninguno:

df = df[df date gt = start]

Si el final no es Ninguno. :

df = df[df . fecha lt;=end]

df = df.set_index('fecha ')

¿Devolver df?

def code_to_APIcode(código):

"""

Función:

Verificar si el código de stock ingresado es correcto. Si es correcto , Devuelve el código de stock utilizado por la API

"""

Imprimir(código)

El código if en ct. INDEX_KEY:

Devolución ct. INDEX _ LIST [código]

En caso contrario:

if len(código)! = 6:

Elevar IOError('¡Error de entrada de código!')

De lo contrario:

Si el código[:1] está en ['5',' 6 '] else 'szs'code, luego devuelve 'shs'code

def get_url(ktype, code):

"""

Función:

Verifique si el tipo de línea k de entrada es correcto. Si es correcto, devuelva la URL.

"""?

Si el tipo k en ct. K_TYPE_KEY:

url = ct. URL del precio diario. PAGE_TYPE['http'],ct. PAGE_DOMAIN['ifeng'],

ct. K_TYPE[ktype], código)

URL de retorno

elif ktype en el tipo de contacto. K_TYPE_MIN_KEY:

url = ct. URL de precio más bajo. PAGE_TYPE['http'],ct. PAGE_DOMAIN['ifeng'],

código,ktype)

url de retorno

de lo contrario:

raise IOError('ktype error de entrada ! ')

Definir ping_API(url):

"""

Función:

Enviar solicitud de datos a la API, si el enlace Si es normal, devuelva datos

"""

text = ' '

Pruebe:

req = request (url)

texto = urlopen(req, tiempo de espera=10).

leer()?

if len(text) lt;15:

¿Raise IOError('¡No hay datos!')?

La excepción es e:

Imprimir(e)

De lo contrario:

Devolver texto

#Test Portal

print(get _ hist _ data(' 601989 ', ' 2015-07-11 ', ' 2015-07-22 '))