奇趣编程|如果个股不能预测那大盘能预测吗?

个股就是某一家公司的股票,如腾讯公司的股票;大盘股指多个相同类型的很多公司的集合股,如科技版块的股票。

通常认为,个股的股价是无法精准预测的,方向是难以判断的。

但是,我们奇趣编程从更高的视角来看事物的本质,可以提炼出最核心的东西:“股价的涨跌就是多空双方资金博弈的结果”。

这就有两个要点,一个是大资金的大小和动向,一个是散资的合力大小。散资永远无法跟大资金较量,只有被收割的命运。

虽然个股的股价是无法精准预测的,就像腾讯qq在线人数随机数一样难以精准预测,但是大盘股却是可以大体上判断准确的。因为大资金也无法和社会大趋势对抗,即使大资金能短暂地拉涨拉跌一波,大盘的走势最终还是会依据它的行业价值来按趋势走的。

比如说,科技版块,能源版块,这些是国家的根本。没有科技的发展国家就会落后,落后就会挨打。没有能源安全,国家就会被人掐住脖子无法正常运转直接休克。所以这些版块,再大的资金也不敢掀起太大的风浪,作妖到了一定程度,国家肯定要出手阻止。

对于人傻钱多的散资来说,最好的办法就是只投几个事关国计民生的大行业,用定投来均化价格波动,不要企图翻多少倍,只要能跑赢通胀就行。

这其实就是风险的控制,用大盘股来分摊个股的风险,用定投来分摊股价短期波动风险。只要有耐心,愿意把眼光放长远些,持续定投个十年八年,基本是稳定盈利的。

然而全中国缺少的就是耐心,遍地都是浮躁的人。

奇趣编程|随机数中的混沌与秩序

混沌理论认为,宇宙处于混沌状态,某部分的变化会引起其它看起来似乎无关联的部分的变化。也就是局部的变化在系统的各种关联影响下产生连锁反应引起其它部分的变化。中国古话说的“牵一发而动全身”也符合混沌理论。

混沌理论中比较容易理解的例子就是天气,通常认为长期的天气是不可预测的,因为影响天气的因素太多,地球外部的有太阳黑子的暴发、流星、宇宙辐射等,地球内部的有气温、风速、湿度、植物的化合作用、动物的运动、洋流的变化、火山爆发等等无数不可统计的变量都会引起连锁反应给天气带来影响。

虽然长期的天气是很难精确预测的,但是短期的天气是可以比较准确地预测的。这是因为混沌系统里仍然是基于化学、物理等基本宇宙规律来运行的,它仍然存在着秩序。

当前某些东西混沌不可预测,是因为人类目前的科技没能监测到这些变量的连锁反应,如果哪一天科技发展到能监测这个局部的所有变量的连锁反应了,这个局部就是完全可预测的了。

比如说,腾讯qq在线人数是不是随机数?对于普通人来说,它确实是随机的,但对于腾讯公司来说,所有的qq在线情况它都完全可以监测,并且可以控制任意一个帐号的在线状态,所以腾讯在线人数对腾讯公司来说就不是随机数,不是混沌系统。

奇趣编程|对炒股的一点思考

股票是什么东西?

股票它不是东西,因为它根本没有实物,它不像银票、钞票一样,是可以兑换真金白银的真实的东西。

那股票是什么?

股票只不过是一串记在电脑帐本上的数字,是你用银行卡存款余额兑换成某公司发行的积分,类似超市购物卡上的积分。

那炒股又是什么?

炒股就像是一群办理了某超市会员卡的人,大家互相买卖会员卡积分。由于是多人随机交易,所以会员卡积分的价格产生了波动,路过的人看到积分价格的波动,也参与进来赚差价,于是炒会员卡积分的市场形成了。

积分买卖,并没有对超市的实物产生影响,只不过是电脑记帐数据上的变化,积分哪怕炒得再高,积分能兑换到的实物数量也没有改变,一个玩具熊在积分价格为1元时需要50积分兑换,在积分价格为1000元时,仍然需要50积分兑换。

在这个炒积分的市场里,由于存在积分价格波动,肯定会有人盈利有人亏损。但这个炒积分的市场是由超市控制的,它完全可以操作这些数据,即使没有积分交易,它也可以做出虚假数据,它还可以随时增发积分,它想发行多少就发行多少,甚至随时更改游戏规则。也就是说,超市想割哪一方就割哪一方,想怎么操盘就怎么操盘。

当然,上面炒积分只是一个比喻,和现实中的股票市场还是有差别的,发行股票的公司要接受国家监管的,不能做假帐,不能内幕交易等等。但本质上,它就是一个多方博弈的游戏。

奇趣编程|如何利用股票技术指标预测对手动作?

股价的波动真的无规律吗?

股价的未来走势真的不受历史走势的影响吗?

技术指标真的不能预测吗?

今天奇趣编程和你一起换一个角度去想问题。

第一个问题,蚂蚁是怎么形成蚁路的?蚂蚁是根据前面蚂蚁所释放的信息素来走的,在某些路径上走过的蚂蚁越多,留下的信息素越多,后面的蚂蚁越会倾向于沿着信息素浓度高的路线走,该走哪条路,它有固定的判断依据。

第二个问题,红绿灯是怎么指挥交通的?司机被告知“红灯停绿灯行”,所以司机看到红灯就停,看到绿灯就行,是停还是行,他有固定的判断依据。

第三个问题,技术指标是如何影响散户的?散户总是被各种资讯和股评专家教育,各种技术指标分析层出不穷,很容易形成一种依据技术指标来决策的判断依据,比如“快均线从上向下穿过慢均线要跌”、“快均线从下往上穿过慢均线要涨”、“十字星是涨到顶或跌到底的标志”、“一根大阳柱是起飞信号”、“一根大阴柱是暴跌信号”等等,这些东西虽然是从历史经验中总结出来的,如果大家都不信都不按这个去做那这些技术指标肯定是没用的,但是这些经验被无数人重复教育给散户之后,它就变成了散户做决策时像信息素和红绿灯一样的判断依据。

当你知道对手的判断依据,就能预测他们的跟风逻辑和追涨杀跌的买卖点,从而提前布局。就像你和别人下围棋,如果你总是知道对手接下来几步会把棋子放在哪里,你还打不赢他吗?

奇趣编程|比较有效的预测股票涨跌走势的思路

用统计学量化交易的方式去预测股票涨跌走势,是可行的,关键点主要是用于预测的数据量要大、更新快、具有多样性,如果用软件来自动化处理,是可以实现的。目前有效的预测股票涨跌走势的思路有以下几个。

1.社交数据监测。股市说到底是多人博弈的局,按队伍可以分为多方和空方,如果多方实力强,股票就涨,如果空方实力强,股票就跌。双方实力情况,会间接反映在社交平台的数据上。比如说,当某家公司上了热搜,如果是正面的资讯,那它的股票就会上涨一波。比如说,疫情期间有制药公司或某款药品来蹭热点,大概率会涨停。

上市公司蹭热点虽然令人不齿,但确实一直存在这种流氓行为和社会现象,而监管也很难界定这种行为是否触及了红线。通过监测社交数据,及时捕捉热点,就能通过打短线赚一波。缺点是不能恋战,不管盈利多少,热度到顶就要抛,不然热度过了容易烂在手里。

2.情感倾向监测。对网络上的资讯和数据进行情感分析,如果大量的人长期对某家公司看涨或看跌,那就可以作为预判依据。比如说,目前网络上普遍对新能源、人工智能、3D打印等长期看好,虽然这些技术目前并未完全成熟,但如果等到成熟,股价早已经涨了N倍了,所以只要大方向正确,就要提前布局。

3.搜索量监测。搜索引擎平台都能查到某关键词的搜索量,通过对某些关键词的搜索量监测,可以找出搜索量和股价涨跌的关系。

比如说,“五菱”这个词自2011年至2021年一直都有每天2000次以上的搜索量,除了2018年-2020年热度下降外,其它所有年份都是呈现上涨趋势,再看资讯指数10年来一直稳定在20万以上,所以这支股票值得长期持有,在暴涨时可以适当变现一部分拿回本金,让剩下的利润自由生长。

再如,“茅台”这个词,自2011年至2021年一直都有每天1000次以上的搜索量,2017年起涨势比较明显,在2021年出现了暴涨,但它的资讯在2021年却是稳定下跌趋势,出现了搜索量与资讯量的背离,说明这种暴涨是缺少韭菜基础的诱多,所以不宜盲目跟涨,反而要考虑逃顶了。

再如,“特斯拉”这个词,自2011年至2021年搜索量一直都是上涨,资讯量也在一直上涨,在2021.01.04出现了针式暴涨一波,现在2021.03.09正在在针底,虽然股份跌了30%割了一批韭菜,但新韭菜还在不断生长,热度整体上还在继续缓慢高高,从趋势上看现在是补仓的时机而不是割肉的时机。

特斯拉十年搜索量
特斯拉十年搜索量
特斯拉十年资讯关注量
特斯拉十年资讯关注量

这些都是很值钱的思路,总结为一点,就是利用大数据来帮助分析预判,可以轻松看穿未来的趋势,让你明白什么时候是决策点,要做什么样的决策。

奇趣编程|用人工智能预测股票涨跌走势难在哪里?

用量化交易的方式来进行股票涨跌预测是发展了几十年的成熟的技术,那么用人工智能预测股票涨跌难在哪里呢?

1.从思路到算法之间的坑。股票交易中有很多交易数据,当想出一个思路后,面对着海量的数据,怎么对这些数据进行选取、分类、描述,需要花费很大的时间和精力。

2.回测的坑。根据思路弄出算法之后,用历史数据来验证算法的效果,然后对算法进行调整。但是这个过程中很容易过度调整算法以使算法的效果最大化。

3.实盘的坑。实盘过程中会遇到很多问题,比如网络不稳定导致数据延迟、丢失,比如软件的兼容性、容错性等等,任何一个坑都会导致算法本来应该是盈利的实盘中由于意外造成了亏损。

但是,上面这些坑都只不过是所有行业所有技术发展过程都会遇到的问题,只要解决了这些问题,或是降低了解决这些问题的成本,当成果出来之时,就是腾飞之时。

奇趣编程|是否能用人工智能判断预测股票涨跌?

这几年人工智能的发展非常快,并且有很多落地的应用,那么是否能用人工智能帮助人类预测股票涨跌?

首先要知道人工智能的工作原理。

有很多人工智能的算法是基于特征识别的,比如图像识别类型的人工智能,把一批狗的图像给它,告诉它这些是狗,人工智能算法可以自动从这些预训练图像里自动提取出N个特征,并记录具有这些特征的是狗。

然后,把一批猫的图像给它,告诉它这些是猫,人工智能算法又自动从这些图像里提取出N个特征,并记录具有这些特征的是猫。

人工智能算法对某个事物提取和记录的特征数量越多,识别的结果就越精细、准确。这些特征的数量有多少呢?可能是几个,也可能是几亿个。

人工智能的训练,其实就是数据采集和数据分析。先从训练的图像数据里采集特征,然后根据特征生成一个以N个特征为变量的判断逻辑。

人工智能的识别,就是数据的挖掘。比如给出一张没见过的图像,让它识别是狗还是猫,它就先从这张图像里提取N个特征,看符合狗的特征多些还是符合猫的特征多些,从而判断这张图像是狗还是猫。

举个例子,狗的特征有A1、A2、A3…..An,猫的特征有B1、B2、B3…..Bn,现在给出的图像具有的特征是“A3、A6、A8、A100、B5、B7、A200、A300、A500”,那符合狗的特征有7个,符合猫的特征有2个,就可以判断这张图像是狗。

这就是基于数据集的人工智能识别,如果对这些数据集进一步提炼成方程组,就可以不需要数据集,只需要一个方程组就可以进行识别了。

如果把这个思路应用到股票上,我们可以把每支股票的的相关数据输入进去,比如公司销售量、成交额、利润率、高管套现、负面新闻等各种影响股价的因素都输进去,并告诉它这支股票在这些条件下的涨跌结果,让人工智能算法自动提取特征,总结出N个涨的特征(如A1、A2、A3…..An)和N个跌的特征(如B1、B2、B3…..Bn)。然后给出一支新股票的数据(如“A3、A6、A8、A100、B5、B7、A200、A300、A500”),它就会自动从中判断里面符合涨的特征有7个符合跌的特征有2个,从而给出一个预测未来是涨还是跌的识别结果。

实际上就是识别猫狗一样的原理。

这个判断预测股票涨跌的人工智能理论上不难,但开发的工作量非常大,不是一个人能搞出来的。

奇趣编程|基于时间序列的随机数的提前预测

生活中有很多看似随机数的数据,如果和时间序列高度关联,其实这些随机数是可以提前预测的,但我这里说的可以提前预测并不是指能预测出具体的精确的数字,而是一个大概的数据范围或是走势方向。

比如说,某个红绿灯十字路口,每小时通过的车辆数量是一个随机数,但是,这个数据是和时间序列高度关联的。

从单日的数据上来看,在上下班高峰时段车辆通过的流量大,其它时段会相对的平缓。

从一年的数据上来看,在节假日出行高峰的日子车辆的通过流量会比平常日子大。

从多年的历史数据上来看,每年的车辆数量都会相对的逐步变大,因为有车的人越来越多了,加上城镇化建设的推进,越来越多的人集中涌向城市,水涨船高,整个城市的车辆拥有量变大,通过这个路口的车辆数量也会相应变大。

所以,和时间序列高度关联的随机数,是可以提前预测未来的数据范围和走势方向的。

如果我们把这个思路应用到其它领域,比如说股票,那也是可以提前预测的。

比如说,在国家发布某些重大行业政策后,肯定会引起股市的波动,所以投资者要用程序随时监测国家的政策发布时间,在政策发布时及时进行分析,预判是利好还是利空,然后及时进行买入或卖出操作,就能实现早进场早盈利或提前避免损失。

现实生活中,只要是有人参与的,很多都是和时间序列相关,只要学会用数据采集、数据分析、数据挖掘,就可以帮你实现更多的盈利。

奇趣编程|Google的Flutter和Dart编程语言

Google的Flutter是免费、开源的SDK,它使用Dart编程语言,只需要一份代码,就可以发布移动端、web、桌面等多端程序,不再需要为每个端单独写一份代码。

它的工作原理是编译器把Dart代码编译(AOT)成各个平台的相应代码,让Flutter可以直接和平台通讯而跨过了中间的桥接过程,以提高程序性能。

Flutter
Flutter

实际上就是相当于一个翻译器,只需要用它特定的语言写出内容,然后这个翻译器可以自动帮你把它翻译成各种语言。

这个“一次开发到处运行”的思路其实很多人都有,但这种翻译器不是一个人或小团队能做出来的,毕竟要翻译成所有主流平台的语言,要各种兼容,只有互联网巨头才能把这件事做好。而Google已经在这件事上努力了很多年,现在的Flutter2版本已经比较完善了,在开源的生态下,我相信Flutter和Dart编程语言会越来越好,除非Google发不出工资给那帮开发人员。

搞这个事对Google到底有什么好处?我不知道,也许它是想通过一网打尽开发人员,通过裹挟全世界的开发人员来达成它的商业目标吧。

谁管它呢,有好产品就应该好好学习,编程界的开发人员都盼望着某种编程语言一统天下的日子早点到来,毕竟现在的编程语言太多,太多时间浪费在学习各种编程语言上了,太多的精力浪费在为各个端用相应的编程语言重写一份代码了。

奇趣编程|JavaScript中优化for效率的方法

在用JavaScript写代码的过程中,计算的数据量很大的时候,需要优化计算效率,那么对于常用的for有没有什么办法可以优化效率呢?

理论上,JavaScript中的正序for循环在每次计次变量增加后都需要检查条件,而在倒序for循环中只需要计算一次起始变量,所以for的正序循环要比倒序循环快。测试代码如下:

var A = new Array(1000000000);
console.time('⏳');
for (let i = A.length; i > 0; i--) {}//倒序
console.timeEnd('⏳');

var B = new Array(1000000000);
console.time('⏳');
for (let i = 0; i < B.length; i++) {}//正序
console.timeEnd('⏳');

但是这样做也是有缺点的,有些数据是需要正序去处理的,搞成倒序处理会徒增很多不必要的处理,并且倒序不太符合人的思维习惯。

所以,如果效率不是相差太大,还是用正序吧。