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页面


 

行情走势预测

× 使用说明

行情走势预测,输入股票代码,系统会根据回归算法对该股票走势进行预测。

1天 2天 3天
分析

结果说明:这里显示未来1-3天的各种预测值:开盘价、收盘价、最高价、最低价。

第几天 股票代码 股票名称 最高价 最低价 开盘价 收盘价


创建widget的更多相关文章

  1. qt——for循环里创建widget

    在for循环里创建 widget,比如test类 不能使用 test t; 而要使用 test t = new test(): for (i=0;i<=3;i++) { QPushButton* ...

  2. Magento 2 创建 Widget

    Widget是一个更好的工具,可以将内容插入或编辑到CMS页面块或页面中. 什么是小部件? 小部件是Magento 2配置中的强大功能.作为商店管理员,您可以利用小部件来改善生动界面下的店面.小部件允 ...

  3. Android开发之创建App Widget和更新Widget内容

    App WidgetsApp Widgets are miniature application views that can be embedded in other applications (s ...

  4. Android简易实战教程--第十四话《模仿金山助手创建桌面Widget小部件》

    打开谷歌api,对widget小部件做如下说明: App Widgets are miniature application views that can be embedded in otherap ...

  5. yii2——自定义widget

    参考资料:http://www.bsourcecode.com/yiiframework2/how-to-create-custom-widget-in-yii2-0-framework/   如何使 ...

  6. Jquery ui widget开发

    Jquery ui 提供了一些基本的widget,但是他提供了很好的机制来创建widget.在jquery css framework中包含了基本的css样式(视觉和感觉诸如颜色,字体大小,图标等), ...

  7. ThinkPHP 3.2.3 Widget 扩展的使用

    ThinkPHP3.2.3 手册中 Widget 扩展的地址是: http://www.kancloud.cn/manual/thinkphp/1862 Widget 扩展一般用于页面组件的扩展,和自 ...

  8. 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)

    使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins) Note 这一章节的内容是基于 Scott Gonzalez 一篇博客 Building ...

  9. iOS开发之构建Widget

    原文出处: 陈凯 在 jianshu 的博客(@chenkaiHome)   欢迎分享原创到伯乐头条 伴随这iOS 8 系统多达4000项API更新而来同样还有Today Extension.而对iO ...

随机推荐

  1. java 多态2

    http://www.cnblogs.com/wqq0402/p/6180685.html package test05; public class DuoTai_Test02 { /**多个对象,一 ...

  2. [Tools] Vim插件管理

    我们在使用插件的时候,都不希望插件安装的很杂乱,它不是一个看不见的黑盒,也为了下次方便在其它地方安装. 由于要方便插件管理,于是有了 Vundle,以下做些介绍: 1. 一个插件管理器, 自己本身也是 ...

  3. JSP日期时间转C#

    DateTime.ParseExact("Wed Aug 03 16:46:24 CST 2016", "ddd MMM dd HH:mm:ss CST yyyy&quo ...

  4. C# 反转字符串

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实现字符 ...

  5. filter之排除个别过滤

    1.jsp 篇 一般拦截器设置都是拦截*.action.*.jsp等,如此我们可以扩展后缀名,逃过拦截: jsp的话,可以改成.jspf后缀. ( 把一个JSP文件命名为jspf扩展名,然后inclu ...

  6. LinuxMM--Memory Pressure

    Memory pressure定义在操作系统中,用户分配.文件缓存.网卡包缓冲区等等都会消耗内存.一旦出现内存紧张就会导致memory pressure.引发当某个任务需要请求内存时就有可能引发mem ...

  7. Kubernetes1.5正式发布

    Kubernetes1.5正式发布 修复了很多已知问题 进一步增强federation相关特性 将PetSet改名为StatefulSet 将ScheduledJobs改名为CronJobs 新增了命 ...

  8. 【转】MySQL的各种timeout

    因为最近遇到一些超时的问题,正好就把所有的timeout参数都理一遍,首先数据库里查一下看有哪些超时: root@localhost : test 12:55:50> show global v ...

  9. 1293. 3n+1数链问题 2016 12 23

    /* 1293. 3n+1数链问题 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 在计算机科学上,有很多类问题是无法解 ...

  10. 自动挂载文件/etc/fstab功能详解

    今天看了这篇文章,对于自动挂载中的一些小细节和参数有了更深的理解,所以这次把它摘下来,留做查询 一./etc/fstab文件的作用 1.我们把磁盘手动挂载之后如果不把它写入/etc/fstab这个文件 ...