Red de conocimiento informático - Conocimiento sistemático - ¿Hay alguna forma de comprobar las tendencias de subida y bajada de los fondos de acciones híbridas en tiempo real? Lo mismo que los fondos indexados.

¿Hay alguna forma de comprobar las tendencias de subida y bajada de los fondos de acciones híbridas en tiempo real? Lo mismo que los fondos indexados.

Utilizaré principalmente el código de acciones como ejemplo a continuación. También puedes cambiarlo a un código de fondo. ¡Presta atención en tiempo real!

Ref===>tushare

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

Estoy aprendiendo Python Recientemente, quiero aprender a negociar con acciones, así que después de aprender algunos conocimientos básicos, planeo hacer algunas demostraciones relacionadas con las acciones para practicar. El primer problema a resolver es, por supuesto, la recopilación de datos.

Busqué en Internet y leí algunos fragmentos de código de amigos y descubrí que el formato para solicitar datos de la API es más o menos 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_hist_data.py

# -*- codificación: utf-8 -*-

"""

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

@autor: jet

"""

importar constante como ct

importar pandas como pd

importar json

desde urllib2 importar urlopen,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

--------

p>

Entrada:

--------

código:cadena

Código de stock como: 601989

start:string

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

end:string.

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

ktipo: cadena (predeterminado=D, unificado automáticamente a mayúsculas dentro de la función). )

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

30=30 minutos, 60=60 minutos?

Salida:

--------

DataFrame

fecha fecha

precio de apertura abierto

precio más alto

precio de cierre de cierre

precio más bajo bajo

¿aumento o disminución de cambio?

p_chg aumentar o disminuir

ma5 precio promedio de 5 días

ma10 precio promedio de 10 días

ma20 precio promedio de 20 días

vma5 volumen promedio de 5 días

vma10 volumen promedio de 10 días

vma20 volumen promedio de 20 días

tasa de rotación de facturación ( el índice no tiene este elemento)

"""?

code = code_to_APIcode(code.upper())

ktype = ktype.upper()

url = ''?

url = get_url (ktipo, código)?

imprimir(url)

js = json. cargas(ping_API(url))

cols = []

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

cols = ct.INDEX_DAY_PRICE_COLS

else:

cols = ct.DAY_PRICE_COLS

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

si ktype en ct.K_TYPE_KEY:

df = df.applymap(lambda x:

x.replace(u',', u''))

for col in cols[1:]:

df[col]=df[col].astype(float )

si el inicio no es Ninguno:

df = df [df.date >= inicio]

si el final no es Ninguno:

df = df[df.date <= end]

df = df.set_index('fecha')

¿devolver df?

def code_to_APIcode( code):

"""

Función:

Verificar si el código de stock ingresado es correcto. Si es correcto, devolver el código de stock correspondiente a la API

"""

imprimir(código)

si código en ct.INDEX_KEY:

devolver ct.INDEX_LIST[código]

else:

if len(código) != 6:

raise IOError('¡error de entrada de código!')

else:

devuelve 'sh%s'%code si código[:1] en ['5', '6'] else 'sz%s'%code

def get_url(ktype, code) :

"""

Función:

Verificar si el tipo de línea K ingresado es correcto. Si es correcto, devolver la URL

"" "?

si ktype en ct.K_TYPE_KEY:

url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng '],

ct.K_TYPE[ktype], código)

url de retorno

elif ktype en ct.K_TYPE_MIN_KEY:

url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],

código, ktype)

URL de retorno

else:

p>

raise IOError('¡error de entrada ktype!')

def ping_API(url):

"""

Función:

Enviar una solicitud de datos a la API y devolver datos si el enlace es normal

"""

text = ''

intenta:

req = Solicitud(url)

texto = urlopen(req,timeout=10).read()?

if len (texto) < 15:

raise IOError('¡no hay datos!')?

excepto excepción como e:

print(e)

else:

devolver texto

#Entrada de prueba

print(get_hist_data('601989','2015-07-11','2015- 07-22'))