![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python程序
哈希哥
金融业务IT研发从业十年,勤勤恳恳研究量化投资之道。
展开
-
Python 实现笛卡尔积
例,求a={1,2,3}与b={0,1,2}的笛卡尔乘积,python代码如下:#--coding:utf-8--import itertools;a=[1,2,3];b=[4,5,6];for x in itertools.product(a,b):print x运行结果如下:如果需要传的参数不止a和b,但是又不能确定到底有多少个怎么办?改写代码如下:#--coding:utf-8--import itertools;c=[[1,2,3],[4,5,6],[7,8]]for x原创 2022-06-06 18:10:39 · 2501 阅读 · 0 评论 -
Python 获取运行中的函数的三注释信息
notes=sys._getframe().f_code.co_consts[0]sys._getframe().f_code.co_consts会返回一个元组,需要什么就到元组里去取即可!原创 2022-02-24 18:01:04 · 706 阅读 · 0 评论 -
技术量化选股真的可行吗
介绍几种量化方法:1、多因子选股多因子选股是最经典的选股方法,该方法采用采用一系列的因子(比如市盈率PE)作为选股标准,满足这些因子的股票被买入,不满足的被卖出。比如巴菲特这样的价值投资者就会买入低PE的股票,在PE回归时卖出股票。该方法比较磨时间,一般投资者比较难持续持股;2、风格轮动选股风格轮动选股是利用市场风格特征进行投资,市场在某个时刻偏好大盘股,某个时刻偏好小盘股,如果发现市场切换偏好的规律,并在风格转换的初期介入,就可能获得较大的收益。3、行业轮动选股行业轮动选股是由于经济周期的的原创 2021-05-31 19:05:43 · 593 阅读 · 0 评论 -
python程序在ide中执行没问题,命令行执行就提示ModuleNotFoundError
python程序在命令行执行提示ModuleNotFoundError: No module named ‘XXX’ 解决方法这是因为找不到文件路径:解决方法如下:在报错的模块中添加:import sysimport oscurPath = os.path.abspath(os.path.dirname(file))rootPath = os.path.split(curPath)[0]sys.path.append(rootPath)这样就可以解决了;...原创 2020-11-25 17:22:47 · 546 阅读 · 2 评论 -
pyMySQL连接本地mysql8报2003错误
问题描述:我的pymysql连接mysql的python语句是:conn = pymysql.connect(host='127.0.0.1',port=3306, user='root', password='xxx123' ,database='astock', charset='utf8')pymysql报2003异常2003, “Can’t connect to MySQL server on %r (%s)” % ,就是这串错误;给pymysql打断点发现是connections.py原创 2020-08-12 19:38:19 · 825 阅读 · 0 评论 -
python 下载安装talib
talib是一个很棒的指标库;到https://www.lfd.uci.edu/~gohlke/pythonlibs/下载;安装:cd 进入到文件所在目录,输入命令:pip install TA_Lib-0.4.18-cp36-cp36m-win_amd64.whl原创 2020-06-12 14:43:44 · 4069 阅读 · 4 评论 -
python实现字符串中所有数字所在位置
python实现查找字符串中数字所在串中的位置具体代码如下:def indexNumber(path=''): kv=[] nums = [] beforeDatas = re.findall('\d', path) for num in beforeDatas: indexV=[] ...原创 2020-04-01 16:36:28 · 4170 阅读 · 0 评论 -
python实现批量替换字符串中的数字
如字符串:“a2aa2bbb3ccc4dddd”,现在希望将串里的2,2,3,4替换成11,22,33,44那么需要传入两个参数;第一个参数是目标字符串——“a2aa2bbb3ccc4dddd”;第二个参数是替换后的值——[11,22,33,44]完整代码如下:import redef updatePath(path='', nowpath=[]): kv = [] ...原创 2020-04-01 16:29:31 · 6369 阅读 · 0 评论 -
指定json的某个节点进行增、删、改
有时候我们需要对json结构的数据进行更新,或增,或改,或删。当json层级比较复杂时操作起来是比较麻烦的,得一层层找下去找到要更新的节点才能操作它。我用python语言封装了一个类,提供三个函数分别用于增删改json的目标节点。首先我们先确定什么是路径(path);如json:dataA={“code”: 0,“data”: {“areaCode”: “86”, “avatar”: ...原创 2020-03-03 19:25:17 · 3208 阅读 · 0 评论 -
python实现json转yaml
python实现json转yaml实现代码如下:# -*- coding: utf-8 -*-import yaml,jsonif __name__ =='__main__': d={'version': '1.0.1', 'sub': [{'name': 'Hillo world', 'age': 33, 'sex': {'a': 1, 'b': 2}}, {'name': ...原创 2019-12-26 17:07:11 · 4981 阅读 · 0 评论 -
python实现二叉树
废话不多说,直接上代码;#-*- coding:utf-8 -*-class Node(object): ## # 节点类 # 初始化节点 # # def __init__(self, element, lchild=None, rchild=None): self.element = element self.lch...原创 2019-10-12 18:53:32 · 130 阅读 · 0 评论 -
解决python log模块重复打印日志问题
解决python log模块重复打印日志问题当多个python文件引用log时会导致打印重复日志,如下图;原因是Logger类中的handlers列表中添加了多个对象;Logger类源码如下:所以,要解决这个问题,我的思路是清除handlers列表中多余的对象;思路步骤如下:1、我的代码中往handlers列表添加了sh和th两个对象,代码如下sh = logging.Strea...原创 2019-09-26 11:28:15 · 1432 阅读 · 1 评论