zoukankan      html  css  js  c++  java
  • 3.买卖信号

    …接上文,简单的一个买点信号:

    今天:ma5 > ma20 且 前天:ma5 < ma20 则 买入

    # -*- coding: utf-8 -*-
    class maimaixinhao:
        def __init__(self, date, ma5, ma20):
            self.date = date
            self.ma5 = ma5
            self.ma20 = ma20
        def bspoint(self):
            bdate = []
            bma5 = []
            for i in range(2, len(self.ma5)):
                if self.ma5[i] > self.ma20[i] and self.ma5[i-2] < self.ma20[i-2]:
                    bdate.append(self.date[i])
                    bma5.append(self.ma5[i])
            return bdate, bma5

    在图上显示出来

    # -*- coding: utf-8 -*-
    import maimaixinhao
    import os
    import tushare
    import pandas
    import matplotlib.pyplot as plot
    from matplotlib.finance import candlestick_ochl
    # 清屏
    clea = os.system('cls')
    # 获取上证指数历史数据
    sh = tushare.get_hist_data('sh')
    # 根据需要选择数据
    date = pandas.Series([i for i in range(0, len(sh))])
    o = sh['open']
    h = sh['high']
    c = sh['close']
    l = sh['low']
    volume = sh['volume']
    ma5 = sh['ma5']
    ma10 = sh['ma10']
    ma20 = sh['ma20']
    # 按列合并成一个
    quotes = []
    for i in range(0, len(sh)):
        quotes.append((date[i],
                       o[i],
                       c[i],
                       h[i],
                       l[i],
                       volume[i]))
    # 获取图表实例
    figure = plot.figure('Figure')
    # 上图
    subf1 = figure.add_subplot(211,
                               title='Index of Shanghai',
                               xlabel='date',
                               ylabel='index',
                               xlim=[min(date), max(date)])
    candlestick_ochl(subf1,
                     quotes,
                     colorup='r',
                     colordown='g')
    l11 = subf1.plot(date,
                     ma5)
    l12 = subf1.plot(date,
                     ma10)
    l13 = subf1.plot(date,
                     ma20)
    b11 = subf1.bar(left=date,
                    height=[i*100/min(volume) for i in volume],
                    bottom=0,
                    width=0.8,
                    color='c',
                    edgecolor='c')
    plot.grid(True,
              axis='both')
    # 下图
    subf2 = figure.add_subplot(212,
                               title='Singal of Buy or Sell',
                               xlabel='date',
                               ylabel='index',
                               xlim=[min(date), max(date)])
    l21 = subf2.plot(date,
                     ma5,
                     'g-')
    l22 = subf2.plot(date,
                     ma20,
                     'r-')
    b21 = subf2.bar(left=date,
                    height=[ma5[i]-ma20[i] for i in range(0, len(date))],
                    bottom=0,
                    color='c',
                    edgecolor='c')
    buy = maimaixinhao.maimaixinhao(date,
                                   ma5,
                                   ma20)
    bdate, bma5 = buy.bspoint()
    subf2.plot(bdate,
               bma5,
               'ro')
    plot.grid(True,
              axis='both')
    plot.legend(('ma5',
                 'ma20',
                 'buy'))

    buy figure
  • 相关阅读:
    默认组件加载类
    加密工具类
    客户端安全传输密码至服务端的实现改进
    开发Angular库的简单指导(译)
    Windows中搭建Redis集群
    Mybatis中SqlMapper配置的扩展与应用(3)
    Mybatis中SqlMapper配置的扩展与应用(2)
    Mybatis中SqlMapper配置的扩展与应用(1)
    优化与扩展Mybatis的SqlMapper解析
    使用XSD校验Mybatis的SqlMapper配置文件(2)
  • 原文地址:https://www.cnblogs.com/blog-3123958139/p/5517618.html
Copyright © 2011-2022 走看看