参考某个博客,代码不全,地址找不到了见谅,加了些自己弄的算法。

备忘

#-*- 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 过滤股票的更多相关文章

  1. 【转】使用Python matplotlib绘制股票走势图

    转载出处 一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使 ...

  2. 基于Python协同过滤算法的认识

    Contents    1. 协同过滤的简介    2. 协同过滤的核心    3. 协同过滤的实现    4. 协同过滤的应用 1. 协同过滤的简介 关于协同过滤的一个最经典的例子就是看电影,有时候 ...

  3. Python实战——基于股票的金融数据量化分析

    说明:本文只是通过自己的已学知识对股票数据进行了一个简单的量化分析,只考虑了收盘情况,真实的量化交易中仅仅考虑收盘情况是不够的,还有很多的复杂因素,而且仅仅三年数据是不足以来指导真实的股票交易的,因此 ...

  4. 用python+tushare获取股票前复权后复权行情数据

    接口名称 :pro_bar 接口说明 :复权行情通过通用行情接口实现,利用Tushare Pro提供的复权因子进行计算,目前暂时只在SDK中提供支持,http方式无法调取. Python SDK版本要 ...

  5. Python数据分析之股票数据

    最近股市比较火,我7月初上车了,现在已经下了.中间虽然吃了点肉,但下车的时候都亏进去了,最后连点汤都没喝着. 这篇文章我们就用python对股票数据做个简单的分析.数据集是从1999年到2016年上海 ...

  6. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

  7. python爬取股票最新数据并用excel绘制树状图

    大家好,最近大A的白马股们简直 跌妈不认,作为重仓了抱团白马股基金的养鸡少年,每日那是一个以泪洗面啊. 不过从金融界最近一个交易日的大盘云图来看,其实很多中小股还是红色滴,绿的都是白马股们. 以下截图 ...

  8. 简单的python协同过滤程序

    博主是自然语言处理方向的,不是推荐系统领域的,这个程序完全是为了应付大数据分析与计算的课程作业所写的一个小程序,先上程序,一共55行.不在意细节的话,55行的程序已经表现出了协同过滤的特性了.就是对每 ...

  9. Python 字符串过滤

    需求: str1 = " """<div class="m_wrap clearfix"><ul class=" ...

随机推荐

  1. Mac下利用SSH进行传输文件(转)

    //1.从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本地目录) //例如scp root@192.168.0 ...

  2. CKEditor图片上传实现详细步骤(使用Struts 2)

    本人使用的CKEditor版本是3.6.3.CKEditor配置和部署我就不多说. CKEditor的编辑器工具栏中有一项“图片域”,该工具可以贴上图片地址来在文本编辑器中加入图片,但是没有图片上传. ...

  3. Linux C笔记

    <Linux C编程一站式学习>笔记 gcc编译 直接编译 gcc main.c a.out 指定可执行文件名 gcc main.c -o main main 提示所有的警告信息 gcc ...

  4. WPF中用后台C#代码为TabItem设置Background属性

    TabItem tabItem = sender as TabItem; tabItem.Background = new ImageBrush(new BitmapImage(new Uri(@&q ...

  5. redis中save和bgsave区别

    转自:redis中save和bgsave区别 SAVE 和 BGSAVE 两个命令都会调用 rdbSave 函数,但它们调用的方式各有不同: SAVE 直接调用 rdbSave ,阻塞 Redis 主 ...

  6. SQL语句实现不存在即插入,存在则increase某字段的功能insert into … on duplicate key update

    前提条件:必须是唯一主键: CREATE UNIQUE INDEX idx_vote_object ON test_customers_vote (`vote_object`, `vote_objec ...

  7. %notfound的理解——oracle存储过程 .

    文档中的解释:It returns TRUE if an INSERT, UPDATE, or DELETE statement affected no rows, or a SELECT INTO ...

  8. golang的bytes.NewReader函数出现的问题

    在我试图装入一个300mb的数据时,发生了溢出. 我本以为不会出现这种问题的(内存和硬盘都够用),可见golang的bytes包还是设置了容量限制的. 虽然通常来说300mb的[]byte不管什么情况 ...

  9. vuex源码分析3.0.1(原创)

    前言 chapter1 store构造函数 1.constructor 2.get state和set state 3.commit 4.dispatch 5.subscribe和subscribeA ...

  10. C# DateTime类型和sqlserver DateTime精度不同

    在最近的项目中, 有个关于时间的功能.一个请假的时间.前端选择的时候只有日期.所以比如请一天假就是选2017-8-15和2017-8-15,这样算请这一天的假.但是后台存入数据库时我不能就存2017- ...