#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat May  5 12:43:52 2018@author: luogan
"""# -*- coding: utf-8 -*-
"""
Created on Thu Dec 14 15:26:31 2017@author: 量化之王
"""import pymongo
import pandasimport pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import pylab as pl
import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY
from matplotlib.finance import quotes_historical_yahoo_ohlc, candlestick_ohlcfrom matplotlib.pylab import date2numimport talib
from dateutil.parser import parse
import tushare as tsclient1 = pymongo.MongoClient('192.168.10.182',27017)
db1 = client1.stock.low_closedef before_month_lastday(ti,k):from dateutil.parser import parsetoday=parse(str(ti))#first = datetime.date(day=1, month=today.month, year=today.year)lastMonth = today - datetime.timedelta(days=k)def plus(k):if k<10:return '0'+str(k)else:return str(k)y=lastMonth.yearm=lastMonth.monthd=lastMonth.day#day=calendar.monthrange(y,m)[1]cc=str(y)+plus(m)+plus(d)#bb=parse(cc)#pacific = pytz.timezone('Asia/Shanghai')#return pacific.localize(bb) return int(cc)      def polyfit(c,k):#print(close)xlist=list(range(len(c)))bbz1 = np.polyfit(xlist, c,k)# 生成多项式对象{#bbp1 = np.poly1d(bbz1)#f5=bbp1(pl-1)#f6=bbp1(pl)return bbz1[0]def potential_index(tl):#df=ts.get_hist_data(name,start=bf,end=now)df=ts.get_hist_data(tl[0],start=tl[1],end=tl[2])if str(type(df))!="<class 'NoneType'>":if df.shape[0]>250:date=df.indexdate1=list(map(parse,date))df['date']=date1df=df.sort_values(by='date')#print('df=',df)#df=ts.get_k_data('002230',start='2015-01-12',end='2018-04-30')#提取收盘价closed=df['close'].valuesopend=df['open'].valueslow=df['low'].values#获取均线的数据,通过timeperiod参数来分别获取 5,10,20 日均线的数据。#ma5=talib.SMA(closed,timeperiod=30)#ma10=talib.SMA(closed,timeperiod=60)#ma250=talib.SMA(closed,timeperiod=250)p=closed[-1]o=opend[-1]opp=min(p,o)n=low[-1]#print('p=',p)#print('n=',n)ra=(opp-n)/opp#print('kk=',kk)#print('ra=',ra)if ra>=0.05:#print('kk=',kk)print('ra=',ra)print('name',tl[0])#db1.insert_one({'name':tl[0],'ratio':ra})#db1.save({'name':tl[0]})tt=before_month_lastday(tl[2],0)#db1.save({'name':tl[0],'potential':vv})#return vv*1.0db1.replace_one({"name":tl[0],"date":tt},{  "name":tl[0],"date":tt,'ratio':round(ra,2)},True)print('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$')#return vv*1.0#mm=potential_index(code[100])ak=ts.get_stock_basics()code=list(ak.index)def front_step_time(day):now = datetime.datetime.now()front = now - datetime.timedelta(days=day)d1 = front.strftime('%Y-%m-%d')#return int(d1)return d1now=front_step_time(0)bf=front_step_time(720)sheet=pd.DataFrame()
sheet['code']=codesheet['bf']=bf
sheet['sta']=now
#name='600354'
#b1=potential_vocanol(name,'2017-11-14','2018-02-14')
#b2=potential_vocanol(name,'2018-02-14','2018-04-13')import time
from multiprocessing import Pool
import numpy as npte =sheet.values'''
for name in te:mm=potential_index(name)#print(name,mm)'''
if __name__ == "__main__" :startTime = time.time()testFL =sheet.values#ll=codepool = Pool(20)#可以同时跑10个进程pool.map(potential_index,testFL)pool.close()pool.join()   endTime = time.time()print ("time :", endTime - startTime)
{ "_id" : ObjectId("5aed3d531815c4ffea37f824"), "name" : "300519", "date" : NumberInt(20180505), "ratio" : 0.06
}
{ "_id" : ObjectId("5aed3d571815c4ffea37f835"), "name" : "002806", "date" : NumberInt(20180505), "ratio" : 0.06
}
{ "_id" : ObjectId("5aed3d5e1815c4ffea37f850"), "name" : "600753", "date" : NumberInt(20180505), "ratio" : 0.08
}
{ "_id" : ObjectId("5aed3d5e1815c4ffea37f854"), "name" : "002047", "date" : NumberInt(20180505), "ratio" : 0.06
}
{ "_id" : ObjectId("5aed3d621815c4ffea37f865"), "name" : "002726", "date" : NumberInt(20180505), "ratio" : 0.08
}
{ "_id" : ObjectId("5aed3d661815c4ffea37f878"), "name" : "002592", "date" : NumberInt(20180505), "ratio" : 0.08
}
{ "_id" : ObjectId("5aed3d661815c4ffea37f87a"), "name" : "002584", "date" : NumberInt(20180505), "ratio" : 0.1
}
{ "_id" : ObjectId("5aed3d671815c4ffea37f87e"), "name" : "002161", "date" : NumberInt(20180505), "ratio" : 0.06
}
{ "_id" : ObjectId("5aed3d801815c4ffea37f8e1"), "name" : "002691", "date" : NumberInt(20180505), "ratio" : 0.09
}

Python量化(八)下影线选股法相关推荐

  1. python量化交易--因子选股策略

    Fama-French三因子选股策略,三因子分别为  市场因子(股指).市值因子.账面市值比因子 三因子模型的具体步骤: 1.对股票按照市值和账面市值比分组,共计六组,市值按大小市值各50%分,账面市 ...

  2. Python 量化分析——基本面选股模型

    摘要 利用Python进行量化分析,AkShare获取股票基本面财务数据.进行基本面数据分析,pe市盈率.ps市销率.pb市净率.总市值等数理统计,以及图表展示.基于莫伦卡选股模型进行编码,对A股30 ...

  3. Python量化交易05——基于多因子选择和选股策略(随机森林,LGBM)

    参考书目:深入浅出Python量化交易实战 在机器学习里面的X叫做特征变量,在统计学里面叫做协变量也叫自变量,在量化投资里面则叫做因子,所谓多因子就是有很多的特征变量. 本次带来的就是多因子模型,并且 ...

  4. Python量化投资初探:自动化选股策略

    最近股市可谓是冰火两重天,赛道股一路高歌,激流勇进,传统大白马却跌跌不休,淹没了不少韭菜. 热门赛道不断切换,小匠也是看得眼花缭乱,大A四千多家上市公司,很多之前听都没听过的股票,乘着赛道这股东风连续 ...

  5. python量化选股策略_牛刀小试-小市值选股策略

    选股是每个炒股者都会经历的过程.可以通过资金选股系统了解资金流向,加强判断趋势:对个股评级,验证自己选择股票的优劣:善于利用工具可以更轻松地选股,同时也要多了解行业动态各方面的信息. 如何利用量化交易 ...

  6. python量化投资培训清华大学深研院_GitHub - CatsJuice/quantitative-investment-learning: 使用Python进行量化投资的学习报告...

    quantitative-investment-learning 使用Python进行量化投资的学习报告 Python量化投资学习报告 CatsJuice 编辑于 2019-4-26 上一次更新: 2 ...

  7. 送书 | 新书《Python量化金融编程从入门到精通》

    又到了每周三的送书时刻啦!今天给大家带来的是<Python量化金融编程从入门到精通>!       (文末查看送书规则) 查看全文 http://www.taodudu.cc/news/s ...

  8. 大师系列之彼得•林基调选股法

    原 大师系列之彼得•林奇基层调查选股法 前几期文章粗略讲了一套多因子选股策略的构建流程.这期,我们来研究下投资大师--彼得•林奇的选股策略. 彼得•林奇被称为全世界最成功的股票投资家和证券投资基金经理 ...

  9. 你应该知道的21大Python量化交易工具

    技术可用性的快速增长使个人交易者也能够进行系统和算法交易.下面为大家分享2022年 Python 量化交易使用最广泛的21大交易平台和框架.经纪自营商.数据提供商和其他有用的交易库等,这些交易库适用于 ...

最新文章

  1. asp之GetArray提取链接地址,以$Array$分隔的代码
  2. 2017,SAP向云看齐
  3. D435 pyrealsense 如何实时获取摄像头的曝光值?get_frame_metadata(rs.frame_metadata_value.actual_exposure)成功了(更新UWP)
  4. Vue中使用js-cookie插件实现登录时记住密码后存取到Cookie中
  5. 中国银河证券签约神策数据 数据赋能业务跨越性增长
  6. 一个form 如何做两次提交_如何做一个调酒师
  7. python界面开发工具手机版_Python界面编程工具包WxPython
  8. python请编写程序、生成随机密码_python习题:登录注册小程序(用户名密码存在文件中)、生成随机密码小程序...
  9. 2020大一下暑期实习--funcode游戏设计
  10. 【Win10】【开始菜单打不开】任务栏修复
  11. win10打开文件夹卡顿
  12. ip地址详解(深入网络层分析)
  13. Android,iOS应用适配IPv6之网络配置
  14. 笔记本安装Ubuntu9.04.图文并茂
  15. PHP加密解密方法 阿星小栈
  16. 【AI with ML】第 8 章 :使用 TensorFlow 创建文本
  17. PyQt5教程(二):日期与时间
  18. omnet++,veins,plexe模块介绍与实现
  19. 开车,网吧,魔兽争霸,几天独特的生活体验
  20. 如何开发在线教学系统,提供线上教学平台的解决方案

热门文章

  1. 老男孩教育每日一题-第86天-nfs客户端挂载信息写入/etc/fstab中,系统重启,没有自动挂载是什么原因?...
  2. 使用快嘉框架开发项目示例
  3. Android-Material-Examples
  4. Linux系统安全审计工具Lynis
  5. javascript中处理时间戳为日期格式的方法
  6. Firefox XUL
  7. 802.11协议之BA/BAR帧
  8. CSP认证201509-2 日期计算[C++题解]:枚举、模拟
  9. PAT甲级1131 Subway Map (30分):[C++题解]堆优化dijkstra、单源最短路、地铁地图、巧妙地建图套dijkstra模板!!
  10. 二维vector的声明和初始化