コード例 #1
0
ファイル: dv3.py プロジェクト: reinhardtken/py-code
    def ProcessQuarterPaper(self, year, position):
        if 'sjltz' in self.checkPoint[year][position]:
            speed = -11
            try:
                # 存在这个值为“-”的情形
                speed = float(self.checkPoint[year][position]['sjltz'])
                self.checkPoint[year][position]['sjltz'] = speed
            except Exception as e:
                pass

            if speed < -10:
                self.dangerousPoint.append(
                    (util.Quater2Date(year, position), self.MAXEND, year,
                     position, speed))
            elif speed > 0:
                # 增速转正,如果之前有负的,要结合负的计算出冷冻区间(此区间不开仓)
                if len(self.dangerousPoint) > 0:
                    # 找到所有没有填充终止的条目,全部填上当前时间点
                    dirtyFlag = False
                    for index in range(len(self.dangerousPoint)):
                        if self.dangerousPoint[index][1] == self.MAXEND:
                            dirtyFlag = True
                            self.dangerousPoint[index] = (
                                self.dangerousPoint[index][0],
                                util.Quater2Date(year, position),
                                self.dangerousPoint[index][2],
                                self.dangerousPoint[index][3],
                                self.dangerousPoint[index][4])

                    # 清理在起始时间小于终止时间的区间(比如从2011年2季度开始,2,3,4季度都是负,2012年一季度转正)
                    # 此时dangerousPoint里面有多个条目:(2011-2,2012-1),(2011-3,2012-1),(2011-4,2012-1)
                    # 其中(2011-3,2012-1),(2011-4,2012-1)是没有意义的,需要删除
                    if dirtyFlag:
                        tmp = []
                        have = set()
                        for index in range(len(self.dangerousPoint)):
                            if self.dangerousPoint[index][1] not in have:
                                have.add(self.dangerousPoint[index][1])
                                tmp.append(self.dangerousPoint[index])
                            else:
                                pass
                        self.dangerousPoint = tmp
コード例 #2
0
ファイル: dv2.py プロジェクト: reinhardtken/py-code
    def __init__(self, code, name, startYear, startDate, endDate):
        self.code = code
        self.name = name
        self.startYear = startYear
        self.startDate = startDate
        self.endDate = endDate
        self.checkPoint = {}  # 所有的年报季报除权等影响买卖点的特殊时点
        self.dangerousPoint = []  # 利润同比下滑超过10%的位置
        self.dividendPoint = []  # 除权的日期

        self.MAXEND = util.Quater2Date(2099, 'first')  # 默认的冻结开仓截止日期

        self.dividendAdjust = {}  # 除权日,调整买入卖出价格

        self.statisticsYears = None  # 参与统计的总年数
        self.dividendYears = 0  # 有过分红的年数