‘壹’ 如何用python获取股票数据
在Python的QSTK中,是通过s_datapath变量,定义相应股票数据所在的文件夹。一般可以通过QSDATA这个环境变量来设置对应的数据文件夹。具体的股票数据来源,例如沪深、港股等市场,你可以使用免费的WDZ程序输出相应日线、5分钟数据到s_datapath变量所指定的文件夹中。然后可使用Python的QSTK中,qstkutil.DataAccess进行数据访问。
‘贰’ 想要开发一个股票交易软件 需要怎样获取实时数据 数据接口
惠德赢策 大家记住了啊,这个垃圾公司老板叫:祝清。公司内部垃圾就算了,公司出的产品都是骗人的,还有他们开发的一个模拟炒股的网站要交钱才能炒股,都是骗人的,大家千万别上当受骗,这家公司老板超级卑鄙,合伙别人把他原来的公司给搞垮自己开公司,不过心在自己公司也快倒闭了,员工工资都发布出来了,哈哈,真鸡-巴爽呀,那个B儿子真没话说了。
我就是受害者呀,喷血相告,切记呀
‘叁’ 在编程中如何能能获得股票的数据 例如当前价,最高价,最低价,当前成交量等等
要看使和什么数据了,每个软件数据的存储格式不同,有的还是加密存储的(如指南针)。
以常见的钱龙数据来说吧(钱龙是最简单的存储格式)当前价,最高价,最低价,当前成交量等等都是以随机文件存储的长整型数据。下面是读取钱龙数据的C源码,你可以参考一下:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct { ------->定义数据类型
unsigned long date; ------->定义日期为长整
unsigned long open; ------->定义开盘为..
unsigned long high; ------->定义最高为..
unsigned long low; ------->定义最低为..
unsigned long close; ------->定义收盘为..
unsigned long travl; ------->定义成交量..
unsigned long traca; ------->定义成交额..
char unuse[12];
} RECORD;
RECORD reco;
int readrec(FILE *);
void main()
{
FILE *fp;
if((fp = fopen("000001.day","rb")) == NULL) // 打开深发展日线
{ printf("Error: Can't open 000001.DAY !\n");
exit(0); }
readrec(fp);
fclose(fp);
if(getch()==0) getch();
exit(0);
}
int readrec(FILE *fp)
{
float fn;
while (! feof(fp)) {
fread(&reco,sizeof(RECORD),1,fp);
printf("%10lu ",reco.date);
fn=float(reco.open)/1000;
printf("%8.2f ",fn);
fn=float(reco.high)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.low)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.close)/1000; .
printf("%8.2f ",fn); .
printf("%8lu ",reco.travl); .
printf("%8lu\n",reco.traca);
}
printf("\n");
return 0;
‘肆’ 如何编程从免费股票软件中提取实时数据
自己写程序的话,一种方法是从已提供的信息源,例如webservice获取数据。还有种办法就是去连接提供即时信息的网页硬解析。
代码举例如下:
Created on Thu Jul 23 09:17:27 2015
@author: jet
"""
DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20', 'turnover']
DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'
INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']
INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300',
'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}
INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20']
K_TYPE_KEY = ['D', 'W', 'M']
K_TYPE_MIN_KEY = ['5', '15', '30', '60']
K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}
MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s'
PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}
PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}
URL_ERROR_MSG = '获取失败,请检查网络状态,或者API端口URL已经不匹配!'
get_hist_data.py
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 23 09:15:40 2015
@author: jet
"""
import const as ct
import pandas as pd
import json
from urllib2 import urlopen,Request
def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
获取个股历史交易数据
--------
输入:
--------
code:string
股票代码 比如:601989
start:string
开始日期 格式:YYYY-MM-DD 为空时取到API所提供的最早日期数据
end:string
结束日期 格式:YYYY-MM-DD 为空时取到最近一个交易日数据
ktype:string(default=D, 函数内部自动统一为大写)
数据类型 D=日K线,W=周K线,M=月K线,5=5分钟,15=15分钟
30=30分钟,60=60分钟
输出:
--------
DataFrame
date 日期
open 开盘价
high 最高价
close 收盘价
low 最低价
chg 涨跌额
p_chg 涨跌幅
ma5 5日均价
ma10 10日均价
ma20 20日均价
vma5 5日均量
vma10 10日均量
vma20 20日均量
turnover换手率(指数无此项)
"""
code = code_to_APIcode(code.upper())
ktype = ktype.upper()
url = ''
url = get_url(ktype, code)
print(url)
js = json.loads(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'], columns=cols)
if ktype in ct.K_TYPE_KEY:
df = df.applymap(lambda x:x.replace(u',', u''))
for col in cols[1:]:
df[col]=df[col].astype(float)
if start is not None:
df = df [df.date >= start]
if end is not None:
df = df[df.date <= end]
df = df.set_index('date')
return df
def code_to_APIcode(code):
"""
功能:
验证输入的股票代码是否正确,若正确则返回API对应使用的股票代码
"""
print(code)
if code in ct.INDEX_KEY:
return ct.INDEX_LIST[code]
else:
if len(code) != 6:
raise IOError('code input error!')
else:
return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%code
def get_url(ktype, code):
"""
功能:
验证输入的K线类型是否正确,若正确则返回url
"""
if ktype in ct.K_TYPE_KEY:
url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
ct.K_TYPE[ktype], code)
return url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
raise IOError('ktype input error!')
def ping_API(url):
"""
功能:
向API发送数据请求,若链接正常返回数据
"""
text = ''
try:
req = Request(url)
text = urlopen(req,timeout=10).read()
if len(text) < 15:
raise IOError('no data!')
except Exception as e:
print(e)
else:
return text
#测试入口
print(get_hist_data('601989','2015-07-11','2015-07-22'))
‘伍’ 怎么获取股票数据c++ api
基本都是自己封装CTP接口,程序端实现多账户、多策略的行情信号接收和委托提交/回报处理。也可以用 QuantBox/QuantBox_XAPI · GitHub 这样的封装的比较好、多接口统一API的项目直接整合到程序化平台的项目中使用。
通过程序接口用证券、期货账号登录后订阅品种的行情,证券、商品期货、股指期货、期权(全真模拟,9号就有实盘行情)都可以接收交易所的快照数据(例如商
品、股指都是500ms一个快照,数据结构也比较完整)。然后交易平台可以把行情数据广播给各个策略程序,程序根据量化策略的逻辑判断是否下单?挂单的方
式如何?挂单失败是否追单?如何追单?
策略程序判断要下单,则提交指令到程序化交易平台,平台把各个帐号各个品种中策略的逻辑持仓汇总为实际持仓,然后通过接口提交委托,并且处理委托回报。
行情数据一方面广播给策略程序,一方面自己存数据库,存下来的数据通过完整性检测后,可以自己合成低频率的数据,如
1分钟、30分钟、1小时、日度等等,这些数据会被用于策略回测,也可以用于市场微观结构的观察和研究,例如可以通过优化挂单方式来降低交易滑点。
Matlab可以做一些回测,实盘可能是比较不易用的。一般可以用C++, Java, C#来利用CTP程序化交易接口实现实盘平台,策略研究推荐用R做数据分析、统计、处理、可视化、策略分析、自动报告,用Rcpp(R调用C++)或者直接C++实现高性能回测,用单机并行或集群实现批量回测。
‘陆’ 如何获得股票行情数据,自己编程处理进行数据挖掘
一般以微软办公室软件的试算表就可以完成编程和数据分析;
‘柒’ java 如何实现 获取实时股票数据
一般有三种方式:
网页爬虫。采用爬虫去爬取目标网页的股票数据,去GitHub或技术论坛(如CSDN、51CTO)上找一下别人写的爬虫集成到项目中。
请求第三方API。会有专门的公司(例如网络API市场)提供股票数据,你只需要去购买他们的服务,使用他们提供的SDK,仿照demo开发实现即可。如下图所示:
‘捌’ 股票软件如何开发的用什么语言数据的获得方式
K-JAVA功能可以做移动商务、移动办公 、信息点播、股票、外汇、地址簿、日历、文件管理 、天气预报等;
股票软件使用的是JAVA语言,该可以跨平台运行,软件开发商可以很容易的开发应用程序;股票行情软件是基于Java计算机编程语言上的,也就是K-JAVA即J2ME软件平台,专门用于嵌入式设备的JAVA软件。
Java包含了一种计算机编程语言和一个平台,随着K-Java技术的不断完善与发展,发展商们将对具有K-Java功能的手机用户提供更还更全面的服务。如: 互动游戏、互动新闻 、增强手机连接到无线网络后进行数据交换的安全性、 载以Java语言写成的内容、遥控家用电器。
软件开发商以K-Java编程语言为手机开发应用程序,可以提供,游戏,个人信息处理,股票,电子地图等服务程序。 Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。