python 数值分析

 

python 时间序列建模

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

 

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

 

 

  • 参考文章 :

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

  • 其他的影响因素

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

空方开始做空

空方绝望平空或者转多

多方绝望

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

 

  • 作业

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

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

 

 

How to write a auto gather program using python

1 安装 opencv , 在设置好的虚拟目录执行

 

再安装 pyautogui

 

2  python + opencv 截屏

 

3:   How do I find an image contained within an image?    From :

https://stackoverflow.com/questions/7853628/how-do-i-find-an-image-contained-within-an-image

 

 

这段代码会在大图上, 以矩形标出match 的部分 , if exist match

 

 

4  在 windows , python 37 ,32位环境, 执行这段代码能找出 exactly match 的部分, 并自动把鼠标移动到那里, 点击右键

 

缺点是只能精确匹配, 图像稍有差别 , 或者放大缩小,变换镜头角度都不行

已经有人提出过这个问题, 在 : https://answers.opencv.org/question/169613/how-does-macthtemplate-deal-with-scaling/

关键字:

意思是 opencv 的  matchTemplate  函数不是比例变换不相关的

那么, 如何使 matchTemplate  可以比较不同比例的图像, 参见这个文章:

https://www.pyimagesearch.com/2015/01/26/multi-scale-template-matching-using-python-opencv/

in this article , 解决方法是: 对于大图, 循环放大缩小多次, 以匹配小图 , 但是, 这样只是解决了比例问题, 还是没解决角度问题


更先进的方法应该是: 特征匹配或者关键点匹配, 参见文章:

https://www.analyticsvidhya.com/blog/2019/10/detailed-guide-powerful-sift-technique-image-matching-python/

 

或者这个文章 更好一些: https://blog.csdn.net/HuangZhang_123/article/details/80660688

 

找到特征匹配后, 如何找相应点的坐标: https://stackoverflow.com/questions/30716610/how-to-get-pixel-coordinates-from-feature-matching-in-opencv-python

 

 

关键字 : cv2.cornerHarris    函数

 

理论分析和实现 SIFT算法 : https://www.geek-share.com/detail/2777206412.html

 

 

 

 

 

5  如何模糊匹配, 即无论图像缩放, 观察角度的变化, 都能正确匹配到

参考文章 :  https://www.lagou.com/lgeduarticle/74061.html        

这个不一定对

 

 


 

 

 

 

 

tokbox 测试环境的搭建

注册账号 ,然后新建一个project , 这样就得到了 api key , 和 secret , 如图

  • 第二步,建server , 以 python 为例 :

sample 程序在  https://github.com/opentok/Opentok-Python-SDK

先建立一个 python 虚拟目录, 这样得到干净的初始环境 。

然后, 安装 flask 和 opentok 库:


安装完成后把例子程序的helloworld项目的 helloworld.py, 根据自己的情况修改为

然后在虚拟环境内执行 ,本机的虚拟环境目录在: F:\Programs\Python\py37virtualenvs\tokbox

如果能出现下图就说明服务启动成功了

有一个常见的错误就是: 当试图 create session时 , 出现

tokbox Failed to create session, invalid credentials 的错误, 这可能是因为测试机器时间和标准时间不一致 ,解决方法是:  setting–>datetime setting –>set time automatically on


成功启动服务后, http://127.0.0.1:5000

如果有摄像头, 就能看到图像。

服务启动后会在页面显示 sessionid 和 生成的  token

 


首先找出刚才建立的server 的 api_key , session_id 和 token  :

46419702

1_MX40NjQxOTcwMn5-MTU2ODI3MTIwOTMzNH5QcEY4aE0ra0owaC9DTTAzdnRoRTlxK2J-UH4

T1==cGFydG5lcl9pZD00NjQxOTcwMiZzaWc9ZDJmZmRmMGU1MmE4YjBkMmQyOTEzMjgzNDBmZjZjYzMwN2EwY2U0ZTpzZXNzaW9uX2lkPTFfTVg0ME5qUXhPVGN3TW41LU1UVTJPREkzTVRJd09UTXpOSDVRY0VZNGFFMHJhMG93YUM5RFRUQXpkblJvUlRseEsySi1VSDQmY3JlYXRlX3RpbWU9MTU2ODI3MjU4OCZleHBpcmVfdGltZT0xNTY4MzU4OTg4JnJvbGU9cHVibGlzaGVyJm5vbmNlPTIwNTQyNiZpbml0aWFsX2xheW91dF9jbGFzc19saXN0PQ==

打开例子程序的 Basic Video Chat 子项目

修改 /js/config.js , 把 api_key , session_id 和 token 等都修改为和之前服务器建立的一致 ,并且把 server_url 的那句注释掉:

 

然后打开  Basic Video Chat 的 index.html 程序, 就可以与服务器互通视频和语音。

How to write an auto-fish scripts for wow classic

  • 建立python 虚拟环境

查看当前python 版本 :  python –version

查看 32bit还是 64bit, 方法是

 

  • 依次安装       numpy  (数学库) :  pip install numpy

matplotlib  (坐标图)  :  pip install matplotlib

opencv-python  (图像识别) :  pip install opencv-python

pyscreenshot  (截屏) : pip install pyscreenshot

pillow  (这个库是替代旧的 image库) : pip install Pillow

autopy (模拟按键)

  • 尝试安装 pip install win32gui , 但不能安装 ,32和64版本都不行,因为 win32gui 只有python 3.6 版本

重新装python 3.6.7

在安装win32gui之后,还要安装 pywin32 

安装完成后, 执行这个脚本测试一下:

方法是先执行, 在新建一个notepad , 然后让 notepad 获得焦点, 会每2秒打字一个 “1”

但是, 这是对 notepad的键盘模拟, 对 wow能不能一样, 待测试。

  • 试试能不能截屏 :

  • 找 bobber (或者叫 float )的方法:

 

 

  • How to know if fish ready

 

  • How to filter loot , for example only keep black mouth

use addon :   EasyLoot

 

  • 参考文章:

https://github.com/YECHEZ/wow-fish-bot  

这个新一些


https://github.com/kioltk/wow-fishipy

这个方法比较旧, 但是opencv用的好

 

 

 

 

  • 参考文章 :  https://www.reddit.com/r/learnpython/comments/22tke1/use_python_to_send_keystrokes_to_games_in_windows/

same purpose with me


https://github.com/kioltk/wow-fishipy/blob/master/fishing.py

主要是学这个


https://github.com/FrontMage/wowAutoFishing

图像识别找 bubble , 声音确定点右键的时机

 

  • 已有的bot :

https://www.ownedcore.com/forums/wow-classic/wow-classic-bots-programs/799510-vanillabuddy-fishbot-support-thread.html

还不知道是什么功能

此外 youtube 也有很多classic fish bot的视频,不知真假

 

 

python 3.7.4 建立虚拟环境

virtual env 可以理解为一个个独立的docker , 互相之间不影响, 比如一个python项目要用到opencv , 最好的办法是把opencv安装在 virtual env 而不是全局 ,这样其他项目仍能保持干净的最初环境。


如何新建 virtual env , 参考文章:

https://docs.python.org/3/library/venv.html

https://docs.python.org/3/tutorial/venv.html

  • 第一步 :

    会创建一个新目录 , 此目录自动生成 include , lib, scripts 子目录, 还有 pyvenv.cfg配置文件
  • 创建好的虚拟目录位于 :  F:\Programs\Python\py37virtualenvs\tokbox

 

 

python 如何建立自己的 module 和 function

  • 所谓的module就是一个 .py 文件 , 出来python自带的, 也可以自己建

  • 这句如果出  no module name XXXX , 是因为当 python 尝试 load时, 找不到用户自己建的 .py文件

解决办法是 : 在

之后 , 加

目的是把程序当前路径加入到查找范围

此方法来自 : https://stackoverflow.com/questions/51820904/passing-an-argument-to-python-c-api-function-call


  • 这是因为numpy 也是第三方 lib , 默认安装没有, 所以需要