python 数值分析

 

python 时间序列建模

  • 所谓建模, 就是找一个合适的方程描述特定的曲线

有了方程,可以求导,计算某一点位的即时趋势

  • 最基础的,  up , down 的趋势怎么判断  ?

当前是用一个10元素的栈,放过去1分钟的斜率,先进先出

如果新斜率普遍大于旧的,说明是涨势

 

  • 参考文章 :

A comprehensive beginner’s guide to create a Time Series Forecast (with Codes in Python and R)

https://www.analyticsvidhya.com/blog/2016/02/time-series-forecasting-codes-python/


金融时间序列分析  第三版

 


https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5283670/检测时间序列的突然变化


 

https://techrando.com/2019/08/14/a-brief-introduction-to-change-point-detection-using-python/   

用python实现

关键字 : Detecting changes in a time-series


 

理论论文:

1801.00718


电子书 about forecasting

https://otexts.com/fpp2/appendix-using-r.html

 

  • 关键字

Change point detection (or CPD)

time serial   时间序列

Trends    趋势

Irregularity  或者叫 noise , 噪音,扰乱

 

  • 要达到的效果

大致类似这个

https://patents.google.com/patent/CN106600410A/zh

本发明公开了一种基于时间序列的量化投资方法,所述方法为下述方法之一:(1)时间序列预测:是一种考虑变量随时间发展变化规律,并用该变量以往的统计资料建立数学模型,进行类推或延伸,借以预测下一段时间的趋势的方法;(2)相似搜索:是通过测量时间序列数据之间的相似度,从历史库中寻找相似的时间序列数据,从而对系统的走势做出预测;(3)周期分析:指对周期模式的挖掘,即在时序数据库中找出重复出现的模式。本申请将时间序列与量化分析相结合,可以做出准确预测,满足客户的使用需求。

其中相似性已有基础的解决方案,见:

http://www.notesoflyang.com/?p=1757

 

  • 其他的影响因素

a) 出现哪种情况会让多方情绪升高

空方开始做空

空方绝望平空或者转多

多方绝望

b)  降噪未必是对的 , 来回反复是为了强化信念,特别是错的信念

 

  • 作业

1:  以xxxx 为前高 ,xxxx为低点 ,  以xxxx为新高 , 自动画出集中突破走势 图

提示, 人们如果被灌输进前高是高点的概念, 那么会在高于此位置多少的范围内做空, 是有大数据支持的 ,主力会故意流出一个做空区域陷阱

 

 

centos 内存泄漏调查

起因: 用c++做了一个调用ctp api 的程序, 放在 centos 6 32 位 Linux VPS上 ,

用crontab 定时运行 ,但是, 发现执行过几次之后,内存很快被占完

此后, 停止了这个程序和定时任务 ,把vps的内存从1g 升级为 2g


但是, 即使这样, 2g 内存还是随着时间的推移而逐渐减少 , 如果

reboot, 会恢复, 但这只是暂时的解决方法


在 ventos上执行这个命令:

来源 : https://serverfault.com/questions/257759/something-eats-all-memory-i-suspect-memory-leak-on-some-app-how-to-detect-wha

会发现 前10的内存占用程序有9个是 httpd

怎么判断两条曲线形状相似

相似性的英文是 :  Similarity Measurement 

  • DTW 算法

https://blog.csdn.net/raym0ndkwan/article/details/45614813

算法介绍

 

https://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html

算法介绍2

 

https://blog.csdn.net/niuniuyuh/article/details/54809587

算法介绍3

 

https://blog.mythsman.com/2016/04/19/1/

介绍4

http://blog.sciencenet.cn/blog-212252-701037.html

介绍5

https://www.researchgate.net/publication/216301292_Everything_you_know_about_dynamic_time_warping_is_wrong

6

 


https://www.youtube.com/watch?v=_K1OsqCicBY&list=PLQ9wcil_P4A6WkBBRd6Ywsi5HiSe3pBZP&index=3&t=0s

视频讲解


https://www.jianshu.com/p/05bee48cc6a2

python 实现


https://nipunbatra.github.io/blog/2014/dtw.html

python 讲解  ,    最重要的 

 

https://www.cnblogs.com/StrayWolf/articles/6792261.html

中文讲解最好的


DTM 算法的目标是找出一种对应关系  :    x 上的每一个点如何对应到 y

Our aim is to find a mapping between all points of x and y. For instance, x(3) may be mapped to y(4) and so on.

  • hausdorff  距离

    定义 :

    对一条线的每一个点, 计算另一条线上距离它最近的点 ,计为d1 , 对于 d1,d2,d3…..dN 的点集, 取其中的最大值 , 即为hausdorff 距离

用途:

给定一个形状 A  ,找出 A在指定容忍范围内的最相似形状 A0

 

公式:  


  • 双向  Hausdorff 距离

算法 

如果想比较两个曲线有多相像,必须先有模型量化什么是相像, 也就是: 怎么定义 similar

 

参考文章

https://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html#undefined

Dynamic Time Warping 动态时间规整算法


 

到现在为止的实现方法(2019-05-16)

缺点是速度太慢

 

怎么提升速度 ?

a)  合并数据,  一分钟有 120个,用1个来替代

 

 

  • 有人做的python 库

https://jekel.me/2017/Comparing-measures-of-similarity-between-curves/

 

拿两条 正弦波图形测试

 

python scripts

  • 画实时k线

 

参考  https://stackoverflow.com/questions/4098131/how-to-update-a-plot-in-matplotlib

最后一个答案