创建widget
1. 定义方法
def predictAll(tickers, startdt='36', enddt = 'today', predictdays = 1):
if enddt == 'today':
enddt = datetime.date.today().strftime('%Y-%m-%d') if len(startdt) < 4:
startdt = (datetime.date.today() - datetime.timedelta(int(startdt) * 365 / 12)).isoformat() result = [] for ticker in tickers:
try:
df = sdk.getHist([ticker], startdt, enddt) #.query("isopen==1")
# print df
except:
msg = 'ticker ' + ticker
# print msg
else:
dfochl = df[['open','close','high','low']].as_matrix()
x = dfochl[:-predictdays] dfh = df[['high']].as_matrix()
yh = dfh[predictdays :] dfl = df[['low']].as_matrix()
yl = dfl[predictdays :] dfo = df[['open']].as_matrix()
yo = dfo[predictdays :] dfc = df[['close']].as_matrix()
yc = dfc[predictdays :] x2 = dfochl[-predictdays:] mh = LinearRegression()
mh.fit(x, yh)
yh2 = mh.predict(x2) ml = LinearRegression()
ml.fit(x, yl)
yl2 = ml.predict(x2) mo = LinearRegression()
mo.fit(x, yo)
yo2 = mo.predict(x2) mc = LinearRegression()
mc.fit(x, yc)
yc2 = mc.predict(x2) name = df['sec_short_name'][0]
i = 0
while i < predictdays:
ret = {
'Day': 'Day ' + str(i + 1),
'Ticker': ticker,
'Name': name,
'High': str(round(yh2[i],2)),
'Low': str(round(yl2[i],2)),
'Open': str(round(yo2[i],2)),
'Close': str(round(yc2[i],2))
} result.append(ret) i += 1 return result
2. 定义接口
# GET /sensitop/api/v1/analyzers/regression import RegessionAnalyzer as regession
import logging # REQUEST = json.dumps({
# 'path' : {},
# 'args' : {'tickers':['000078,600048'], 'startdt':['2016-01-01'], 'enddt':['2016-12-30'],
# 'predictdays':['2']}
# }) def __0014__(request): logging.warning(request)
tickers = getFirstParam(request, "tickers").strip().split(',')
startdt = getFirstParam(request, "startdt")
enddt = getFirstParam(request, "enddt")
enddt = __notFuture__(enddt)
predictdays = getFirstParam(request, "predictdays")
# print tickers
return json.dumps(regession.predictAll(tickers, startdt, enddt, int(predictdays))) print __0014__(json.loads(REQUEST))
3. 定义widget接口
# GET /sensitop/widgets/predict uid = __getUId__()
template = open(__templateRootPath__ + "predict.html")
try:
html = template.read().format(endpoint = "waima.imwork.net:16301",
tickers = "__tickers__%s" %uid,
startdt = '__startdt__%s' %uid,
enddt = '__enddt__%s' %uid,
predictdays = '__predictdays__%s' %uid,
btnSubmit = "__btnSubmit__%s" %uid,
id = "__id__%s" %uid,
btnHideOptions = "__btnHideOptions__%s" %uid,
pnlOptions = "__pnlOptions__%s" %uid,
dt_basic = "__dt_basic__%s" %uid,
results = "__results__%s" %uid
)
print html
finally:
template.close()
4. 定义widget页面
行情走势预测
行情走势预测,输入股票代码,系统会根据回归算法对该股票走势进行预测。
| 第几天 | 股票代码 | 股票名称 | 最高价 | 最低价 | 开盘价 | 收盘价 |
|---|
创建widget的更多相关文章
- qt——for循环里创建widget
在for循环里创建 widget,比如test类 不能使用 test t; 而要使用 test t = new test(): for (i=0;i<=3;i++) { QPushButton* ...
- Magento 2 创建 Widget
Widget是一个更好的工具,可以将内容插入或编辑到CMS页面块或页面中. 什么是小部件? 小部件是Magento 2配置中的强大功能.作为商店管理员,您可以利用小部件来改善生动界面下的店面.小部件允 ...
- Android开发之创建App Widget和更新Widget内容
App WidgetsApp Widgets are miniature application views that can be embedded in other applications (s ...
- Android简易实战教程--第十四话《模仿金山助手创建桌面Widget小部件》
打开谷歌api,对widget小部件做如下说明: App Widgets are miniature application views that can be embedded in otherap ...
- yii2——自定义widget
参考资料:http://www.bsourcecode.com/yiiframework2/how-to-create-custom-widget-in-yii2-0-framework/ 如何使 ...
- Jquery ui widget开发
Jquery ui 提供了一些基本的widget,但是他提供了很好的机制来创建widget.在jquery css framework中包含了基本的css样式(视觉和感觉诸如颜色,字体大小,图标等), ...
- ThinkPHP 3.2.3 Widget 扩展的使用
ThinkPHP3.2.3 手册中 Widget 扩展的地址是: http://www.kancloud.cn/manual/thinkphp/1862 Widget 扩展一般用于页面组件的扩展,和自 ...
- 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)
使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins) Note 这一章节的内容是基于 Scott Gonzalez 一篇博客 Building ...
- iOS开发之构建Widget
原文出处: 陈凯 在 jianshu 的博客(@chenkaiHome) 欢迎分享原创到伯乐头条 伴随这iOS 8 系统多达4000项API更新而来同样还有Today Extension.而对iO ...
随机推荐
- Robot Framework入门学习1 安装部署详解
安装注意: 目前Robot framework-ride不支持python3,安装时请下载python2.7版本. Robot Framework安装时出现了一点小问题,网上没有找到直接的介绍,现将安 ...
- SQL存储过程删除数据库日志文件的方法
--日志文件收缩至多少M DECLARE @DBLogSise AS INT SET @DBLogSise=0 --查询出数据库对应的日志文件名称 DECLARE @strDBName AS NVAR ...
- Thinkphp去掉index.php
1.httpd.conf配置文件中 #LoadModule rewrite_module modules/mod_rewrite.so 把前面的警号去掉2.AllowOverride None 将No ...
- s1=s1+1与s1+=1的区别
刚看到一面试题,题目是这样的:short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错? 初看之下就是s1=s1+1和s1+=1的区别.在开发中我们基本上是使用后一种 ...
- 正确获得android设备的IP地址
网上此类获得android设备IP地址相关的文章有不少,有一篇是比较通用的,但有一个问题:有些设备默认的是IPv6的地址,那段代码获得的就是IPv6的地址.但这显然不是我们想要的,我们需要的是IPv4 ...
- ExtJS入门实例
一.去官网下载EXTJS包extjs5,这里采用的是5.0版本! 二.解压extjs包,找到 ext-all.js基础包(\ext-5.0.0\build): ext-all-debug.js基础包, ...
- 在idea中mybatis错误(1)
错误提示为: ### Error building SqlSession.### The error may exist in cn/qd/mybatis/map/productMapper.xml# ...
- 通过 JDBC 驱动程序使用大容量复制
Microsoft SQL Server 包含一个名为 bcp 的受欢迎的命令行实用工具,以便将较大文件快速大容量复制到 SQL Server 数据库的表或视图中. SQLServerBulkCopy ...
- Linux 常用工具小结:(5) lftp工具使用
Linux 常用工具小结:(1) lftp工具使用. 这里会按照一些比较常用的功能列出,并举一个具体的例子逐一解释功能. 通常使用ftp过程是登陆ftp,浏览ftp内容,下载ftp文件,或者上传ftp ...
- arrayLiist的四种遍历方法
package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ...