API KiteConnect, тики к подсвечникам

Я хотел бы сохранить данные тиков в подсвечниках, и я написал код для них. Что происходит, когда я запускаю код, данные разных инструментов смешиваются, хотя я пытался создать объект для каждого инструмента. Я также проверяю, является ли токен инструмента одинаковым или нет на каждом этапе (что, я полагаю, необязательно). Вот мой код, дайте мне знать, если кто-нибудь может диагностировать, где проблема.

Мой класс: `Класс Компания:

def __init__(self, token):
    self.token = token

    self.open = []
    self.high = []
    self.low = []
    self.close = [] 
    self.ohlc_list = {}
    self.ohlc_list = [self.open,self.high,self.low,self.close]
    self.ohlc = {}
    self.ohlc = [0,0,0,0,True,60,0,];

def calc_ohlc(self, ticks, tf):

    for company_data in ticks:

        if((company_data['timestamp'].minute%tf == 0) and self.ohlc[4]==True):

            if(self.token == company_data['instrument_token']):
                self.ohlc[5] = company_data['timestamp'].minute + (tf-1)

            if(self.token == company_data['instrument_token']):
                self.ohlc[0] = company_data['last_price'];
                self.ohlc[1] = company_data['last_price']; 
                self.ohlc[2] = company_data['last_price']; 
                self.ohlc[3] = company_data['last_price']; 

            if(self.token == company_data['instrument_token']):
                self.ohlc_list[0].append(self.ohlc[0])
                self.ohlc[4]=False

        if(self.ohlc[4]==False):    

            if(company_data['last_price'] > self.ohlc[1]):

                self.ohlc[1] = company_data['last_price']           
                print("NEW HIGH",self.ohlc[1])

            if(company_data['last_price'] < self.ohlc[2]):

                self.ohlc[2] = company_data['last_price']           
                print("NEW HIGH",self.ohlc[2])

        if company_data['timestamp'].minute%self.ohlc[5] == 0 and company_data['timestamp'].second==59 and self.ohlc[4] == False:

            if(self.token == company_data['instrument_token']):
                self.ohlc[3] = company_data['last_price']
            if(self.token == company_data['instrument_token']):
                self.ohlc_list[1].append(self.ohlc[1])
                self.ohlc_list[2].append(self.ohlc[2])
                self.ohlc_list[3].append(self.ohlc[3])  
                self.ohlc[4] = True
            print("TIME", company_data['timestamp'])
            print(self.ohlc_list)

`

и создание объектов для одного и того же (sym - это список объектов):

for i in range(0,(len(trd_tkn1))):

sym.append(Company(trd_tkn1[i]))

и часть, которая получает тики от API:

def on_ticks(ws, ticks):

for i in range(0,(len(trd_tkn1))):  
    sym.calc_ohlc(ticks,3)

0 ответов

Другие вопросы по тегам