Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

功能与意见反馈 #1

Open
Delta-F opened this issue Mar 21, 2021 · 12 comments
Open

功能与意见反馈 #1

Delta-F opened this issue Mar 21, 2021 · 12 comments

Comments

@Delta-F
Copy link
Owner

Delta-F commented Mar 21, 2021

任何有关于功能的优化建议,都欢迎在此提出,也欢迎多多star和fork本项目,并参与构建。

@eguotangseng
Copy link

eguotangseng commented Jun 26, 2021

我想问问,能加一个选股策略是成交量大5日均线和50日均线,当成交量5日均线上穿50均线,说明有大量资金购买此只股票,连续5天成交量大于50日均线,证明后市此只股票有涨价的迹象

@Delta-F
Copy link
Owner Author

Delta-F commented Jun 27, 2021

我想问问,能加一个选股策略是成交量大5日均线和50日均线,当成交量5日均线上穿50均线,说明有大量资金购买此只股票,连续5天成交量大于50日均线,证明后市此只股票有涨价的迹象

等于是基于成交量的趋势判断是吧?可以的,如果你感兴趣开发,也欢迎一起

@eguotangseng
Copy link

我想问问,能加一个选股策略是成交量大5日均线和50日均线,当成交量5日均线上穿50均线,说明有大量资金购买此只股票,连续5天成交量大于50日均线,证明后市此只股票有涨价的迹象

等于是基于成交量的趋势判断是吧?可以的,如果你感兴趣开发,也欢迎一起

是的,就是这个意思,我在看你的代码看看怎么增加一下

@Delta-F
Copy link
Owner Author

Delta-F commented Jun 29, 2021

我想问问,能加一个选股策略是成交量大5日均线和50日均线,当成交量5日均线上穿50均线,说明有大量资金购买此只股票,连续5天成交量大于50日均线,证明后市此只股票有涨价的迹象

等于是基于成交量的趋势判断是吧?可以的,如果你感兴趣开发,也欢迎一起

是的,就是这个意思,我在看你的代码看看怎么增加一下

对的,这是个问题,可以在macd里面加方法,对volume进行计算和判断,也可以策略里面直接加一个macd_volume,后期可能会重构,到时候也许会并到指标计算里面,感兴趣,你也可以尝试,我微信:DeltaF_

@wongwingsun
Copy link

我想问问strategy模块里面base的calculate_portfolio_return方法,如果某只股票的signal是-1,意思是做空该股票吗?
比如2020-02-29股票sz.000001的signal是-1,2020-03-31的收益率是-0.117241,如果按照-1*(-0.117241)计算的话,收益率是正,2020-02-29股票的signal是-1,那么那时应该是已经卖出股票,3月份时这个股票应该是没有收益,除非是做空股票

@hhahali
Copy link

hhahali commented Nov 2, 2021

base.py 中的calculate_prof_pct 函数有严重bug data.loc[data['signal'] != 0, 'profit_pct'] = data['close'].pct_change() 这一段代码pc_change() 仅仅只会把这条记录和上一条记录做运算 , 可是如果是周1买周四卖的话 , 这个函数的结果会使周4卖的记录和周3做运算
在问答区提出这个解决方案的同学很明显想得太简单了

@xdq2005adam
Copy link

base.py里的calculate_prof_pct函数应该这样写(按照老师视频里的验证方法,2种写法结果是一样的,但其实如果注释掉一个,分别验证,最后的结果会不一样):
def calculate_prof_pct(data):
"""计算单次收益率"""
# 筛选信号不为0的,并且计算涨跌幅
data = data.loc[data['signal'] != 0].copy()
data['profit_pct'] = data['close'].pct_change()
data = data[data['signal'] == -1] # 筛选平仓后的数据
return data

@Arrowarcher
Copy link
Contributor

你也发现了这个bug,我之前发现了,不过一直没看完,今天才看完了,给老师提了pull request,等老师合并。
我的改动是:

def calculate_prof_pct(data):
    """
    计算单次收益率
    修正版
    :param data:
    :return:
    """
    # 筛选信号不为0的并且计算涨跌幅
    data['profit_pct'] = data.loc[data['signal'] != 0, 'close'].pct_change()
    # 筛选出卖出时的收益率
    data = data[data['signal'] == -1]
    return data

@Delta-F
Copy link
Owner Author

Delta-F commented Jun 7, 2022 via email

@xdq2005adam
Copy link

你也发现了这个bug,我之前发现了,不过一直没看完,今天才看完了,给老师提了pull request,等老师合并。 我的改动是:

def calculate_prof_pct(data):
    """
    计算单次收益率
    修正版
    :param data:
    :return:
    """
    # 筛选信号不为0的并且计算涨跌幅
    data['profit_pct'] = data.loc[data['signal'] != 0, 'close'].pct_change()
    # 筛选出卖出时的收益率
    data = data[data['signal'] == -1]
    return data

嗯,你的改法也可以

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants
@eguotangseng @wongwingsun @xdq2005adam @Arrowarcher @hhahali @Delta-F and others