如何使用组策略阻止ipLua编写自己的策略

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
点击阅读原文
NGINX 负载均衡策略之「快者优先」的 Lua 实现
日 发布,来源:
本文转载自:https://blog.jamespan.me//fastest-first-load-balancer-for-nginx-with-lua/
最近我在 NGINX 上实现了一个负载均衡策略,优先使用「响应时间最短」的后端服务。说是 Nginx 其实并不太准确,因为我实际上是使用了 Openresty 中打包进 NGINX 的许多模块才能实现的,所以说是基于 Openresty 实现更为准确。
「快者优先」的 Lua 实现作为我的 Nginx 配置的一部分,可以从
获得。在 Lua 之外,我们还需要两个全局的 Key-Value 缓存作为调整负载策略的数据基础,配置方式详见我的 NGINX 站点配置blog.jamespan.me。
为了实现这个负载均衡特性,我对
做了修改,增加了修改 upstream server 的权重的 Lua API,详见
「快者优先」负载均衡策略其实是一种「负载不均衡」策略,投射到现实中,就仿佛一个人表现得越能干,最后他需要干的活就越多,直到某一天不堪重负。我正在尝试用 C 写一个 NGINX 模块来实现这个「快者优先」策略,出于上述的脑洞,我决定把这种策略命名为 labor。当我完成这个模块之后,我们就可以像下面这样轻松地使用它,而不必对站点配置造成侵入性的修改了~
upstream backend {
server back1.example.
server back2.example.
是的,我又在折腾博客了。
我手动把博客的 Docker 镜像部署到了我的两台 ECS 上,然后把这两个新部署的容器纳入博客的后端列表,于是我就发现一个由于网络延迟带来的有趣问题。
不用想都知道,Nginx 把流量反代到跟自己在同一台 ECS 的后端,能实现最短的响应时间,DOMContentLoaded 耗时在 500ms 以下。如果把流量反代到 Github 或者 DaoCloud,也能勉强实现秒开,DOMContentLoaded 在 800ms 到 1200ms 之间。如果反代到了另一台 ECS,那就悲剧了,DOMContentLoaded 差不多 3000ms。
比较朴素的解决方案其实蛮简单的,给位于不同主机的 Nginx 写不同的配置,把其他主机的后端设置为 backup,把当前主机的后端权重加大即可。但是,我的 Nginx 是用 Docker 部署的,而且把配置打包进了镜像,如果想要不同的主机使用不同的配置,要么把配置单独挂载,要么搞两个镜像。
如果把配置单独挂载,使用 Docker 去部署 Nginx 就失去了意义,和直接部署基本没啥两样,还把重新加载配置弄得麻烦了。如果搞两个镜像,那是更不可接受的,基本一样的配置维护两份,想想都醉了。有没有高端解决方案,让我能用一份配置解决问题?
解决方案应该就在负载均衡策略上。之前我用的是默认的轮询策略 round-robin,更早的时候还用过 ip_hash。从官方文档「
」中,我发现了一个叫 least_time 的策略,基本上就是我想要的。然而它作为一个「高级负载均衡算法」,是商业版本的 NGINX Plus 专供,并不包含在开源版本的 NGINX 中 [1] 。噢,万恶的资本主义。
那么问题来了,既然这个「快者优先」的策略我这么想要,既然我不愿意花钱买 NGINX Plus,我能否自己实现一个?
当然能实现啦,我这么厉害的(捂脸逃
之前在北京的 Velocity 上听过王院生关于 Openresty 的分享,当时我就觉得这是一个了不起的项目。正好这次我就拿来用了。
做为产品狗的我,对作为程序猿的我说,「实现一个负载均衡策略,优先使用最快的后端」。
作为程序猿的我,对作为产品狗的我说,「滚」。
怎么设计一个「快者优先」的负载均衡策略呢?首先定义什么叫「快」。NGINX 自带一个全局变量 ,记录了 NGINX 完整接收某个或者某几个后端的响应的耗时。虽然没那么严谨,我认为 upstream_response_time 相对较小的那个后端相对较快。
其次定义什么叫「优先」。NGINX 默认的 round-robin 策略中,我们是可以给 server 指定
的。这次比较严谨,我认为 server 的 weight 值越大则越优先。
我可以在 round-robin 的基础上,实现「快者优先」。
于是我们就得到了「快者优先第一定律」:对于 upstream 中的 server,响应时间越大则权重越小。
当我们把大部分的流量引导到曾经响应最快的那个后端之后,这个后端的负载势必要比其他的后端更高,甚至可能失败请求。还好 NGINX 能够感知后端失败并故障转移。假如 NGINX 已经为某个后端标记为失败,「快者优先」却还因为它曾经牛逼过,而把流量优先引导过去,似乎不太合适。
但是一旦某个后端不可用,就直接标记为下线也不合适,如果过一会它自动恢复了,还得重新把它标记上线,挺麻烦的。把不可用的后端的权重降到一个比较低的水平,看起来应该是个不错的选择,毕竟偶尔还可以去尝试请求一下,万一恢复了呢?
于是我们就得到了「快者优先第二定律」:对于不可用的后端,自动降低权重至比较小的数值,比如 1。
当我们为后端服务器算出了一套权重规则之后,是否需要更新它?需要。
我们应该在什么时机去更新这套权重规则?应该更新哪些内容?考虑到更新权重是一个比较重的操作(我瞎说的),每次请求都去更新权重似乎不太合适。我们需要一个或多个更新触发条件,比如当某个后端的响应时间的波动超出某个阈值,比如当前响应时间超出当前权重规则被设定时候的最大耗时,或者小于最小耗时之类的。
通过这样一套触发条件,我们就能使得在后端响应时间不出现剧烈变化的时候,权重规则保持稳定,出现剧烈变化的时候,能够第一时间调节权重,一定程度上保护后端服务器。
于是我们就得到了「快者优先第三定律」:在合适的时机更新权重规则,在保护后端服务器的同时尽量保持权重规则稳定。
之前学习机器学习的时候,有一个概念叫做「局部最优解」,其实就是求解的时候陷入了极值点无法自拔,找不到就在不远处的最值点。
在寻找最快的后端时,也需要注意不要陷入「局部最优解」,至少要有一种策略,能够找到后端服务器中响应最快的那个。找到最快的服务器需要的平均请求次数,就成了衡量负载均衡策略优劣的指标之一。
于是我们就得到了「快者优先第四定律」:确保最终能够发现响应最快的服务器。
Talk is cheap, show me the code.
反正一开始我就已经 show code 了,这里就光说不练。
一开始的时候,「快者优先」策略还只是一个盘旋在我脑海的想法。为了在最短的时间内把想法实现,做出原型,用 C 直接写 NGINX 模块是不靠谱的,至少对我来说难度太大。感谢 agentzh 大大和 Openresty 社区的出色工作,我们可以用 Lua 对 NGINX 编程。
虽然知道可以用 Lua 之后难度降低了许多,但是我还是没用过 Lua。
「用一个完全没用过的语言写一个能用的软件是怎样的体验?」
「仿佛回到了大学一年级那开始刚学编程的年月。我想起那天夕阳下的奔跑,那是我逝去的青春。」
一番探索之后发现了 Openresty 中的 lua-upstream-nginx-module 提供了一些操作 upstream 配置的 API,以读为主,唯一的写操作是把某个后端下线。这可完全不够用。于是我只好自己动手去修改代码了,依葫芦画瓢增加了几个 API 去支持修改 server 的 weight , effective_weight ,和 current_weight 这三个属性。
之后的开发和调试就是摸索着用 Lua 在 NGINX 里面实现上面的那「快者优先四大定律」,以及在 log_by_lua 和 log_by_lua_block 的各种小问题中挣扎,最后发现还是直接写 Lua 文件,再用 log_by_lua_file 来调用最靠谱。
一些有趣的东西
最后,分享一下我用来打包 Openresty 的
,这里面有一些有趣的东西。
一上来我就先安装好几个软件。前面三个都是 Openresty 的运行依赖,唯独 perl 是编译依赖。不要问我为什么,也许是 agentzh 大大太擅长用 perl 的缘故吧~
apk add openssl pcre libgcc perl
之后就是下载 Openresty 的源码并解压,然后下载被我修改过的模块去替换原有的模块。紧接着就是一大串编译前的 configure。
其实当我们不知道如何编译一个软件包的时候,可以先去发行版的软件仓库里面看看这个软件包的构建脚本,比网上分享的各种「编译安装 XXX」要靠谱的多。比如 Alpine Linux 的
另外一个有趣的点,是关于 Docker 的日志收集机制。我们平时写的应用什么之类的,基本上都是直接把日志打到指定文件中,NGINX 也不例外,有相对固定的日志目录和日志文件。但是 Docker 只采集输出到标准输出和标准错误的信息,这就比较蛋疼了,也因此出现了一些适配方案。
第一种比较挫的是修改启动命令为一个自定义的脚本,用 tail 在后台去跟踪日志并输出到标准输出,最后再启动应用。第二种换汤不换药但是稍微不那么挫,有人用 Golang 写了个叫
的程序,效果类似于自定义脚本,但是总算可以直接写在 Dockerfile 的 CMD 里面而不用引入额外的脚本了。
后来我不知道从哪个 Dockerfile 里面看到一种让人惊艳的写法,直接把标准输出软链指向日志文件,这样 NGINX 的日志就直接输出到标准输出了,还不用担心运行久了之后大量日志堆积在容器里面之类的问题。
# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.logRUN ln -sf /dev/stderr /var/log/nginx/error.log
一开始需要编译 Openresty 的时候,我先尝试在本地构建,结果卡在下载编译器以及编译依赖了,死活下载不下来,真是捉急。于是我灵机一动,直接把准备编译环境那部分的 Dockerfile 提交到 Github,然后灵雀云就开始自动构建。构建整个镜像花了十几分钟,构建完成之后我直接下载镜像,就有了一个可用的编译环境了,我 TM 太机智了!
关注微信公众号:PHP技术大全
PHPer升级为大神并不难!
我要该,理由是:
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)点击这里,将文章分享到自己的动态
lua浅浅入门了解一下
函数篇:返回第二个字符串在第一个字符串中开始和结束的下标s, e = string.find(&www.runoob.com&, &runoob&) print(s, e)5&&&&10传#会返回总数 &,传后面的任意一个参数,返回其后所有参数print(select(&#&,34,3,43,4,3)); & 返回5 & 返回后面参数个数将字符串全部转化为大写:string.upper(str);将字符串全部转化为小写:string.lower(str);替换($string,将被替换的,代替品,替换次数)string.gsub('aaaa','a','x',3);结果 &xxxa反转: string.reverse(&liuxiaosen&);计算字符串长度: string.len();string.byte('liu'); & 结果大于127则为中文、小于127为字母复制指定次数:string.rep('liu',3); &liuliuliuarr = {'liu','xiao','sen'};将数组连接成为字符串table.concat(arr); & == & & liuxiaosentable.concat(arr,'#'); & == & & liu#xiao#sentable.concat(arr,'#',2,3); &== & xiao#sen向数组中插入或者移除元素table.insert(arr,'shi'); == & {'liu','xiao','sen','shi'} & & &数组末尾插入table.insert(arr,2,'shi'); & == &{'liu','shi','xiao','sen'} &数组指定地方插入table.remove(arr); &== & {'liu','bao'} & & &移除数组末尾元素数组排序 & &table.sort();打开文件: & & io.open(file);输出文件的第一行: io.read();关闭打开的文件: io.close(file);基础篇:使用#来计算字符串长度print(#&www&) & & 3连接字符串用 ..运算符: &等于:== & & & & and不等于:~= or&调用模块 & require(&module&)语法篇:nil作比较时应加上双引号:& type(X)nil& type(X)==nilfalse& type(X)==&nil&true当变量个数和值的个数不一致时,Lua会一直以变量个数为基础采取以下策略:a. 变量个数 & 值的个数 & & & & & & 按变量个数补足nil & &b. 变量个数 & 值的个数 & & & & & & 多余的值会被忽略a, b, c = 0print(a,b,c) & & & & & & --& 0 & nil & nila, b, c = 0, 0, 0print(a,b,c) & & & & & & --& 0 & 0 & 0table.insert(one,'shi');table.insert(one,2,'ge');table.remove(one);print(table.concat(one));print(table.concat(one,'#'));print(table.concat(one,'#',2,3));
若觉得本文不错,就分享一下吧!
评论加载中...
看过此文的用户,还看了以下文章
正在加载中
PHP开发工程师
作者相关文章【Lua语言零基础入门教程】第6课:Lua循环语句及表(一)_腾讯视频
三倍流畅播放
1080P蓝光画质
新剧提前看
1080P蓝光画质
纯净式无框播放器
三倍流畅播放
扫一扫 手机继续看
下载需先安装客户端
{clientText}
客户端特权:
3倍流畅播放
当前播放至 {time}
扫一扫 手机继续看
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要有没有做量化交易系统分析程序的
22:32:10 +08:00 · 15725 次点击
我花费了很大时间做了一个中国股市市场分析软件,能够对股票进行预测,期间发现了很多问题,由于没有最初是数据源,只好各大网站把数据,但是发现腾讯,新浪,搜狐,yahoo的数据并不是全部准确,他们这是要闹哪样,对数据对了半天,有些是历史数据,尤其是腾讯的数据,大盘的数据居然个别地方查了一大部分,看来说设么数据挖掘,说什么数据处理,什么大数据,最基本的数据的准确性必须做到无误才能够进行数据分析。苦了写了半天的代码,结果发现数据都是错的~有没有做数据分析系统的,类型金融分析程序的童鞋可以出来交流一下~,目前就我一个人在写这个程序,算法写了很多,还差几个牛逼的算法,我的股票收益率还是不错滴,有个模拟测试的账户,随便玩玩的,就是没怎么认真。前面交易很频繁,后面久没有怎么交易了,我的模拟账户:做量化投资分析的可以跟我联系,或者懂得R语言的也行哦我想把这个做成产品~邮箱:
第 1 条附言 &·&
23:35:48 +08:00
其实我想把这做成推送给散户来用,毕竟散户都在赔钱,不赚钱,也不懂得止损,所以会更亏钱。目前就是前期搞好股票筛选系统,保证成功率在90%以上就能够盈利,有些事系统性风险,不能把控,比如说有的股票会出现突发性新闻,突发性的停牌和较长周期的停牌。有些政策性风险很难把控。交易系统的其实很容易。如果我选的这些股票90%都能赚钱,那么每个争取第一天入手第二天卖出基本都能盈利。但是有些股票筛选的毕竟是有风险性的。
第 2 条附言 &·&
15:26:54 +08:00
迎大家要求每天开始推荐股票验证。推荐期间为两周时间。明天开始。每晚10点以后放出。每天只有五只股票
100 回复 &| &直到
15:06:41 +08:00
& & 22:52:26 +08:00
可以看一看 交易开拓者,目前市场上专业的工具之一.
太多的专业性的方法,个人去做,不一定做的很好.
并且要有相关的工作经验以及操盘经验,这不是简单的模拟可以达到了.
写成一个自动的模型,并且要把模型中的参数调优,是非常的难的事.
不同的品种,不同的时间线操作,也有不同的策略.
非常的难,长久的赚钱,更难.
& & 22:58:31 +08:00
@ 我觉得还可以啊,并且组合多种算法多种策略~
& & 22:59:58 +08:00
@ 并且我的实际账户也都是在赚钱~
& & 23:06:12 +08:00
关注下。我有个前同事在做这个。
& & 23:20:57 +08:00
@ 很多的人做模拟时,都是赚钱的,实盘上,就不如模拟操作那么顺利.
还和资金总是有关.
& & 23:24:05 +08:00
@ 我做的就类似于通过算法推送改股票是否会上涨,因为每个股票都会到一定期间上涨,通过波段分析股票趋势,所以我能够很快在底部把握住个别的股票~
& & 23:25:30 +08:00
@ 我做的就好比是傻瓜选股神器,
& & 23:33:28 +08:00
你需要什麼樣的數據源? 分比? 分時? 日線?
& & 23:41:11 +08:00
想法很好,但是这个复杂度不是一般的。
PS: @ 请发表下获奖感言吧
& & 23:44:50 +08:00
Level2的数据都要好多钱的.
网站上的那些数据不知道慢了多少了.
& & 00:11:19 +08:00
@ oo,主力是仅仅一部分,但是主力有时候仅仅是在加仓,并没有达到真正开始上涨的趋势。
& & 00:15:42 +08:00
r语言指的是ruby?
& & 00:20:13 +08:00
& & 00:28:54 +08:00
& & 04:49:38 +08:00
lz我虽然在华尔街实习过但是量化啥的没做过,做网站搭后台什么倒是不含糊。有合作可能么?
& & 06:22:01 +08:00 via Android
我用iqfeed
数据源这个东西还是越贵的越好…
& & 08:32:26 +08:00
推荐你看看酷壳的那篇冰与火的文章。里面有一句非常的精辟。做挖掘之前首先你要洗数据,很多很多的数据都是脏的,不完整或者不够精确的。而这个东西常常需要你不停的人肉,不停的改进过滤算法。
& & 10:22:52 +08:00
--最近正好公司正准备上线这样的软件。选择的是大智慧的DTS(龙软策略交易系统),我刚从软件公司那边培训回来,分享一些有用的信息。
---使用LUA做策略脚本编写语言
---有指标和各种数据的查询API,数据信息还算是比较强劲
---绑定券商交易账号后,支持策略触发自动交易
---有matlab接口,支持M函数
---可以通过编写XML自定义前台界面
--缺点有
---软件还未达到精工细作的程度,经常会出现各种小问题
---文档支持较差
--简单想到的就这么多,欢迎交流。
& & 10:31:58 +08:00
@ 我不喜欢用matlab,好臃肿的赶脚。其实我想做成产品,给散户推荐股票。
& & 11:55:27 +08:00
LZ说的算法是指计算概率吗?趋势分析什么的?
& & 12:18:05 +08:00 via iPhone
@ 概率根本就不靠谱
& & 12:38:58 +08:00
@ 你的年化收益率是多少?
& & 13:10:24 +08:00
@ 刚开始做,月收益能稳定在30%左右,有时候能把握住强势个股~
& & 13:31:27 +08:00
@ 30%?够NB的?量化我不太懂,但我觉得你研究历史数据终究还属于统计套利,那不还是在研究概率吗?只不过你的模型跟先进,概率更高?可以这么理解吗?
& & 13:35:53 +08:00
@ 不研究概率,就研究趋势
& & 13:39:16 +08:00
@ 我理解趋势也是概率,你只能说未来趋势可能朝哪个方向,但你不能100%肯定,否则你的模拟交易不应该有亏单
& & 15:07:49 +08:00
通达信有全套的数据,需要做一些逆向。
& & 17:31:44 +08:00
@ 那实际上你做的只是选股算法。如果只做算法的话,没必要自己写一个专门的软件,通达信万德之类的都可以自己写函数。
& & 18:36:55 +08:00
@ 那你写过函数没有?
& & 20:26:01 +08:00
楼主如果自己玩票,那就算了,怎么High怎么来。
如果想专业做量化交易产品拿出去卖,并不容易。精确的行情数据是一大难点,从网页上抓的数据当然不靠谱,这种数据用来做产品,效果无保证。
自动化交易,也有专门的Fix协议:
刚搜了下,国内提供此接口的券商不多,这里有一家:
做软件的有一家金仕达
大智慧的DTS交易所端接口,应该也是Fix的,但客户端就不一定。虽然在海外Fix地位如同Http一样基础,在国内却不一定通行于各家券商,这样可控制的下单账户就非常有限,需要各种奇葩方法一一搞定,于是你只能依靠大智慧、金仕达这样专业厂商提供的交易接口。
实际上你做的不是量化交易系统,我听说这东西,都是用多个券商的N个账户一起上,而且需要T+0、可做空,才能够稳定套利。
你做的是非精确自动交易策略,如果你做成一个平台,让大家在上面管理账户,写写自动交易脚本,应该有一定市场,等于把很多行情软件的指标系统变成SaaS,比如:
& & 20:32:11 +08:00
行情数据花点心思还能搞出来,交易接口搞不定,只能用最最老土的办法,模拟按键精灵,分析好后,该下单时自动点击各种交易软件的按钮,哈哈哈。
想想都很欢乐,一个交易机器人满屏抓数据,然后乱开交易软件下单界面,哐哐下单,然后坐等N天后盈利,实在让人心惊肉跳,胆小的不敢这样玩。
& & 21:51:02 +08:00
@ 大神果真出现了,没有钱买数据啊,数据要接到一些机构的数据。没有那么多钱。不用t+0,中国股票没利空控机制,也不能做空,因为不能买跌。哈哈感谢推荐~
& & 21:59:44 +08:00
@ 交易策略先不着急做,目前做的就是通过算法选出会上涨的股票。这是第一步
& & 22:05:18 +08:00
A股没什么人搞量化交易,因为限制太多,受政策影响太大。搞量化交易的一般去玩期货
& & 22:09:00 +08:00
@ 政策一方面,最终的是可以做,要去实践,并且我认识几个做的非常厉害的
& & 22:15:33 +08:00
Matlab有接口可以直接从yahoo等网站调取股票的历史和当前信息,不过实时性没有Bloomberg这些付费的源头好。
关键字 high frequency trading,Matlab
ps.没记错的话个人写的程序自动下单交易在国内是违法的(虽然很多事都是违法的,可是一旦出事钱就都是给别人赚的了。押注在一直没有人跟你较真上感觉不是很稳妥)
& & 23:16:38 +08:00
@ 不违法,现在各个期货公司程序化推广如火如荼,券商也慢慢加入战团。
@ 各家数据都不同,但是差异不会特别大,如果做5分钟级别以上的趋势,应该木有太大影响吧。国内几家行情软件提供商的数据也有些许差异,应该是数据切片方式不同造成的。比较准确的历史数据只有花钱了,短期免费数据可以考虑用上期技术提供的CTP股票接口,好像能取最近一个月的日线,自己做tick落盘积累一下。
& & 23:43:57 +08:00 via iPhone
不 T+0 感觉不好玩啊。但是三十的月收益也是真厉害啊。
& & 00:13:20 +08:00 via Android
月收益稳定三十还做什么软件啊,直接从事股票投资得了。
复利算下来几年就发了。。
& & 02:06:33 +08:00
@ 一分钱都没有,还有负债~
& & 02:22:52 +08:00
大智慧里面可以编写插件调用各种数据接口,以前曾经写过带dll的公式。不过这东西写出来骗骗股民还可以,真要是盈利的话,几乎是不可能的。
& & 02:32:15 +08:00
@ 我做的跟那对公式不一样好么
& & 02:50:44 +08:00
@ -。- 本人研究股票也有七八年了吧,从电话交易0买入1卖出开始接触,筛选股票的指标在系统里面都带着,我写的那个指标还分析10档委托分笔成交,就算是纯理论性的研究mathematica的公式也写过,到最后技术分析都是假的,至于模拟成交,我会说国泰君安模拟系统排名第一的人,是忘了密码再也没登陆,05年买入茅台五粮液么。
好吧,上面的话有点打击人了.......... 如果说数据接口的话,中国目前level2用的是FAST协议,里面的数据包括日线、五分钟线、逐笔成交、分笔成交、大单成交、10档买卖、F10信息都可以通过接口轻松获得,既可以用大智慧提供的简单脚本计算(选股系统),也可以在编写的dll里面调用,数据已经是目前能够获得的最精确的了。
& & 02:58:10 +08:00
@ hexin那个下单系统,我可以逆向出接口来,这个自动交易比较简单,不过国内目前不是T+0,如果是股指期货还有做自动交易盈利的可能性
& & 09:50:18 +08:00
成功率90%... 有拿历史数据做backtesting么?敢问lz的这个系统运行了多长时间?理论上50%的成功率加上良好的资金管理策略就有可能赚到钱的。
& & 10:34:23 +08:00
@ 大神有出现了,小弟才研究短短一点时间,膜拜,hexin的怎么逆向出来数据,我的复权的数据一直不是很准确。求大神解答。
& & 10:35:15 +08:00
@ 那个是学习模式,神经网络算法,但是我先人工来搞搞,有些数据比如说复权的数据,很蛋疼。
& & 13:08:08 +08:00
可以试一下CTP平台(分期货和证券)。期货接口目前很多期货公司支持。证券接口也有部分券商支持。
使用CTP可以获取到实时的行情,并能够进行交易。
& & 13:31:08 +08:00
如果楼主的模型能够赚钱的话,最好自己瞧瞧赚好了,最重要是低调。
不是泼冷水,而是我们市场的流动性是有限的,尤其是股票市场,而且你还没有任何对冲防范风险的工具(股指、国债期货,股票现货,股票/指数ETF,融资融券等等),要避过第三方的阻击根本不可能。
& & 13:57:31 +08:00
如果你想要数据,你可以先试试外汇,美股,港股.这些东西你很容易拿到1min的数据.tick数据稍微费点心也能拿到.
另外,我也泼点冷水,利用历史数据,技术指标判断未来走势,不管你用神经网络,SVM,统计学,最终只能是&呵呵&两字.你可能能做出模型来稳定盈利过去1年,2年,甚至5年,但是你要做出稳定盈利10年,20年的模型.....
当然,如果你做这东西是为了卖服务,那就全靠忽悠的本领了.
& & 14:05:14 +08:00
@ 你有尝试过没有?当然国家有政策交易有规则,如果规则不变,当人不会变。如果交易规则变了,模型当然要改变。
& & 14:07:31 +08:00
@ 感谢提醒,说啥么的都有,总之我会研究出来的,目前组合上还有欠缺。
& & 14:22:13 +08:00
@ 交易规则只是影响市场的众多因素中的一个而已.
& & 14:35:55 +08:00
@ 实际交易层面有很多细节导致一个在历史上能盈利的模型无法在“现在”盈利,又或者是这种“预期的盈利”是在未来N年的某个时点内实现的。
& & 14:50:52 +08:00
@ 严重不同意~,你是否研究过量化系统?或者算法?
& & 16:08:39 +08:00
@ 以后你还是去海洋部落混吧。oceantribe.org
& & 17:21:32 +08:00
@ 感谢推荐
& & 19:01:14 +08:00
@ ctp的接口程序从哪里搞到啊
& & 20:11:19 +08:00
正确处理数据源的方法是整合多个database的数据,比较以后整合数据或者舍弃异常数据。我做过S&P500的数据,用了4个database的数据,database和database之间还是会有差异。好的database基本上都不是免费的(尤其国内),可以看看当地图书馆有没有提供免费的database stream接入。个人看来所有的免费数据源里面,yahoo的数据相对算准确的了。可以尝试抓取多个免费的数据源进行比较降低误差,就像database一样,但是意义其实并不大。
另外不是来泼冷水的,假如我们抓一只大猩猩随机抽股票进行交易操作,与最终软件产品进行对比,结果可能是软件产品的表现不会明显好于大猩猩。主要原因大概可以归结为三点:
1. 楼主可以随便找几个教Finance的professor问一下,我身边的professor多数不相信技术分析的。对此有个非常简单易懂的假说可以参考Random Walk Hypothesis [ Gordon Malkiel的一本书:A Random Walk Down Wall Street。这本书很棒,身边看完的人多数对技术分析死心了,一些例子用的都很漂亮。
2. 另外有个比较常见的假说是Efficient-market hypothesis [ efficiency认为历史价格所包含的信息已经完全反应在了价格上,因此技术分析无效。但是实际运作当中,市场信息在一定时间范围内是不对称的,这里就会有套利机会,但这个也不是完全能用技术分析分析出来的。
3. 不妨假设软件运行准确率99%+,那用户肯定不会少,假设80%的散户都在用这个软件,结果就是实际市场方向会倒向原来预测方向的反方向 [Fat Finger Effect]。而且这个效应是没办法衡量的,因为用户是否采信软件预测结果进行交易是未知事件。
真正有可能通过分析进行获得的模式应该是fundamental analysis,利用一定方法去寻找被低估的股票进行投资;或者是HFT,寻找一些存在时间很短的套利机会。第一种迄今为止很难做到,因为这种股票很难定位,没有特别好的算法去寻找这种股票,楼主可以看看有没有什么特别好的算法去寻找这些股票;第二种,国内个人用户不现实。综上,这个软件很难做成。
没去华尔街实习过,但是比较肯定的认为在没有消息源或者时光机的情况下要准确预测价格的实际可能性基本为0。好的投资心态、投资策略和信息关注度要远远比历史信息重要的多。
& & 22:13:15 +08:00
最近一段时间也在研究这个,目前正在抓数据,和楼主一样遇到各家网站数据不太一样的困扰。我的目标没有楼主那么宏大,只想利用数据和算法建立一套自己的选股模型,方便自己选股,轻松赚点小钱。
模型算法还处于雏形中,希望和楼主交流下。
& & 22:49:21 +08:00
@ 第一点我不同意,我只有实践过才能证明,没有实践,我不相信,我会把这最终结果去进行实践的,2.不用技术分析,那心里因素久更不靠谱了。
3.80%的散户是不可能的,只有少数人。非常的少。不超过几百人。
4.个人用户很现实,我认识几个每天都能说3-5个涨停的。尤其是能够准确预测出明天高开出货的。
5.既然人家每天都能说出几个涨停,我相信我可以比他做的更好。
6.我差点去华尔街去做量化投资交易实习,由于一些原因,就是原先是要做电商网站来着。
7.没有一个人能够不用心去做投资,因为心里因素占了投资一部分的比重,反而会判断失误。
& & 08:51:01 +08:00 via Android
有没有算过如果稳定月30%一年后会产生什么效果。说90%成功率没有意义,得说这个模型一个月能操作平均10次,90%获利多少,10%亏损多少。楼主是想做推荐股票的软件卖钱吧。这个思路很好。但是稳定30月收入的模型是不可能的。
& & 09:48:54 +08:00
@ 你可以去海洋部落论坛的ctp板块看看
& & 10:04:00 +08:00 via iPhone
@ 我给别人推荐了俩涨停。20%的收益。平均一周能说几个涨停。30%很保守
& & 14:08:50 +08:00
59f+1
准确推荐涨停有多少次?保持30%收益已经多久了?
& & 15:46:25 +08:00
@ 就按30%算.如果投入10W年底你就可以把10W变成130W+.再下一年你讲获得超过1000W的财富
偶尔的一两次预测不能说明什么,如果这个模型这么成熟,你敢连续一周贴出你的荐股么?命中率真的有90%?
有些话不是光说说就行了的.
& & 16:50:47 +08:00 via iPhone
@ 刚开始研究
& & 16:51:47 +08:00 via iPhone
@ 目前帐户为负数。好多讨债的。
& & 16:54:01 +08:00
@ 要是我有这么个模型果断借10W.现在开始.年底就能有50W了
& & 16:54:15 +08:00 via iPhone
@ 有聊天纪录。贴再多也没有用,我原先给一个群免费推荐了三星期。个别股票涨幅搭30%最近心情糟糕
& & 16:55:11 +08:00 via iPhone
@ 没人肯借呵呵
& & 17:20:16 +08:00 via iPhone
@ 如果系统有系统性风险的话。比如说大盘再下跌。恐怕再怎么整赔钱的几率比较大。因为并未来市场的系统性风险。月收益必须保证大盘再振荡器和上升期才能保证的
& & 20:13:10 +08:00
@ 那是不是能理解成在当前情况下你目前一个月的预测都是正确的。
其实吧,这样就很牛逼了。如果足够自信,你该做的事就是借钱。因为等你产品做出来,该模型很可能就不稳定了。
能随时在震荡器保持30左右,已然是个牛散了。随便弄几万,雪球效应你在3-5年内会就会有过千万的资金。到那时候做啥股票,整个私募吧。
& & 21:11:46 +08:00
不是有一句鸡汤体断言叫:eat your own dog food
& & 21:21:21 +08:00
中国股市?!?!?!?!?!?!?!?!中国只有官商勾结的屠宰场~~~~
& & 22:08:06 +08:00 via iPad
年复合收益率超过20%的基金已经是排得上名次的了,我是指香港市场。
lz还需要多实践检验自己的系统。太多聪明脑袋想在这里赚钱了。
我自己也有类似的系统。行情来自google finance。
& & 22:58:20 +08:00
@ 同意啊。ps:能开源,或者就给我小围观下不
& & 00:51:27 +08:00
推荐一本书《随机致富的傻瓜》,讲金融市场的随机性的,电子版很容易搜索到。
& & 01:58:51 +08:00
我觉得LZ可以先在本贴荐股。
同时留个支付宝账号。
您荐的股有人买了,并且真赚了,
比如我会很乐意给您支付荐股费
即便是70%的准确率就已经是非常不得了的。
楼上vigoss已经说了复利的力量了
LZ借个一万来炒吧
发达之日指日可待。
& & 02:20:49 +08:00
你的系统如果是单单输入历史数据的, 就是在马尔科夫链上找相关, 和算彩票一样了.
股票预测系统只有引入了新闻归类收集, 特别是能影响股民和投资者的信息收集才有可能(只是说有那么一点点可能了...)出效果. 而收集来的信息需要懂行的人手工赋予权重变成属性矢量(投行有这么做的), 或者你自然语言挖掘很牛逼, 可以机器完成大部分转换 --- 才能作为预测系统的输入.
& & 22:12:24 +08:00
能合作么?
& & 22:54:51 +08:00
@ 想怎么合作?
& & 14:05:48 +08:00
@ 看到30%的月盈利我湿了。。。。。如果能做到稳定月盈利30%,就把公司和所有家产卖了买你的软件,10亿元以内能承受
& & 20:28:01 +08:00
@ 最近没有时间,对比了一下数据分析,准数据的准确不是特别的好,这个问题是如果你认真对比过腾讯,大智慧,搜狐,网易的数据都会了解了,所以先打算从弄够直接获取数据源的btc入手先做数据分析了,这方面都具备一定的市场的开放性和广阔性。后面的话如果模型构建的完善后再接入股票市场,不过这东西风险性把控要通过全部的股票数据模型来预测市场。要是能直接接入上交所获取LEVEL2数据然后在做时间序列分析好周期模型运算估计有一定的把握。
& & 16:06:00 +08:00
根据我的研究发现,股市的基本原则就是跌多了就涨,涨多了就跌。。。楼主试试看我们家的这个http://cate.10jqka.com.cn/gjzgxe/buy/index/?code=600000,买卖时机看看准不准?
& & 16:12:47 +08:00
@ no,市场的规则并非跌多就涨,涨多就跌。时机很重要。
& & 16:15:40 +08:00
@ 那你看看我发的那个连接里面的内容吧,选几只股票试试,看看这个的时机如何?
& & 21:53:01 +08:00
@ 是股票诊断的吗?我对这种东西认知的只有概念和爆发性。金融里面有一个专业的术语叫动量~。
& & 22:01:58 +08:00
@ 你说的太专业我不懂诶,反正就是会定期发出买卖时机的啦,公式是数千个指标里挑出来优化过的哦。
& & 14:20:28 +08:00
@ r语言是一个专门做数据分析的语言平台
& & 18:22:17 +08:00
@ STATA和SAS也都有高频时序处理模块, matlab不用碰
& & 20:32:25 +08:00
很高级的样子。。。。学习下。。。。。。。
& & 16:14:31 +08:00
好多高手。。。膜拜
& & 01:59:04 +08:00
@ hi,刚刚去海洋部落转了一圈,网站内容surprise,不过不能注册了,现在还有什么办法注册账号进去混吗?
& & 20:59:07 +08:00
不知道楼主 现在还做不做 这个东西
& & 13:22:51 +08:00
感兴趣,现在还做不?
& & 20:47:20 +08:00 via iPhone
@ 楼主现在还在巅峰坚持吗
& & 22:11:32 +08:00 via iPad
@ 当然在了。
& & 14:36:50 +08:00
根据我小学肄业的数学水平计算,楼主 2013 年 7 月发帖, 10 万启动资金 宣称月复利收益百分之 30 , 36 个月,今天楼主应该有 1 亿多财产了吧
& & 15:06:41 +08:00 via iPad
@ 最近刚研究出来,稳定的系统。
& · & 610 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 23ms · UTC 20:04 · PVG 04:04 · LAX 13:04 · JFK 16:04? Do have faith in what you're doing.

我要回帖

更多关于 策略模式使用场景 的文章

 

随机推荐