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]
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]
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]
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]
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
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
def ovb(self, idx): if not isinstance(idx, int): idx = gCal.index(idx) return self.m_ovb[idx]
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]
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]
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]
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]
def ovb(self,idx): if not isinstance(idx,int): idx = gCal.index(idx) return self.m_ovb[idx]
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]
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]
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]
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]