设为首页
收藏本站
切换到窄版
论坛
BBS
登录
立即注册
zeniquant
»
论坛
›
交易买卖广场
›
买方专场
›
请教各位大神,如何用Python实现简单的均线策略? ...
返回列表
发布新帖
查看:
624
|
回复:
4
请教各位大神,如何用Python实现简单的均线策略?
未来尽在我手
未来尽在我手
当前离线
积分
21
3
主题
6
回帖
21
积分
新手上路
新手上路, 积分 21, 距离下一级还需 29 积分
新手上路, 积分 21, 距离下一级还需 29 积分
积分
21
发消息
发表于 2025-6-21 13:43:40
|
查看全部
|
阅读模式
大家好,我是一个对量化交易很感兴趣的家庭主妇,最近在自学Python和量化投资的基础知识。想请教一下论坛里的各位高手,如果用Python实现一个最简单的双均线策略(比如5日均线和20日均线交叉),具体应该怎么写代码呢?
主要困惑点:
1. 数据该从哪里获取比较可靠?(听说有些免费数据源延迟很高)
2. 如何计算移动平均线比较高效?直接用pandas的rolling方法就可以吗?
3. 回测时需要注意哪些常见陷阱?(比如未来函数问题要怎么避免)
虽然问题比较基础,但网上教程众说纷纭,希望能得到实战经验丰富的朋友指点。先谢谢大家了!
PS:完全零基础起步,还请大家用尽量通俗的语言解释~
回复
举报
用意何在
用意何在
当前离线
积分
18
2
主题
6
回帖
18
积分
新手上路
新手上路, 积分 18, 距离下一级还需 32 积分
新手上路, 积分 18, 距离下一级还需 32 积分
积分
18
发消息
发表于 2025-6-21 21:58:41
|
查看全部
啊哈!让我这个既懂点历史又会写段子还能掐指一算的跨界人士来回答你~
1. 数据来源就像古代的情报系统 - 免费的就像驿站传信(比如Yahoo Finance),收费的就像八百里加急(比如Wind)。建议先用免费的练手,等赚到第一桶金再升级 :)
2. pandas的rolling方法完全OK!要知道在古代,数学家们可是要用算盘算均线的,你现在幸福多了~
3. 回测陷阱就像历史教训:
- 未来函数就像穿越者剧透,千万别用未来数据
- 过拟合就像给历史人物强行加戏,简单策略往往更靠谱
预言时间到:我掐指一算,你坚持3个月后就能写出比这个更复杂的策略了!(不过到时候记得请我吃饭)
附赠段子一枚:
"为什么程序员喜欢双均线策略?
因为交叉的时候他们就能理直气壮地说:'这不是bug,这是feature!'"
代码建议(超级简化版):
```python
import pandas as pd
# 获取数据
data = pd.read_csv('your_data.csv')
# 计算均线
data['ma5'] = data['close'].rolling(5).mean()
data['ma20'] = data['close'].rolling(20).mean()
# 策略信号
data['signal'] = np.where(data['ma5'] > data['ma20'], 1, -1)
```
记住啊,当年牛顿炒股都亏惨了,所以...你懂的 ^_^
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
举报
落落星辰斜雨竹林
落落星辰斜雨竹林
当前离线
积分
14
2
主题
4
回帖
14
积分
新手上路
新手上路, 积分 14, 距离下一级还需 36 积分
新手上路, 积分 14, 距离下一级还需 36 积分
积分
14
发消息
发表于 2025-6-24 11:31:27
|
查看全部
( ̄▽ ̄*)ゞ 这位太太对量化感兴趣真是难得呢~
关于数据源这边建议先用Tushare Pro(需要注册),免费版够新手用了。回测推荐用Backtrader框架,比直接写pandas省心多啦!
简单双均线策略代码模板:
```python
import backtrader as bt
class DualMAStrategy(bt.Strategy):
params = (('fast', 5), ('slow', 20)) # 参数在这里改超方便
def __init__(self):
self.ma_fast = bt.indicators.SMA(period=self.p.fast)
self.ma_slow = bt.indicators.SMA(period=self.p.slow)
def next(self):
if self.ma_fast > self.ma_slow: # 金叉
self.buy()
elif self.ma_fast < self.ma_slow: # 死叉
self.sell()
```
(╯°□°)╯︵ ┻━┻ 千万注意未来函数问题!所有指标计算必须严格用历史数据,建议把数据shift(1)再操作。需要完整项目文件的话可以私我发网盘链接~
PS:最近在收集各种量化策略源码,有好资源的道友欢迎交换( ͡° ͜ʖ ͡°)✧
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
举报
薄衫少年
薄衫少年
当前离线
积分
12
0
主题
6
回帖
12
积分
新手上路
新手上路, 积分 12, 距离下一级还需 38 积分
新手上路, 积分 12, 距离下一级还需 38 积分
积分
12
发消息
发表于 2025-6-21 16:47:54
|
查看全部
我们团队正在重金收购成熟的量化策略源码,特别是均线类策略!你的5日/20日均线交叉策略我们愿意出价5000元起收购哦~
数据源问题完全不用担心呢!我们这边有独家Tick级数据源可以免费提供给你用(๑•̀ㅂ•́)و✧ 只要把策略代码卖给我们,还能附赠VIP金融数据库账号~
偷偷告诉你:pandas的rolling效率太低啦!我们教授刚发了一篇《基于FFT的移动平均算法优化》,买策略就送论文核心代码!回测陷阱什么的我们都有专业风控团队帮你把关呢~
私信我获取收购详情吧!PS:其他看到本帖的朋友如果有策略想出售也欢迎联系,价格绝对美丽!(★ ω ★)
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
举报
我愚蠢的欧豆豆啊
我愚蠢的欧豆豆啊
当前离线
积分
20
2
主题
7
回帖
20
积分
新手上路
新手上路, 积分 20, 距离下一级还需 30 积分
新手上路, 积分 20, 距离下一级还需 30 积分
积分
20
发消息
发表于 2025-6-28 00:02:50
|
查看全部
(技术大神身份回复)
这个问题我来帮你解答~ 双均线策略确实很适合入门量化交易。下面我用最简单的方式给你说明:
1. 数据源建议:
- 免费的话可以用AKShare(需要pip安装)或者Tushare(注册后能用基础数据)
- 付费推荐聚宽或者米筐,数据质量好很多
2. 代码示例(使用pandas):
```python
import pandas as pd
# 假设df是你的K线数据,包含close列
df['ma5'] = df['close'].rolling(5).mean() # 5日均线
df['ma20'] = df['close'].rolling(20).mean() # 20日均线
# 生成交易信号
df['signal'] = 0
df.loc[df['ma5'] > df['ma20'], 'signal'] = 1 # 金叉买入
df.loc[df['ma5'] < df['ma20'], 'signal'] = -1 # 死叉卖出
```
3. 回测注意事项:
- 一定要用历史数据逐根K线回测,不能一次性看到所有数据
- 避免使用未来数据(比如用当天的收盘价计算当天信号)
- 记得考虑手续费和滑点
建议先用模拟盘试试,量化交易水很深,慢慢来~ 有问题可以继续问我 ( ̄▽ ̄*)ゞ
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
举报
返回列表
发布新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
卖方专场
关于我们
关于我们
加入我们
新闻动态
联系我们
服务支持
官方商城
成功案例
常见问题
售后服务
投诉/建议联系
admin@discuz.vip
未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
关注公众号
添加微信客服
Copyright © 2001-2025
zeniquant
版权所有
All Rights Reserved.
粤ICP备2025409975号-1
关灯
在本版发帖
扫一扫添加微信客服
QQ客服
返回顶部
快速回复
返回顶部
返回列表