示例#1
0
 def close(self, idx):
     if not isinstance(idx, int):
         idx = gCal.index(idx)
     while idx >= 0 and self.m_inClose[idx] < 0.0:
         # seek existing previous close !
         idx = idx - 1
     if idx < 0:
         return 0.0
     return self.m_inClose[idx]
示例#2
0
 def close(self,idx):
     if not isinstance(idx,int):
         idx = gCal.index(idx)
     while idx>=0 and self.m_inClose[idx]<0.0:
         # seek existing previous close !
         idx = idx - 1
     if idx < 0:
         return 0.0
     return self.m_inClose[idx]
示例#3
0
 def bollinger(self, idx, band=1):
     if not isinstance(idx, int):
         idx = gCal.index(idx)
     if self.m_bollM[idx] < 0.0:
         self.compute_bollinger(idx)
     if band == 0:
         return self.m_bollDn[idx]
     elif band == 1:
         return self.m_bollM[idx]
     else:
         return self.m_bollUp[idx]
示例#4
0
 def bollinger(self,idx,band=1):
     if not isinstance(idx,int):
         idx = gCal.index(idx)
     if self.m_bollM[idx]<0.0:
         self.compute_bollinger(idx)
     if band==0:
         return self.m_bollDn[idx]
     elif band==1:
         return self.m_bollM[idx]
     else:
         return self.m_bollUp[idx]
示例#5
0
    def add(self, item, bImporting):
        debug('Trades::add() before: %s : bImporting=%s' % (item, bImporting))

        idx = gCal.index(Datation(item[1]).date())
        if idx == -1:
            debug('invalid date in: %s' % item)
            # __x need to save file
            self.m_dirty = True
            return False

        tr = Trade(self, item[1], item[2], item[3], item[4], item[5], item[6],
                   idx)

        # NB: replace existing date ('cause live update)
        self.m_trades[tr.date()] = tr
        self.m_inOpen[idx] = tr.nv_open()
        self.m_inClose[idx] = tr.nv_close()
        self.m_inLow[idx] = tr.nv_low()
        self.m_inHigh[idx] = tr.nv_high()
        self.m_inVol[idx] = tr.nv_volume()
        #self.m_date[idx] = tr.date()

        #if not bImporting:
        #    print 'lasttrade: %s   new trade : %s' %(self.m_lasttrade.date(),tr.date())

        # update firt and last trade
        if self.m_firsttrade == None:
            self.m_firsttrade = tr
            self.m_lasttrade = tr
        if tr.date() <= self.m_firsttrade.date():
            self.m_firsttrade = tr
        if tr.date() >= self.m_lasttrade.date():
            self.m_lasttrade = tr

        # update last import
        if bImporting:
            if self.m_lastimport == None:
                self.m_lastimport = tr
            if tr.date() >= self.m_lastimport.date():
                self.m_lastimport = tr

        #debug('Trades::add() after: %s' % tr);
        return True
示例#6
0
    def add(self,item,bImporting):
        debug('Trades::add() before: %s : bImporting=%s' % (item,bImporting));

        idx = gCal.index(Datation(item[1]).date())
        if idx==-1:
            debug('invalid date in: %s' % item)
            # __x need to save file
            self.m_dirty = True
            return False

        tr = Trade(self,item[1],item[2],item[3],item[4],item[5],item[6],idx)

        # NB: replace existing date ('cause live update)
        self.m_trades[tr.date()] = tr
        self.m_inOpen[idx] = tr.nv_open()
        self.m_inClose[idx] = tr.nv_close()
        self.m_inLow[idx] = tr.nv_low()
        self.m_inHigh[idx] = tr.nv_high()
        self.m_inVol[idx] = tr.nv_volume()
        #self.m_date[idx] = tr.date()

        #if not bImporting:
        #    print 'lasttrade: %s   new trade : %s' %(self.m_lasttrade.date(),tr.date())

        # update firt and last trade
        if self.m_firsttrade==None:
            self.m_firsttrade = tr
            self.m_lasttrade = tr
        if tr.date()<=self.m_firsttrade.date():
            self.m_firsttrade = tr
        if tr.date()>=self.m_lasttrade.date():
            self.m_lasttrade = tr

        # update last import
        if bImporting:
            if self.m_lastimport==None:
                self.m_lastimport = tr
            if tr.date()>=self.m_lastimport.date():
                self.m_lastimport = tr

        #debug('Trades::add() after: %s' % tr);
        return True
示例#7
0
 def ovb(self, idx):
     if not isinstance(idx, int):
         idx = gCal.index(idx)
     return self.m_ovb[idx]
示例#8
0
 def vma15(self, idx):
     if not isinstance(idx, int):
         idx = gCal.index(idx)
     if self.m_vma15[idx] < 0.0:
         self.compute_vma15(idx)
     return self.m_vma15[idx]
示例#9
0
 def stoD(self, idx):
     if not isinstance(idx, int):
         idx = gCal.index(idx)
     if self.m_stoD[idx] < 0.0:
         self.compute_stoD(idx)
     return self.m_stoD[idx]
示例#10
0
 def rsi14(self, idx):
     if not isinstance(idx, int):
         idx = gCal.index(idx)
     if self.m_rsi14[idx] < 0.0:
         self.compute_rsi14(idx)
     return self.m_rsi14[idx]
示例#11
0
 def ma150(self, idx):
     if not isinstance(idx, int):
         idx = gCal.index(idx)
     if self.m_ma150[idx] < 0.0:
         self.compute_ma150(idx)
     return self.m_ma150[idx]
示例#12
0
 def ovb(self,idx):
     if not isinstance(idx,int):
         idx = gCal.index(idx)
     return self.m_ovb[idx]
示例#13
0
 def vma15(self,idx):
     if not isinstance(idx,int):
         idx = gCal.index(idx)
     if self.m_vma15[idx]<0.0:
         self.compute_vma15(idx)
     return self.m_vma15[idx]
示例#14
0
 def stoD(self,idx):
     if not isinstance(idx,int):
         idx = gCal.index(idx)
     if self.m_stoD[idx]<0.0:
         self.compute_stoD(idx)
     return self.m_stoD[idx]
示例#15
0
 def rsi14(self,idx):
     if not isinstance(idx,int):
         idx = gCal.index(idx)
     if self.m_rsi14[idx]<0.0:
         self.compute_rsi14(idx)
     return self.m_rsi14[idx]
示例#16
0
 def ma150(self,idx):
     if not isinstance(idx,int):
         idx = gCal.index(idx)
     if self.m_ma150[idx]<0.0:
         self.compute_ma150(idx)
     return self.m_ma150[idx]