Python编程100天进阶实战指南

需积分: 9 1 下载量 7 浏览量 更新于2024-12-16 收藏 5KB ZIP 举报
资源摘要信息: "100-Days-of-Code-in-Python" 是一个以Python编程语言为核心的学习计划,旨在通过100天的连续编码练习来提高编程技能。该计划涵盖了Python的基础知识,进阶知识,以及实际的项目开发经验。参与者将通过一系列编程练习和挑战,逐步建立起扎实的编程基础,并提升解决问题的能力。 知识点详细说明: 1. Python基础:包括Python的安装、环境配置、基本语法、数据类型、变量、运算符、控制结构(如if语句、循环等)、函数定义和使用、模块和包的概念、文件操作等。这是学习Python的第一步,为后续的深入学习打下坚实的基础。 2. 数据结构与算法:学习Python中的数据结构,例如列表、元组、字典、集合,以及它们的操作和应用。同时,还包括算法的学习,如排序、搜索、递归等,以及如何在Python中实现这些算法。 3. 面向对象编程:理解面向对象编程的基本概念,如类与对象、继承、多态、封装等,并学习如何在Python中使用这些概念来编写更加模块化和可重用的代码。 4. 异常处理与文件操作:学习如何在Python中处理异常,以及进行文件读写操作,这涉及到文件的打开、读取、写入、关闭等操作,以及异常的捕获和处理。 5. 数据库操作:掌握使用Python进行数据库操作,包括连接数据库、执行SQL查询、处理结果集等,通常涉及SQLite、MySQL或PostgreSQL等数据库系统。 6. Web开发:了解Web开发的基础知识,包括HTTP协议、HTML、CSS、JavaScript以及网络请求。学习使用Python中的Web框架,如Flask或Django,来创建Web应用。 7. 自动化脚本编写:利用Python强大的库和框架来编写自动化脚本,执行日常任务,如文件系统管理、数据抓取、测试自动化等。 8. 数据分析与可视化:学习如何使用Python进行数据处理和分析,包括使用NumPy、Pandas等库进行数据清洗、处理、分析,以及使用Matplotlib、Seaborn等库进行数据可视化。 9. 机器学习:探索Python在机器学习领域的应用,包括学习常用的机器学习库,如scikit-learn,以及进行数据预处理、模型训练、参数调优和模型评估等。 10. 项目实践:通过实际项目实践将所学知识融会贯通,如开发个人博客、构建API、完成数据科学项目或机器学习模型等,以实际编码项目来巩固学习成果。 以上知识点贯穿在100-Days-of-Code-in-Python学习计划中,每个阶段都有具体的练习和项目来帮助学习者逐步掌握Python编程技能,并能够在实际项目中应用这些技能。通过这样的系统学习和持续练习,学习者可以在100天内显著提升自己的编程能力,并为未来的职业生涯或更高级的编程挑战做好准备。

import datetime today = datetime.date.today() ## 获取今天的日期 day1=datetime.date.today()-datetime.timedelta(300) ### 获取300天之前的日期 day2=datetime.datetime.strftime(today,"%Y-%m-%d" ) all_stock = get_all_securities(types=['stock'], date=day2) ### 获取所有股票代码 code=list(all_stock.index) ## 判断是否ST 并且删除st的股票代码 df_st=get_extras('is_st',code,start_date=day1,end_date=day2) for i in code: if any(df_st[i].values): code.remove(i) stock_list=[] for i in code: start_date=get_security_info(i).start_date days=(today-start_date).days if days>300: #### 选出上市满天300的股票 stock_list.append(i) data=dict() for i in stock_list: df=get_price(i,start_date=day1,end_date=day2,frequency='daily', fields=['open','close','high','low']) data[i]=df ### 将数据分成选股数据和回测数据。假设用中间的120根k线,后60根k线回测 code=[] n=45 ## n为回测k线的个数 s设为45 (可以随意调整) for i in stock_list: df=data[i] max_=max(df.high[-190:-n-1]) ### 选140=(190-45)根k线(可以随意调整) min_=min(df.low[-190:-n-1]) max_close=max(df.close[-190:-n-1]) ### 选出平台震荡期间振幅小于50%的,且,最后三天连涨,最后一天突破平台最大收盘价超过5%的所有股票 if all([max_/min_<1.5,df.close[-n-1]>df.close[-n-2]>df.close[-n-3],df.close[-n-1]/max_close>1.05]): code.append(i) ### 买入过程 ## 假设根据上面平台突破选出来的股票作为买入标的 ## 买入原则是 当天选出来的股票第二天以开盘价买入。且把选出来的每只股票以,同等资金额买入 capital=100000 ## 初始资金为 10万元 position=dict() ## 初始持仓手数为一个空字典 def handle(stock_list,capital,posttion,data,n): capital_=0 for i in code: capital_per=capital/len(code) position[i]=int(capital_per/(data[i].open[-n]*100)) capital_+=capital_per-position[i]*data[i].open[-n]*100 return ([position,capital_]) position_result=handle(get_code(),capital,position,data,n)修改上述代码,使能在jupyter里面运行

2023-06-06 上传