⑴ 如何编程从免费股票软件中提取实时数据
自己写程序的话,一种方法是从已提供的信息源,例如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'))
⑵ 股票公式编辑教程
最常见的:
1、MA(X,N),求X的N周期简单移动平均值。
算法:(X1+X2+X3+...+Xn)/N
例如:MA(CLOSE,20),表示求20日均价。
2、EMA(X,N),求X的N周期指数平滑移动平均。
算法:若Y=EMA(X,N)则Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。
例如:EMA(CLOSE,20),表示求20日指数平滑均价。
3、SMA(X,N,M),求X的N周期移动平均,M为权重。
算法:若Y=SMA(X,N,M)则Y=(M*X+(N-M)*Y')/N,其中Y'表示上一周期Y值,N必须大于M。
例如:SMA(CLOSE,20,1),表示求20日移动平均价。
这三个均线函数在股软中是通用的。关于它们的区别,开始学习时不必深究。其实数值区别也不是很大。要均线真实反映每天的价格变化,用MA,适当圆滑些,用EMA或SMA。
三、常用连接函数
有了上述基本函数,可以表述出K线和均线了,但实际应用中要复杂得多,还要一些函数把他们连接起来。
⑶ 股票软件源代码怎么用
来股票软件源码其实就是指自标公式,也就是经过其他人修改或个人自己编写的指标公式!同花顺有相应的公式源码,其他的股软也有相应的公式源码!
要想用股票软件源代码前提是你会编程,懂得代码流程和代码函数的用途你在编写个程序(反射),将软件源代码读出来,就能知道它用了哪些函数,用了哪些方法,怎样调用的这样你就不是知道了它是怎么写的,不过编写反射程序蛮麻烦,现在我还在研究当中一般软件漏洞 可以用这个方法检查出来,进行报复和修复。
⑷ 关于股票操作程序化的问题 我想在通达信交易软件内自己编程选股 从初学者学起(是电脑编程方面的)
你所说的编程是否是给指标和交易系统程序化的编写?如果是的话,以你的学历和知识,入门的东西很简单,想要精通,不怎么容易,但只要用心,有恒心是可以做到的。有关此类知识没有专门的书籍系统的介绍的,要靠自己搜寻,等有时间我用私信或网络Hi告诉你几个专业网站。
⑸ 如何学习同花顺炒股软件的指标编程
股票软件的编程是比较较简单的,
熟练使用股票软件公式管理器中的各种函数,再有就是熟练掌握,股票分析的常用技术指标,和财务指标.
可以先从改开始,先看别人是怎么编写的.最后再自己编写.
建议从通达信开始学,因为通达信公式编辑器有动态翻译,适合新手学习,通达信和同花顺,很多基础函数都是通用的,会用通达信了,转到同花顺也容易很多.
例如下图的指标就是macd的代码通达信和同花顺的截图,通达信有动态翻译,而同花顺没有.
想自学,最好的办法就是多看,打好基础,熟练掌握软件中自带的基础公式的技术指标.各种形态指标,财务指标等等.
⑹ 在股票里有时别人会给我一些编程的代码应该往哪里粘贴呢,我用的是同花顺
程序代码可以在指标自编里面添加,不同软件可能有所区别,你可以在软件帮助板块搜索或者提问。