Exemplo n.º 1
0
    def run(self):
        for i in range(30,len(self.__dt)):        
            #check for buy postion
            if self.__dt.loc[i].close >= self.__dt.loc[i-1].m20 and len(self.__oo)==0:
                od = Order()
                od.setOrder(i,self.__dt.loc[i])
                self.__oo.append(od)

            #check for short position
            if len(self.__oo)>0:            
                if self.checkSell(self.__oo[0],self.__dt.loc[i]) == True:
                    od = self.__oo.pop(0)
                    od.closeOrder(i,self.__dt.loc[i])
                    self.__co.append(od)
        
            #calculate daily margin
            margin = 0.0
            for o in self.__oo:
                margin += self.__dt.loc[i].close-o.getPrice()
        
            for o in self.__co:
                margin += o.getMargin()
        
            self.__dt.loc[i,['margin']]=1000.0+margin

        #end for
     
        #handle last order if any
        if len(self.__oo)>0:
            od = self.__oo.pop(0)
            od.closeOrder(i,self.__dt.loc[len(self.__dt)-1])
            self.__co.append(od)
Exemplo n.º 2
0
 def run1(self):
     for i in range(30,len(self.__dt)): 
         index = self.__dt.index.values[i]
         prv_idx = self.__dt.index.values[i-1]
         if self.__dt.IN_T[index]==1 and self.__dt.IN_T[prv_idx]==0:
             od = Order()
             od.setOrder(i,self.__dt.loc[index])
             self.__oo.append(od)
         pass