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)
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