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

备忘

#-*- 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. Visual Studio 跨平台開發實戰(5) - Xamarin Android 多頁面應用程式開發 (转帖)

    前言 大部份的Android 都具有實體或虛擬的Back鍵. 因此在處理多頁面應用程式時, 與先前所介紹的iOS Navigation controller 比較起來會簡單許多. 1. 開啟Visua ...

  2. C# 文件操作系列一

    在.Net环境中,所有关于文件操作的类都在System.IO命名空间下,注:在修改文件时,安全性显得格外重要,但是本随笔不过多讲述安全性,这里假设我们有足够的权限. 1.管理文件系统 先通过一幅图来了 ...

  3. 什么是 JWT -- JSON WEB TOKEN

    看链接:http://www.jianshu.com/p/576dbf44b2ae 来个工具类: import java.io.Serializable; import java.util.Date; ...

  4. 用gdb理解C宏(#和##)

    在Unix/Linux内核代码以及GNU libc源代码中,有两个C的宏被广泛使用. 例如: /* glibc-2.25/sysdeps/powerpc/powerpc64/sysdep.h */ # ...

  5. ORACLE 分页 java 用jdbc方式以 sys账号连接oracle数据的问题

    2,3,4,6,8   betwenen 为闭区间,前后都包括 select * from(select a.*,rownum rn from (select * from student) a ) ...

  6. iOS选择相片优化

    1.问题 在ios中有时需要选择本地图片或者拍照,有时候选择相片的时候会有多选和单选,所以需要首先封装相册选择,在之前的博客中也有写到IOS多选单选相册图片.这个只是对相册中选择图片的封装.我们在ap ...

  7. CADisplayLink+弹簧动画实现果冻效果

    项目中在Tabbar中间的按钮要从底部弹出视图并有果冻效果,在CocoaChina中找了一篇博客用 UIBezierPath 实现果冻效果,github,自己就按着上面的demo修改了一下( 之前也是 ...

  8. Rest分享

    分享提纲引言:微服务, 漂亮小姑娘,帅气小伙 这老头是个奇人,特别擅长抽象归纳和制造概念.特别是微服务这种新生的名词,都有一个特点:一解释就懂,一问就不知,一讨论就打架. REST是什么,是一个模式, ...

  9. Logback学习笔记

    Logback介绍 Logback 分为三个模块:Core.Classic 和 Access.Core模块是其他两个模块的基础. Classic模块扩展了core模块. Classic模块相当于log ...

  10. [转]关于NTLM认证的.NET,php,python登录

    本文转自:http://www.cnblogs.com/myx/archive/2013/03/25/php-ntlm-python-net.html 早期SMB协议在网络上传输明文口令.后来出现 L ...