python 3 过滤股票
参考某个博客,代码不全,地址找不到了见谅,加了些自己弄的算法。
备忘
#-*- coding: utf-8 -*-
import os, re
import time
def filefilter(compiles ='strs',road='str'):
'''compiles为正则匹配字,road绝对路径'''
filesobj = os.walk(road)
for root,dirs,files in filesobj:
filess = files
test = re.compile(compiles,re.IGNORECASE)
filesout = list(filter(test.search,filess))
return filesout
def LLV(list1='list'):
min1=min(list1[-1][4],list1[-2][4],list1[-3][4],list1[-4][4])
return float(min1)
def HHV(list1='list'):
max1=max(list1[-1][5],list1[-2][5],list1[-3][5],list1[-4][5])
return float(max1)
def count1(list1='list'):
cn =0
for i in list(range(-4,0)):
if float(list1[i][4])>float(list1[i][1]):
cn+=1
return float(cn)
def twinpost(li='list'):
"""倍量柱"""
if len(li) == 5:
#if float(li[-4][5]) >= float(li[-5][5])*1.9 and OHLC(li[-4]) >= OHLC(li[-5]):
if float(li[-4][5]) >= float(li[-5][5])*1.9 and float(li[-4][4])>=float(li[-4][1]) and LLV(li)>float(li[-4][3]) and HHV(li)<=float(li[-4][5]) and count1(li)==4 :
return 1
else:
return 0
else:
#print 'twinpost data error'
return 0
def goldpost(lis='list'):
"""黄金柱"""
if float(lis[-4][4]) > float(lis[-4][1]):
#收盘价大于开盘价,正常阳线,喇叭口或者鹤嘴,经测试鹤嘴不好用
if ((closeavg3(lis)/float(lis[-4][4])) > 1.0 and (postavg3(lis) < float(lis[-4][5]))):
return 1
else:
return 0
else:#假阴真阳
if ((closeavg3(lis)/float(lis[-4][1])) > 1.0 and (postavg3(lis) < float(lis[-4][5]))):
return 1
else:
return 0
def postavg3(list1='list'):
sum1=0
for l in list1:
sum1+=float(l[1])
return float(sum1/len(list1))
def closeavg3(list1='list'):
sum2=0
for l in list1:
sum2+=float(l[4])
return float(sum2/len(list1))
class SingleMapping3:#使用CsvRead4类
'''N天内某个股票的黄金柱列表'''
def __init__(self,filename,nem='int'):
self.name=filename
self.nemb=nem
self.csvfile=CsvRead4(self.name)
#self.mapping()
def goldPosts(self,nemb=0):
data = self.csvfile.reading(nemb)
if data != []:
data2 = [data[-4][1],data[-4][4],min(data[-3][3],data[-2][3],data[-1][3])]
data2.sort()
else:
return [1,[]]
if twinpost(data) and goldpost(data):
return [self.csvfile.DATE,data2]
else:
return [1,[]]
def mapping(self):
li=[]
for n in range(self.nemb):
li.append(self.goldPosts(n))
lis = []
for m in li:
if type(m[0]) == str:
lis.append(m)
return [self.name,lis]
class CsvRead4:
def __init__(self,filename='strs'):
global DIRALL
DIRALL="C:\\Users\zyh\Desktop\demo\\gp\\data"
self.filename=DIRALL + '\\' + filename
self.DATE=''
self.data=[]
self.read()
def read(self):
csv = open(self.filename,'r')
csvdata = csv.readlines()
csv.close()
data1=[]
for n in range(len(csvdata)):
data1.append(csvdata[n].split('\n'))
data2=[]
for n in range(len(data1)):
data2.append(data1[n][0].split('\t'))
data3=data2[:-1]
self.data=data3
def reading(self,nem=0):
if nem==0:
if len(self.data) >= 7:
self.DATE = self.data[-4][0]
return self.data[-5:]
else:
return []
else:
data4=self.data[:-nem]
if len(data4) >= 7:
self.DATE = data4[-4][0]
return data4[-5:]
else:
return []
def main():
"main function"
print('begin time '+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())))
FilterFile="C:\\Users\zyh\Desktop\demo\\gp\\data"
fi=filefilter('.csv',FilterFile)
for ll in fi:
a=SingleMapping3(ll,150)
codenem,lis=a.mapping()
if len(lis)>0:
print(codenem)
print ('共'+str(len(lis))+'个黄金柱')
for l in lis:
if l[0]>'06/10/2015':
print(l)
print('end time '+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())))
if __name__ == '__main__':
main()
python 3 过滤股票的更多相关文章
- 【转】使用Python matplotlib绘制股票走势图
转载出处 一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使 ...
- 基于Python协同过滤算法的认识
Contents 1. 协同过滤的简介 2. 协同过滤的核心 3. 协同过滤的实现 4. 协同过滤的应用 1. 协同过滤的简介 关于协同过滤的一个最经典的例子就是看电影,有时候 ...
- Python实战——基于股票的金融数据量化分析
说明:本文只是通过自己的已学知识对股票数据进行了一个简单的量化分析,只考虑了收盘情况,真实的量化交易中仅仅考虑收盘情况是不够的,还有很多的复杂因素,而且仅仅三年数据是不足以来指导真实的股票交易的,因此 ...
- 用python+tushare获取股票前复权后复权行情数据
接口名称 :pro_bar 接口说明 :复权行情通过通用行情接口实现,利用Tushare Pro提供的复权因子进行计算,目前暂时只在SDK中提供支持,http方式无法调取. Python SDK版本要 ...
- Python数据分析之股票数据
最近股市比较火,我7月初上车了,现在已经下了.中间虽然吃了点肉,但下车的时候都亏进去了,最后连点汤都没喝着. 这篇文章我们就用python对股票数据做个简单的分析.数据集是从1999年到2016年上海 ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...
- python爬取股票最新数据并用excel绘制树状图
大家好,最近大A的白马股们简直 跌妈不认,作为重仓了抱团白马股基金的养鸡少年,每日那是一个以泪洗面啊. 不过从金融界最近一个交易日的大盘云图来看,其实很多中小股还是红色滴,绿的都是白马股们. 以下截图 ...
- 简单的python协同过滤程序
博主是自然语言处理方向的,不是推荐系统领域的,这个程序完全是为了应付大数据分析与计算的课程作业所写的一个小程序,先上程序,一共55行.不在意细节的话,55行的程序已经表现出了协同过滤的特性了.就是对每 ...
- Python 字符串过滤
需求: str1 = " """<div class="m_wrap clearfix"><ul class=" ...
随机推荐
- 在linux上一行代码不用写实现自动采集+hadoop分词
在linux上一行代码不用写实现自动采集+hadoop分词 将下面的shell脚本保存成到xxx.sh,然后执行即可 cd /opt/hadoop mkdir spider wget -O spide ...
- PHP 判断字符串 是否 包含另一个字符串
1.stristr 忽略大小写 $string = 'Hello World!'; if(stristr($string, 'earth') === FALSE) { echo '"eart ...
- Tomcat *的下载(绿色版和安装版都适用)
不多说,直接干货! 1.先下载tomcat,到http://tomcat.apache.org/ 2.注意:下载可以下载zip格式或exe格式的,其中zip格式的只要解压缩再配置下环境变量就可以使用了 ...
- 我爱Markdown (3)
继续Markdown的常见语法, 本文将介绍: 07 - Links 链接 08 - Images 图片 09 - Blockquotes 块引用 10 - Backslash Escapes 显示保 ...
- mongo 聚合
public Object testAggregation1() { TypedAggregation<News> aggregation = Aggregation.newAggrega ...
- Delphi 枚举所有进程
通过进程快照枚举所有进程,关于进程快照,在Delphi5开发人员指南中有说明,当然也可以百度一下用法. 使用进程快照CreateToolhelp32Snapshot,必须uses TlHelp32单元 ...
- sublime text3 破解及常用插件
sublime text3 下载 破解 submelime Text > About sublime Text //看是否注册并 查看当前的版本 然后百度或google搜索 'sublime t ...
- TypeScript 乱糟笔记
数组头上插一个值. var arr: Array<String> = ['a', 'b', 'c'];arr.unshift('d'); object删除元素. var obj: Obje ...
- 小菜读书---《Effective C#:改善C#程序的50种方法》
一.用属性代替可访问的字段 1..NET数据绑定只支持数据绑定,使用属性可以获得数据绑定的好处: 2.在属性的get和set访问器重可使用lock添加多线程的支持. 二.readonly(运行时常量) ...
- KnockoutJS Select 标签 Options绑定
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...