一个牛逼因子,40多行Python代码选出一个翻倍的股票!

Python量化股票分析:挖掘财务因子寻找翻倍股
本文介绍了一种使用Python量化分析股票的方法,通过财务数据中的净利润同比增长率结合股价涨跌幅,筛选出低估股票。案例中,通过因子分析在创业板中找到“飞荣达”和“罗博特科”,这两只股票实现了显著的收益增长,验证了策略的有效性。
👇我的小册 40章教程:(小白零基础用Python量化股票分析小册

这个是我们的Python量化的系列内容,前面我们讲了很多内容,如何准备爬取数据,拿到数据如何清洗,如何回测,如何用策略去开仓平仓,如何可视化等等。上次介绍了一个不错的因子,会员群里很多小伙伴都在用。

今天又挖掘出一个不错的因子,看了一下效果不错,竟然一个月涨了56% ,2月份到现在已经翻倍了,太神奇了。

7b629d7c0ddd3c02abc454f8fe8d5f4a.png

我们还是以创业板为例子来挖掘股票(其他板块类似),这次的因子是涨跌幅和财务指标的因子。简单说就是财务数据很好,但是股票价格严重低估的,我们用Python来把这样的股票筛选出来,然后进行因子排名,择机入场。

1.什么是财务数据

财务数据,就是我们在股票软件或者股票网站上经常看到的F10. 主要是反应在一定时期内的财务状况、经营成果和现金流量的各项数值记录。这些数据通常通过财务报表来体现,主要包括资产负债表、利润表和现金流量表等。通过分析这些财务数据,投资者和分析师可以评估公司的财务健康状况、盈利能力、成长潜力和风险水平。

我们打开同花顺软件,随便找一个股票看一下:

5087e8498a259a35778fab47473656f3.png

这个里面有很多指标,我们挑几个拿出来

<think>我们正在编写一个吸引初学者的Python示例代码。考虑到引用[1]中提到可以创建一个简单的“皮卡丘”程序(比如显示ASCII艺术或简单交互),以及引用[2]中提到的趣味小游戏,我们可以设计一个简单的ASCII皮卡丘动画,并加入一些交互元素。 设计思路: 1. 使用ASCII艺术展示皮卡丘 2. 加入颜色(使用ANSI转义序列)使输出更生动 3. 实现简单的交互(例如,用户输入名字,皮卡丘打招呼) 4. 加入一个简单的动画效果(如皮卡丘眨眼) 注意:为了确保初学者容易理解,代码将保持简单并添加注释。 但是,由于ANSI转义序列在部分环境(如Windows旧版终端)可能不支持,我们也可以考虑使用第三方库如`colorama`来跨平台支持。但为了简化,我们这里先使用ANSI序列,并给出提示。 另外,我们可以让皮卡丘说一句欢迎语,并眨眼几次,形成简单动画。 步骤: 1. 定义皮卡丘的ASCII艺术(多行字符串) 2. 使用颜色代码给皮卡丘上色(黄色身体,红色脸颊等) 3. 使用循环实现眨眼动画(通过替换眼睛部分实现) 我们将编写一个函数来打印皮卡丘,然后实现眨眼效果(通过短暂清屏和重新绘制不同眼睛状态)。 考虑到初学者,我们尽量使用基础语法,避免复杂依赖。 注意:在部分终端中,清屏可能使用`os.system('cls')`或`os.system('clear')`,但这样会整个清屏,可能不够平滑。我们可以尝试使用打印多个空行来模拟清屏,或者使用转义序列将光标移到开头覆盖。 这里我们使用移动光标的转义序列:`\033[H`(将光标移动到左上角)然后重新绘制,这样就不会有闪烁感。但为了简单,我们也可以使用打印多个空行然后重新绘制(会有滚动,但简单)。 另一种方法是使用`\r`和`\033[K`来逐行移动,但这样复杂。我们择打印多个空行来模拟清屏,然后重绘。 由于是初学者示例,我们采用简单方法:打印50个空行来清屏(模拟清屏,实际是滚动出屏幕),然后重绘。这样虽然不完美,但容易理解。 或者,我们可以只改变眼睛部分,通过将光标移动到眼睛位置重新绘制眼睛。但这样需要计位置,对初学者可能稍复杂。因此,我们择重绘整个皮卡丘,但使用清屏命令(跨平台问题,我们使用os模块判断系统)。 为了更好的体验,我们使用`os.name`来判断系统,然后择清屏命令。 但是,为了保持简单,我们也可以不做清屏,而是让动画次数少一点,每次打印多个换行然后重绘,这样在大多数终端都能工作。 我们择:打印50个换行(这样旧内容会被推出屏幕),然后绘制新的皮卡丘。 代码结构: 1. 导入time模块(用于延时) 2. 定义皮卡丘的ASCII艺术(两个版本:睁眼和闭眼) 3. 定义颜色代码 4. 打印欢迎信息,获取用户名字 5. 循环几次,交替打印睁眼和闭眼的皮卡丘,形成眨眼效果 颜色代码: 黄色:\033[33m 红色:\033[31m 重置:\033[0m 注意:我们也可以使用其他颜色,比如脸颊用红色,身体用黄色。 由于ASCII艺术有多行,我们分别定义睁眼和闭眼的两幅图。 但是,为了减少重复,我们可以只定义一次身体,然后替换眼睛部分。但为了简单,我们直接定义两个完整的字符串。 示例皮卡丘ASCII艺术(睁眼): 我们可以画一个简单的皮卡丘,例如: 睁眼版本: ( 这里用两个点作为睁开的眼睛 ) 闭眼版本: ( 用横线表示闭上的眼睛 ) 我们设计一个简单的皮卡丘: 睁眼: \033[33m*******\033[0m \033[33m*\033[0m \033[33m*\033[0m \033[33m*\033[0m o o \033[33m*\033[0m \033[33m*\033[0m ^ \033[33m*\033[0m \033[33m*\033[0m \\_/ \033[33m*\033[0m \033[33m*******\033[0m 但是这样太简单,我们画一个更可爱的(参考网络上的ASCII皮卡丘,但简单化),并上色。 注意:脸颊部分用红色。 我们设计如下: 睁眼: \033[33m ,~~ ~~ \033[0m \033[33m{ \033[31m0 0\033[33m } \033[0m \033[33m ( ^Y^ ) \033[0m \033[33m >- -< \033[0m \033[33m || | | \033[0m \033[33m / / \ \ \033[0m 闭眼:把眼睛换成减号(表示闭眼): \033[33m ,~~ ~~ \033[0m \033[33m{ \033[31m- -\033[33m } \033[0m # 闭眼时,眼睛部分变成横线 ... 其余部分相同 但是,为了简单,我们直接定义两个字符串。 另外,我们可以在皮卡丘上方显示一句问候语,包含用户输入的名字。 步骤: 1. 询问用户名字 2. 打印50个换行(模拟清屏) 3. 打印问候语(例如:f"Hello, {name}! I'm Pikachu!") 4. 打印睁眼的皮卡丘 5. 等待0.5秒 6. 打印50个换行(模拟清屏) 7. 打印同样的问候语 8. 打印闭眼的皮卡丘 9. 等待0.210. 重复步骤4-9几次(比如3次) 最后保持睁眼状态。 代码实现如下:</think>下面是一个专为初学者设计的Python示例代码,结合了ASCII艺术、简单交互和趣味性,能直观展示Python编程的魅: ```python import time import random # 定义皮卡丘的ASCII艺术 PIKACHU = r"""    /l、  (゚、 。 7   l ~ヽ   じしf_,)ノ """ # 定义皮卡丘的对话 DIALOGUES = [ "皮卡皮卡!(你好呀~)", "皮卡丘!(我们一起学Python吧)", "皮卡皮!(编程超有趣的)", "皮卡!(试试输入数字1-3)", "皮卡丘!(输入0可以退出哦)" ] # 定义皮卡丘的技能 SKILLS = { 1: "十万伏特⚡️", 2: "电光一闪✨", 3: "铁尾💥" } def main(): print("欢迎来到Python皮卡丘世界!") name = input("请给你的皮卡丘起个名字: ") # 显示皮卡丘 print(f"\n这是你的皮卡丘 {name}:") print(PIKACHU) time.sleep(1) print(f"{name}: {random.choice(DIALOGUES)}") # 交互循环 while True: print("\n择行动:") print("1: 展示技能") print("2: 听皮卡丘说话") print("3: 喂食") print("0: 退出") choice = input("请输入项: ") if choice == "0": print(f"\n再见!{name}会想念你的~") break elif choice == "1": # 展示技能 print("\n择技能:") for num, skill in SKILLS.items(): print(f"{num}: {skill}") skill_choice = input("> ") if skill_choice in ["1", "2", "3"]: skill = SKILLS[int(skill_choice)] print(f"\n{name}使用了{skill}!") # 简单的动画效果 for _ in range(3): print("✨" * 10) time.sleep(0.3) else: print(f"{name}: 皮卡?(这个技能我不会呀)") elif choice == "2": # 随机对话 print(f"\n{name}: {random.choice(DIALOGUES)}") elif choice == "3": # 喂食 print(f"\n你喂了{name}一颗树果") print("(>^ω^<) 皮卡皮!(好吃~)") # 爱心动画 for _ in range(3): print("❤️", end=" ", flush=True) time.sleep(0.5) print() else: print(f"{name}: 皮卡?(我不明白呀)") if __name__ == "__main__": main() ``` ### 代码特点(适合初学者): 1. **直观有趣**:使用ASCII艺术展示皮卡丘形象,视觉吸引2. **简单交互**:通过数字择实现基本交互,无需复杂输入 3. **即时反馈**:每个操作都有对应的视觉或文字反馈 4. **涵盖基础概念**: - 变量定义 (`PIKACHU`, `DIALOGUES`) - 条件判断 (`if/elif/else`) - 循环结构 (`while`, `for`) - 字典使用 (`SKILLS`) - 函数定义 (`main()`) - 随机择 (`random.choice()`) 5. **动态效果**:使用`time.sleep()`创建简单动画 6. **错误处理**:对无效输入有友好提示 ### 运行效果示例: ``` 欢迎来到Python皮卡丘世界! 请给你的皮卡丘起个名字: 闪电 这是你的皮卡丘 闪电:    /l、  (゚、 。 7   l ~ヽ   じしf_,)ノ 闪电: 皮卡丘!(输入0可以退出哦) 择行动: 1: 展示技能 2: 听皮卡丘说话 3: 喂食 0: 退出 请输入项: 3 你喂了闪电一颗树果 (>^ω^<) 皮卡皮!(好吃~) ❤️ ❤️ ❤️ ``` ### 学习价值: 1. **理解程序结构**:清晰的`main()`函数入口 2. **数据类型实践**:字符串、列表、字典的使用 3. **控制流掌握**:条件判断和循环的应用 4. **交互设计基础**:用户输入与程序反馈的对应关系 5. **错误处理入门**:对无效输入的友好处理 这个程序通过游戏化的方式,让初学者在趣味中学习Python基础语法,同时体验编程的即时反馈乐趣[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值