import talib

import numpy as np

import math

import pandas

import time

import datetime

from functools import reduce

#init方法是您的初始化逻辑,context对象可以在任何函数之间传递

def init(context):

#滑点默认值为2‰

context.set_slippage(0.002)

#交易费默认值为0.25‰

context.set_commission(0.00025)

#基准默认为沪深300

context.set_benchmark("000300.SH")

#调仓周期

task.weekly(option_stock, weekday=2, time_rule=market_open(minute=5))

#下面为几个定时执行的策略代码,可放开注释替换上面的执行时间

#task.daily(option_stock, time_rule=market_close(minute=5)) #每天收盘前5分钟运行

#task.weekly(option_stock, weekday=2, time_rule=market_open(minute=5)) #每周周二开盘后5分钟运行

#task.monthly(option_stock, tradingday=1 ,time_rule=market_open(minute=5)) #每月第1个交易日开盘后5分运行

#每天开盘前进行选股

def before_trade(context):

context.stock_list = choose_stock_finance()

#日或分钟或实时数据更新,将会调用这个函数

def handle_data(context,data_dict):

pass

#操作股票

def option_stock(context,data_dict):

stock_list = context.stock_list

sell_stock(context,stock_list,data_dict) #先卖出股票再买入

for stock in stock_list:

buy_stock(context,stock) #买入股票

#策略买入信号函数

def buy_stock(context, stock):

context.percentage = 1 #设置单支股票最大买入仓位

stock_buy_num = 10 #最多买入股票数量

stock_percentage = 0.99/stock_buy_num #每支股票买入的最大仓位

if len(context.portfolio.positions) < stock_buy_num:

if stock_percentage > context.percentage: #设置单支股票最大买入仓位

stock_percentage = context.percentage #更换买入仓位

order_percent(stock, stock_percentage) #买入股票

#策略卖出信号函数

def sell_stock(context,stock_list,data_dict):

for stock in list(context.portfolio.positions.keys()):

if not (stock in stock_list):

order_target_value(stock,0) #如果不在股票列表中则全部卖出

#选股函数

def choose_stock_finance():

dataframe = get_fundamentals(

query(

fundamentals.equity_valuation_indicator.pe_ratio_ttm, fundamentals.equity_valuation_indicator.pe_ratio_nobtest, fundamentals.equity_valuation_indicator.pe_ratio, fundamentals.financial_analysis_indicator.inc_gross_profit, fundamentals.equity_valuation_indicator.market_cap_2

).filter(

fundamentals.equity_valuation_indicator.pe_ratio_ttm > 10

).filter(

fundamentals.equity_valuation_indicator.pe_ratio_ttm < 40

).filter(

fundamentals.equity_valuation_indicator.pe_ratio_nobtest > 10

).filter(

fundamentals.equity_valuation_indicator.pe_ratio_nobtest < 40

).filter(

fundamentals.equity_valuation_indicator.pe_ratio > 10

).filter(

fundamentals.equity_valuation_indicator.pe_ratio < 40

).filter(

fundamentals.financial_analysis_indicator.inc_gross_profit > 1

).filter(

fundamentals.financial_analysis_indicator.inc_gross_profit < 100

).filter(

fundamentals.equity_valuation_indicator.market_cap_2 > 10000000000

).filter(

fundamentals.equity_valuation_indicator.market_cap_2 < 30000000000

)

)

stock_list = dataframe.columns.values

return stock_list

阅读原文:http://club.jr.jd.com/quant/topic/1462027

京东金融官方咨询QQ群:456448095 欢迎咨询讨论与交流

量化策略——市盈率策略选股相关推荐

  1. 选股策略与技巧 选股策略报告

    选股策略与技巧 选股策略报告 宏观经济分析选股 在宏观经济状况良好的情形下,大部分公司就有比较优良的经营业绩,股价才有上涨的趋势:而如果宏观经济处于低迷状态,大部分公司的经营业绩就会比较差,其股价自然 ...

  2. 聚宽策略一 价值选股股票池策略

    价值选股股票池策略 基于价值选股股票池策略(第一个量化策略,基于聚宽平台,之后会改进) 代码如下: import jqdata import pandas as pd import numpy as ...

  3. 中国私募量化简史:策略、投顾、业态及展望

    题记:量化投资在国内发展与实践差不多有快十年的时间,即使只对这个行业做一个简单的回顾,也不是一件轻松的事情.不同的人有不同的看法与认知,本文权当抛砖引玉,从影响因素(市场环境.监管政策.技术因素.外来 ...

  4. matlab alpha策略,不可不知的N种量化策略模型——alpha策略

    原标题:不可不知的N种量化策略模型--alpha策略 本文共2880字,预计阅读需13分钟 这是一个量化(程序化)策略全方位揭密帖! 如果你是一个拥有充足的时间,充满求知欲,渴望通过自身的努力克服重重 ...

  5. 金融量化 — 配对交易策略 (Pair Trading)

    1. 配对交易策略 1.1.引言 在量化投资领域,既然严格的无风险套利机会少.收益率微薄,实际的执行过程中也不能完全消除风险.那么如果有一种选择,能够稍微放松100%无风险的要求,比如允许有5%的风险 ...

  6. 量化交易策略 alpha策略

    Alpha多因子量化对冲交易策略是一种利用多因子模型预测股票价格涨跌,并对抗市场风险的投资策略.其中因子可以是市值.成长性.质量.价值等. 以下是Python代码的示例: import numpy a ...

  7. 量化的股票交易策略是什么意思?

    量化的股票,也称作自动化交易,是指通过先进的数学模型替代人为的主观判断,避免在市场极度狂热或悲观的情况下做出非理性的投资决策,也简称是量化交易接口. 量化的股票交易是通过编程,设定不同的各种指标条件, ...

  8. 一个量化快牛策略的运行逻辑

    你还在看电脑面前盯盘看K线吗? 你还在为一次亏损寝食难安,为一次盈利欣喜若狂吗? 如果是,那也许你就OUT了.随着量化交易的蓬勃发展,一群统计狗.程序猿们已经开始使用计算机模型进行交易了,这些程序用不 ...

  9. 如何借助现有股票量化交易平台编写策略和回测分析

    每个交易日的股票都会上涨或者下跌,在这个过程中笔者们偶尔会想针对部分股票进行股价的涨跌幅进行监控,或者自动进行交易,在这个需求前提下,现有券商.股票分析软件都会带有机器人自动交易策略功能,大部分都需要 ...

最新文章

  1. 比Tiny YOLOv3小8倍,性能提升11个点,4MB的网络也能做目标检测
  2. DELPHI第三方控件及组件大全(安装方法与使用)
  3. querySelector
  4. mysql中如何求字段的个数字_求高手帮小弟解决一下!关于mysql字段中数字提取求和的问题?...
  5. 系统运维手册_如何摆脱“背锅侠”,做一个合格的IT运维人员
  6. android studio 导入项目卡死,AndroidStudio导入新项目一直卡在Building gradle project info...
  7. 博士生的deadline血泪史,这是一份来自Nature的避坑指南
  8. 计算 a+aa+aaa+aaaa+aaaaa+ 的和_海南A级景区,三亚市就有14个,你都去过吗
  9. 《推荐系统笔记(十五)》流行度以及基于流行度的推荐
  10. python与分形0011 - 【教程】带辐条的多边形
  11. 国外优秀的屏幕录象专家
  12. 如何测试串口线是否发生故障
  13. 3种免费的网页截图API,可以在线截图,自动生成缩略图
  14. 从0开始,手把手搭建个人网站
  15. elasticsearch-7.17.4 基础班升级到白金版本
  16. hashmap面试题,音视频学习指南来咯,社招面试心得
  17. flutter中好用的Widget-CupertinoPicker
  18. Django设置中文
  19. 修复This is probably not a problem with npm. There is likely additional logging output above.依赖问题
  20. 【ug903】Xilinx XDC约束的序(Order)

热门文章

  1. 【NOIP校内模拟】T3 长者(主席树+哈希+二分)
  2. JVM的清洁工具——常见的垃圾回收器
  3. 思科设备路由综合配置
  4. LEGO: Learning Edge with Geometry all at Once by Watching Videos(2018)
  5. 计算机网络-传输层:UDP协议
  6. IBM首位CMO谈新型营销理念:“增强营销”的崛起
  7. 图像处理中的振铃现象产生原因
  8. 【秋招面试】2020深信服校招前端面试
  9. 他们靠什么取胜电商大战
  10. Python爬虫学习之爬取豆瓣音乐Top250存入Excel表格中