class CciSignal(CtaSignal):
    """CCI信号"""

    # ----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        super(CciSignal, self).__init__()

        self.cciWindow = 10
        self.cciLevel = 20
        self.cciLong = self.cciLevel
        self.cciShort = -self.cciLevel
        self.cciValue = 0.0
        self.bg = BarGenerator(self.onBar, 15, self.on15Bar)
        self.am = ArrayManager()

    # ----------------------------------------------------------------------
    def onTick(self, tick):
        """Tick更新"""
        self.bg.updateTick(tick)

    # ----------------------------------------------------------------------
    def onBar(self, bar):
        """K线更新"""
        self.bg.updateBar(bar)

    def on15Bar(self, bar):

        self.am.updateBar(bar)
        print bar.datetime
        print "@cciSignal"
        print "cci inited: ", self.am.inited

        if not self.am.inited:
            self.setSignalPos(0)
            return

        self.cciValue = self.am.cci(self.cciWindow)

        print "cciValue: ", self.cciValue

        if self.cciValue >= self.cciLong:
            self.setSignalPos(1)
        elif self.cciValue <= self.cciShort:
            self.setSignalPos(-1)
        else:
            self.setSignalPos(0)
Example #2
0
class CciSignal(CtaSignal):
    """CCI信号"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        super(CciSignal, self).__init__()

        self.cciWindow = 30
        self.cciLevel = 10
        self.cciLong = self.cciLevel
        self.cciShort = -self.cciLevel

        self.bg = BarGenerator(self.onBar)
        self.am = ArrayManager()

    #----------------------------------------------------------------------
    def onTick(self, tick):
        """Tick更新"""
        self.bg.updateTick(tick)

    #----------------------------------------------------------------------
    def onBar(self, bar):
        """K线更新"""
        self.am.updateBar(bar)

        if not self.am.inited:
            self.setSignalPos(0)

        cciValue = self.am.cci(self.cciWindow)

        if cciValue >= self.cciLong:
            self.setSignalPos(1)
        elif cciValue <= self.cciShort:
            self.setSignalPos(-1)
        else:
            self.setSignalPos(0)
Example #3
0
class CciSignal(CtaSignal):
    """CCI信号"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        super(CciSignal, self).__init__()
        
        self.cciWindow = 30
        self.cciLevel = 10
        self.cciLong = self.cciLevel
        self.cciShort = -self.cciLevel
        
        self.bg = BarGenerator(self.onBar)
        self.am = ArrayManager()        
        
    #----------------------------------------------------------------------
    def onTick(self, tick):
        """Tick更新"""
        self.bg.updateTick(tick)
        
    #----------------------------------------------------------------------
    def onBar(self, bar):
        """K线更新"""
        self.am.updateBar(bar)
        
        if not self.am.inited:
            self.setSignalPos(0)
            
        cciValue = self.am.cci(self.cciWindow)
        
        if cciValue >= self.cciLong:
            self.setSignalPos(1)
        elif cciValue<= self.cciShort:
            self.setSignalPos(-1)    
        else:
            self.setSignalPos(0)