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. Merge Intervals 运行比较快

    class Solution { public: static bool cmp(Interval &a,Interval &b) { return a.start<b.star ...

  2. 122. Best Time to Buy and Sell Stock(二) leetcode解题笔记

    122. Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price ...

  3. Sprint3(12.18)总结

    Sprint3第三阶段 1.类名:软件工程-第三阶段 2.时间:至12.18 3.选题内容:web版-餐厅到店点餐系统 4.团队博客地址: http://www.cnblogs.com/queenju ...

  4. PHP入门教程-开发环境搭建

    1.PHP简介: PHP是能让你生成动态网页的工具之一.PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP. 2.学习需要基础: a.HTML b.Ja ...

  5. javascript鸭式辩型法实现接口

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  6. PHP对redis操作详解【转】

    /*1.Connection*/ $redis = new Redis(); $redis->connect('127.0.0.1',6379,1);//短链接,本地host,端口为6379,超 ...

  7. 【洛谷P2737】Beef McNuggets

    首先有这样一个结论:若p,q为自然数,且gcd(p,q)=1,那么px+qy不能表示的最大数为pq-p-q 那么本题中p,q均取决于最大的两个数,不妨取256,那么上界为256^2-256*2 之后就 ...

  8. SpringMVC文件上传下载

    在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...

  9. Eclipse插件收集

    //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: [在Eclipse文件列表中打开文件所在 ...

  10. 转:关于BFC的初步了解以及常见使用

    在学习CSS的过程中,掌握一些常用方法或效果实现的原理对于我们的学习来说是很有帮助的.如最常见的清除浮动和取消外边距塌陷时使用overflow:hidden;,在学习初期往往只知道有这种用法,且使用时 ...