前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >码农技术炒股之路——选股策略样例

码农技术炒股之路——选股策略样例

作者头像
方亮
发布2019-01-16 17:00:47
5450
发布2019-01-16 17:00:47
举报
文章被收录于专栏:方亮方亮

        有了之前抓取的数据,我们便可以利用这些数据进行股票分析。(转载请指明出于breaksoftware的csdn博客)

        为了便于计算,我决定引入numpy库

代码语言:javascript
复制
pip install numpy -i http://pypi.douban.com/simple

        其实这篇文章并不能告诉大家一个恰到好处且有用的样例。因为之前我分析过,同花顺等分析软件公式存在很多弊端,并不能满足我们复杂的需求。而我目前也没有一个非常准确的模型可以保证盈利。

        就举一个简单的例子。只是一种假设:如果30日均线比5日均线高,则不在我们考虑范围之内。

        首先我们获取股票的一个周期内的信息

代码语言:javascript
复制
    def _get_average_info(self, share_id, table_name, period = 0):
        stock_conn_manager_obj = stock_conn_manager()
        conn_name = stock_conn_manager_obj.get_conn_name(share_id)
        periods = [5, 10, 20, 30, 60, 120]
        types = ["close_ma", "volume_ma"]
        columns = ["time", "today_close", "today_high", "today_low", "today_open", "yesterday_close", "pchg", "turnover_rate", "volume", "turnover"]
        for type_item in types:
            for period_item in periods:
                column_name = "%s%d" % (type_item, period_item)
                columns.append(column_name)

        extend_str = "order by time desc"
        if period > 0:
            extend_str = "%s limit %d" % (extend_str, period)

        data= fetch_data.get_data(fetch_data.select_db(conn_name, table_name, columns, {}, extend=extend_str))
        infos = []
        for data_item in data:
            info = {}
            for index in range(len(columns)):
                    info[columns[index]] = data_item[index]
            infos.insert(0, info)
        return infos

        然后我们获取当前的均线信息

代码语言:javascript
复制
        today_close_ma5_info = self._get_history_data(data, index, 0, "close_ma5")
        today_close_ma10_info = self._get_history_data(data, index, 0, "close_ma10")
        today_close_ma20_info = self._get_history_data(data, index, 0, "close_ma20")
        today_close_ma30_info = self._get_history_data(data, index, 0, "close_ma30")
        today_close_ma60_info = self._get_history_data(data, index, 0, "close_ma60")

        today_close_ma5 = today_close_ma5_info[1]
        today_close_ma10 = today_close_ma10_info[1]
        today_close_ma20 = today_close_ma20_info[1]
        today_close_ma30 = today_close_ma30_info[1]
        today_close_ma60 = today_close_ma60_info[1]

        然后设置我们筛选条件

代码语言:javascript
复制
        if today_close_ma30 > today_close_ma20 and today_close_ma30 > today_close_ma10 and today_close_ma30 > today_close_ma5:
            return (False, "today(%d) close ma30 is bigger than ma20 ma10 ma5" % index)

        这样我们就把不符合规则的数据过滤掉了。

        当然不否认这个例子举得并不恰当,因为需求简单所以同花顺公式也能完成。

        但是我们有了所有数据后,我们就可以做很多事情。包括同花顺所不具有的“模型回测”功能。

        这个项目是去年写的。我让它运行了一个多月,发现系统还是非常稳定的。后来由于种种原因,没有及时把相关说明给补上。

        为了补上这些博文,我还将系统重新看了一下。虽然很多地方还不完善,但是一般非特别要求的生产环境还是可以放心使用的。

        最后附上Git地址供大家把玩:https://github.com/f304646673/scheduler_frame.git。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年05月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术对外提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、presto、Iceberg、Alluxio 等,以快速构建企业级数据湖、数据仓库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档