Mesdames et messieurs, je veux calculer le volume de transactions dans une ligne K à un certain cycle selon les deux types d’achat et de vente séparément, par exemple, le diagramme de ligne K à un cycle d’une minute, combien de transactions de chaque ligne K correspondent aux deux types d’achat et de vente. L’idée est de prendre les données de commerce et de les cumuler quand il n’y a pas de nouvelles lignes K produites, puis, après la génération de nouvelles lignes K, de classer les statistiques sur les données de commerce accumulées, de réinitialiser les paramètres du nombre de prises, et de passer à la prochaine boucle. Cependant, il y a un problème lors de l’analyse à l’échelle du disque dur, l’un est que les données de transaction statistiques correspondent aux enregistrements de chaque ligne K réelle.[-2][“Volume” est un album qui a été vendu à plus d’un million d’exemplaires, soit plus de la moitié de ce qu’il avait été vendu à l’époque.[-2][“Volume”] montre une forte quantité de transactions. Voici le code qui m’a fait tourner en rond pendant deux jours. Veuillez m’indiquer s’il y a un problème avec la logique ou si la révision elle-même peut avoir ce problème.
def GetRecords(self):
if self.LastBarTime == self.BarTime:
trades = _C(exchange.GetTrades)
if trades :
for i in range (len(trades)):
if trades[i] not in self.trades:
self.trades.append(trades[i])
if self.LastBarTime != self.BarTime: #新K线
if self.trades :
for i in range (len(self.trades)):
if self.trades[i]["Type"] == 0 : #买单
self.trade_buy.append(self.trades[i])
if self.trades[i]["Type"] == 1 : #卖单
self.trade_sell.append(self.trades[i])
if self.trade_buy:
for i in range (len(self.trade_buy)):
self.totlebuyamount += self.trade_buy[0-i]["Amount"]
if self.trade_sell:
for i in range (len(self.trade_sell)):
self.totlesellamount += self.trade_sell[0-i]["Amount"]
Log("总成交量",self.totlebuyamount+self.totolesellamoun,"买单成交量",self.totlebuyamount,"卖单成交量",self.totolesellamount)
self.trades = []
self.trade_buy = []
self.trade_sell = []
self.totlebuyamount = 0
self.totlesellamount = 0