# 导入函数库
import jqdata
from jqlib.technical_analysis import *
# 初始化函数,设定基准等等
def initialize(context):
# 设定沪深300作为基准
set_benchmark('000300.XSHG')
# 开启动态复权模式(真实价格)
set_option('use_real_price', True)
# 输出内容到日志 log.info()
log.info('初始函数开始运行且全局只运行一次')
# 过滤掉order系列API产生的比error级别低的log
# log.set_level('order', 'error')
### 股票相关设定 ###
# 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
# 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的)
# 开盘前运行
run_daily(before_market_open, time='before_open', reference_security='000300.XSHG')
# 开盘时运行
run_daily(market_open, time='open', reference_security='000300.XSHG')
# 收盘后运行
run_daily(after_market_close, time='after_close', reference_security='000300.XSHG')
def before_market_open(context):
# 输出运行时间
log.info('函数运行时间(before_market_open):'+str(context.current_dt.time()))
# 给微信发送消息(添加模拟交易,并绑定微信生效)
send_message('美好的一天~')
# 要操作的股票:云南白药(g.为全局变量)
g.security = '000538.XSHE'
def market_open(context):
log.info('函数运行时间(market_open):'+str(context.current_dt.time()))
security = g.security
# 获取股票的收盘价
# 设定均线
n1 = 5
n2 = 10
n3 = 30
# 获取股票的收盘价
close_data = attribute_history(security, n3+2, '1d', ['close'],df=False)
# 取得过去 ma_n1 天的平均价格
ma_n1 = close_data['close'][-n1:].mean()
# 取得过去 ma_n2 天的平均价格
ma_n2 = close_data['close'][-n2:].mean()
# 取得过去 ma_n3 天的平均价格
ma_n3 = close_data['close'][-n3:].mean()
# 取得上一时间点价格
current_price = close_data['close'][-1]
#获得BOLL指标的上轨值、中轨值和下轨值
upperband, middleband, lowerband = Bollinger_Bands(security, check_date=context.current_dt, timeperiod=20, nbdevup=2, nbdevdn=2)
# 取得当前的现金
cash = context.portfolio.available_cash
# 如果上一时间点价格高出中轨值, 则全仓买入
if ma_n1 > ma_n2 and ma_n2> ma_n3 and current_price > middleband[security] :
# 记录这次买入
log.info("收盘价站上BOLL指标中轨, 买入 %s" % (security))
# 用所有 cash 买入股票
order_value(security, cash)
# 如果上一时间点价格低于五天平均价, 则空仓卖出
elif ma_n1 > ma_n2 and ma_n2> ma_n3 and current_price > upperband[security] and context.portfolio.positions[security].closeable_amount > 0:
# 记录这次卖出
log.info("收盘价站上BOLL指标上轨, 卖出 %s" % (security))
# 卖出所有股票,使这只股票的最终持有量为0
order_target(security, 0)
def after_market_close(context):
log.info(str('函数运行时间(after_market_close):'+str(context.current_dt.time())))
#得到当天所有成交记录
trades = get_trades()
for _trade in trades.values():
log.info('成交记录:'+str(_trade))
log.info('一天结束')
log.info('##############################################################')
没有合适的资源?快使用搜索试试~ 我知道了~
学习python量化交易的代码.zip
共253个文件
txt:132个
py:106个
csv:8个
需积分: 5 3 下载量 166 浏览量
2024-02-22
09:34:02
上传
评论
收藏 252KB ZIP 举报
温馨提示
学习python量化交易的代码
资源推荐
资源详情
资源评论
收起资源包目录
学习python量化交易的代码.zip (253个子文件)
table-stock.csv 58KB
index.csv 41KB
etf.csv 37KB
factors.csv 19KB
all_concepts.csv 7KB
GLDQ000651.csv 380B
mystock.csv 195B
mystock.csv 195B
stock-data.db 48KB
.gitignore 2KB
testblueline.jpg 5KB
stock_pool.json 134KB
stock_20_pool.json 832B
LICENSE 1KB
README.md 172B
pandas_test.py 40KB
eight.py 36KB
seven.py 29KB
nine_risk.py 24KB
nine_time_strategy.py 23KB
six_probability.py 17KB
matplot_test.py 17KB
MultiGraphIf.py 16KB
seven_sqlite.py 14KB
three.py 11KB
nine_select_strategy.py 9KB
MplVisualIf.py 7KB
tushare_funct.py 3KB
Python6-4.py 3KB
sqlite_test.py 2KB
Python5-18.py 2KB
test.py 2KB
mysqlUtil.py 2KB
Python6-2.py 2KB
maxDown3.py 1KB
BigDeal.py 1KB
Python7-4.py 1KB
Python6-15.py 1KB
Python3-6.py 1KB
cv2_test1.py 1KB
Python5-17.py 1KB
Python7-3.py 1KB
Python6-3.py 1KB
Python5-5.py 954B
Python4-8.py 908B
Python2-3.py 863B
Python7-5.py 818B
Python3-4.py 814B
Python7-6.py 789B
Python4-7.py 781B
Python5-4.py 755B
Python3-5.py 739B
Python5-20.py 695B
timeit_test.py 656B
Python2-6.py 643B
mymod2.py 637B
Python5-15.py 632B
Python3-8.py 623B
Python4-4.py 600B
Python5-11.py 566B
Python5-6.py 559B
Python5-13.py 558B
Python5-19.py 536B
Python2-7.py 528B
Python5-1.py 528B
Python6-1.py 522B
Python2-4.py 508B
Python7-1.py 490B
Python6-14.py 482B
Python5-8.py 479B
Python6-5.py 475B
Python2-8.py 473B
mymod1.py 457B
Python6-11.py 428B
Python3-1.py 425B
Python5-21.py 416B
Python1-1.py 412B
Python3-9.py 412B
Python7-2.py 404B
Python3-10.py 398B
maxDown.py 395B
Python3-2.py 387B
Python5-2.py 383B
Python4-5.py 382B
Python6-7.py 373B
Python3-7.py 371B
Python6-10.py 370B
Python7-8.py 365B
Python5-3.py 355B
Python4-11.py 355B
Python4-13.py 344B
Python3-3.py 342B
Python6-6.py 341B
Python4-15.py 329B
Python4-1.py 312B
mymodule.py 312B
Python5-7.py 310B
Python2-2.py 307B
Python4-14.py 286B
Python6-9.py 285B
共 253 条
- 1
- 2
- 3
资源评论
Kwan的解忧杂货铺
- 粉丝: 1w+
- 资源: 3682
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于中小型游戏的通用排行榜后台系统.zip
- 一秒99条的短信接口.zip
- 基于jsp+servlet+mysql的javaweb健身房俱乐部系统
- 110_c6ce6db7048c08aee35a7a2675732d54.apk (1).1
- sql查询数据库表结构(sql server适用)
- HTTP CLENT处理加密证书程序参考
- update9-20240601.5.205.slice.img.7z.002
- 微信小程序优惠券页面前端模板源码
- 林子雨编著《Spark编程基础(Python版)》 实验7 Spark机器学习库MLib编程实践数据
- 一种支持微信文本限制长度限制使用的,在合适的位置截取限制字节长度的字符串子串的java算法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功