def crypton_emoney_list(user, currency): cursor = connection.cursor() Query = "SELECT debit_credit,wallet ,amnt, pub_date, status FROM main_emoney_in_out WHERE 1\ AND user_id = %s AND currency_id='%i' ORDER BY pub_date DESC " % ( str(user), currency.id ) Status = {"auto": _(u"в работе"), "processing": _(u"в работе"), "processing2": _(u"в работе"), "created": _(u"заявлена"), "order_cancel": _(u"отменена"), "canceled": _(u"отменена"), "core_error": _(u"Ошибка"), "processed": _(u'исполнен')} DbOut = {"in": _(u"Дебет"), "out": _(u"Кредит")} Query = cursor.execute(Query) List = dictfetchall(cursor, Query) for item in List: Account = "" if item['wallet'] != '': Account = item["wallet"] Account = "*******" + Account[-4:] Cell = ( DbOut[item["debit_credit"]], Account, item["amnt"], item["pub_date"], Status[item["status"]] ) yield {"transes": Cell}
def crypton_uah_list(user): cursor = connection.cursor() Query = "SELECT pub_date, phone, amnt, comission, user_id, status, debit_credit FROM main_uah_in_out WHERE 1\ AND user_id = %s ORDER BY pub_date DESC " % ( str(user) ) Status = {"auto": _(u"в работе"), "processing": _(u"в работе"), "processing2": _(u"в работе"), "created": _(u"заявлена"), "order_cancel": _(u"отменена"), "canceled": _(u"отменена"), "core_error": _(u"Ошибка"), "processed": _(u'исполнен')} DbOut = {"in": _(u"Дебет"), "out": _(u"Кредит")} Query = cursor.execute(Query) List = dictfetchall(cursor, Query) for item in List: Account = item["phone"] Account = Account[:4] + "*******" + Account[-4:] Cell = ( DbOut[item["debit_credit"]], Account, item["amnt"], item["pub_date"], Status[item["status"]] ) yield {"transes": Cell}
def crypton_emoney_list(user, currency): cursor = connection.cursor() Query = ( "SELECT debit_credit,wallet ,amnt, pub_date, status FROM main_emoney_in_out WHERE 1\ AND user_id = %s AND currency_id='%i' ORDER BY pub_date DESC " % (str(user), currency.id) ) Status = { "auto": _(u"в работе"), "processing": _(u"в работе"), "processing2": _(u"в работе"), "created": _(u"заявлена"), "order_cancel": _(u"отменена"), "canceled": _(u"отменена"), "core_error": _(u"Ошибка"), "processed": _(u"исполнен"), } DbOut = {"in": _(u"Дебет"), "out": _(u"Кредит")} Query = cursor.execute(Query) List = dictfetchall(cursor, Query) for item in List: Account = "" if item["wallet"] != "": Account = item["wallet"] Account = "*******" + Account[-4:] Cell = (DbOut[item["debit_credit"]], Account, item["amnt"], item["pub_date"], Status[item["status"]]) yield {"transes": Cell}
def crypton_uah_list(user): cursor = connection.cursor() Query = ( "SELECT pub_date, phone, amnt, comission, user_id, status, debit_credit FROM main_uah_in_out WHERE 1\ AND user_id = %s ORDER BY pub_date DESC " % (str(user)) ) Status = { "auto": _(u"в работе"), "processing": _(u"в работе"), "processing2": _(u"в работе"), "created": _(u"заявлена"), "order_cancel": _(u"отменена"), "canceled": _(u"отменена"), "core_error": _(u"Ошибка"), "processed": _(u"исполнен"), } DbOut = {"in": _(u"Дебет"), "out": _(u"Кредит")} Query = cursor.execute(Query) List = dictfetchall(cursor, Query) for item in List: Account = item["phone"] Account = Account[:4] + "*******" + Account[-4:] Cell = (DbOut[item["debit_credit"]], Account, item["amnt"], item["pub_date"], Status[item["status"]]) yield {"transes": Cell}
def setup_deals(Req, Title, Dict): Current = TradePairs.objects.get(url_title=Title) cursor = connection.cursor() Query = cursor.execute("SELECT main_trans.amnt as amnt, main_trans.pub_date as ts,\ currency_id, \ main_orders.sum1_history as order_sum1,\ main_orders.sum2_history as order_sum2 \ FROM main_trans, main_orders \ WHERE \ main_orders.trade_pair_id = %i \ AND main_orders.id = main_trans.order_id \ AND main_trans.status='deal'\ ORDER BY main_trans.pub_date DESC LIMIT 100" % ( Current.id )) List = dictfetchall(cursor, Query) for item in List: item["pub_date"] = item["ts"] if int(item["currency_id"]) == int(Current.currency_on.id): item["type"] = "buy" rate = item["price"] item["price"] = rate item["sum2"] = item["amnt"] * rate item["sum1"] = item["amnt"] else: item["type"] = "sell" rate = item["price"] item["price"] = rate item["sum2"] = item["amnt"] item["sum1"] = item["amnt"] / rate Dict["deals"] = List return Dict
def common_deal_list(Pair, User_id = None): Current = TradePairs.objects.get(url_title = Pair) cursor = connection.cursor() add_user_filter_str = "" if User_id is not None : add_user_filter_str = " AND main_accounts.user_id = %i " % ( User_id ) Query = cursor.execute("SELECT main_trans.amnt as amnt,\ main_trans.pub_date as ts,\ price, \ main_trans.currency_id as currency_id, \ username as username, \ main_trans.user2_id as trans_owner_id, \ main_orders.user_id as order_owner_id, \ main_orders.sum1_history as order_sum1,\ main_orders.sum2_history as order_sum2 \ FROM main_trans, main_orders, main_accounts, auth_user \ WHERE \ main_orders.trade_pair_id = %i \ AND main_orders.id = main_trans.order_id \ AND main_accounts.id = main_trans.user2_id \ AND auth_user.id = main_accounts.user_id \ AND main_trans.status='deal' %s\ ORDER BY main_trans.pub_date DESC LIMIT 100" % ( Current.id, add_user_filter_str) ) List = dictfetchall(cursor, Query) ResList = [] for item in List : new_item = process_deal_item( item, Current ) ResList.append(new_item) return ResList
def day_stat(Req, Pair): Current = TradePairs.objects.get(url_title=Pair) ##last value 17520 cursor = connection.cursor() Q = cursor.execute("SELECT sum(VolumeTrade) as VolumeTrade, \ sum(VolumeBase) as VolumeBase,\ max(Max) as Max,\ min(Min) as Min \ FROM main_stockstat WHERE main_stockstat.Stock_id=%i \ ORDER BY id DESC LIMIT 17520 " % Current.id) List = dictfetchall(cursor, Q) row = List[0] for i in row: if not row[i]: row[i] = format_numbers4(Decimal("0")) else: row[i] = format_numbers4(Decimal(row[i])) Dict = {"volume_base": row['VolumeBase'], "volume_trade": row['VolumeTrade'], "min": row['Min'], "max": row['Max'], } RespJ = json.JSONEncoder().encode(Dict) return RespJ
def get_price_vol(cursor, Type, Time): Query = cursor.execute("SELECT 100000*(unixtime div 100) as t,\n\ sum(amount) as p \n\ FROM main_btce_trade_stat_minute_usd \n\ WHERE \n\ datetime > (now() - interval 30 day)\n\ AND (unixtime*1000)> %i\n\ AND stock_type = '%s'\n\ GROUP BY t ORDER BY t " % (int(Time), Type)) List = dictfetchall(cursor, Query) last = Time Result = [] for i in List: Result.append([i["t"], float(i["p"])]) last = i["t"] return (Result, last)
def get_price_vol(cursor, Type, Time): Query = cursor.execute( "SELECT 100000*(unixtime div 100) as t,\n\ sum(amount) as p \n\ FROM main_btce_trade_stat_minute_usd \n\ WHERE \n\ datetime > (now() - interval 30 day)\n\ AND (unixtime*1000)> %i\n\ AND stock_type = '%s'\n\ GROUP BY t ORDER BY t " % ( int(Time), Type ) ) List = dictfetchall(cursor, Query) last = Time Result = [] for i in List: Result.append([i["t"], float(i["p"])]) last = i["t"] return (Result, last)
def handle(self, *args, **options): cursor = connection.cursor() for Market in TradePairs.objects.filter(status="processing"): Query = cursor.execute( "SELECT main_transmem.amnt as amnt,\ main_transmem.pub_date as ts,\ price, \ main_transmem.currency_id as currency_id, \ username as username, \ main_transmem.user2_id as trans_owner_id, \ main_ordersmem.user as order_owner_id, \ main_ordersmem.sum1_history as order_sum1,\ main_ordersmem.sum2_history as order_sum2 \ FROM main_transmem, main_ordersmem,\ main_accounts, auth_user \ WHERE \ main_ordersmem.trade_pair = %i \ AND main_ordersmem.id = main_transmem.order_id \ AND main_accounts.id = main_transmem.user2_id \ AND auth_user.id = main_accounts.user_id \ AND main_transmem.status='deal' \ ORDER BY main_transmem.pub_date " % (Market.id) ) List = dictfetchall(cursor, Query) ResList = [] for item in List: new_item = process_deal_item(item, Market) ResList.append(new_item) DealsMemory.objects.bulk_create(ResList) for item in OrdersMem.objects.filter(status="processed"): ArchiveOrder = item.stable_order(str(item.user)) for trans in TransMem.objects.filter(order_id=item.id).order_by("id"): trans.archive(ArchiveOrder) item.delete() for item in OrdersMem.objects.filter(status="canceled").order_by("id"): ArchiveOrder = item.stable_order(str(item.user)) for trans in TransMem.objects.filter(order_id=item.id).order_by("id"): trans.archive(ArchiveOrder) item.delete()
def handle(self, *args, **options): print "top prices" print "=============================================" cursor = connection.cursor() for item in TradePairs.objects.filter(status = "processing"): Query = cursor.execute("SELECT min(main_orders.price) as top_price \n\ FROM main_orders, main_tradepairs\n\ WHERE main_orders.status='processing'\n\ AND main_orders.trade_pair_id = %i \n\ AND main_tradepairs.id = %i \n\ AND main_orders.currency1_id = main_tradepairs.currency_on_id \n\ \n\ " % ( item.id, item.id )) List = dictfetchall(cursor, Query) CurrentName = item.url_title + "_top_price" CurrentPrice = None try : CurrentPrice = VolatileConsts.objects.get(Name = CurrentName) except : CurrentPrice = VolatileConsts(Name = CurrentName, Value = "None" ) CurrentPrice.save() if List[0]["top_price"] is not None and List[0]["top_price"]>0: top_price = List[0]["top_price"] print top_price if top_price>=0.1: CurrentPrice.Value = format_numbers(top_price) if top_price<0.1 and top_price > 0.001: CurrentPrice.Value = format_numbers(top_price) if top_price<0.00001 : CurrentPrice.Value = format_numbers10(top_price) print " to " print CurrentPrice.Value CurrentPrice.save() else: CurrentPrice.Value = "No deals" CurrentPrice.save()
def common_deal_list(Pair, User_id = None): Current = None try: Current = TradePairs.objects.get(url_title = Pair) except : return [] cursor = connection.cursor() add_user_filter_str = "" if User_id is not None : add_user_filter_str = " AND main_accounts.user_id = %i " % ( User_id ) Query = cursor.execute("SELECT main_trans.amnt as amnt,\ main_trans.pub_date as ts,\ price, \ main_trans.currency_id as currency_id, \ username as username, \ main_trans.user2_id as trans_owner_id, \ main_orders.user_id as order_owner_id, \ main_orders.sum1_history as order_sum1,\ main_orders.sum2_history as order_sum2 \ FROM main_trans, main_orders, main_accounts, auth_user \ WHERE \ main_orders.trade_pair_id = %i \ AND main_orders.id = main_trans.order_id \ AND main_accounts.id = main_trans.user2_id \ AND auth_user.id = main_accounts.user_id \ AND main_trans.status='deal' %s\ ORDER BY main_trans.pub_date DESC LIMIT 100" % ( Current.id, add_user_filter_str) ) List = dictfetchall(cursor, Query) ResList = [] for item in List : new_item = process_deal_item( item, Current ) ResList.append(new_item) return ResList
def handle(self, *args, **options): print "stock_stat" print "==============================" getcontext().prec = 6 cursor = connection.cursor() Now = datetime.now() (Range1, Range2) = get_current_range(Now); for Market in TradePairs.objects.filter(status="processing"): StockStatistic = None try: StockStatistic = StockStat.objects.get(Status="current", Stock=Market) except: StockStatisticaPast = StockStat.objects.filter(Status="past", Stock=Market).latest('id') StockStatistic = StockStat( start_date=Range1, end_date=Range2, Start=StockStatisticaPast.End, End=StockStatisticaPast.End, Min=StockStatisticaPast.End, Max=StockStatisticaPast.End, Stock=Market, VolumeBase=0, VolumeTrade=0, Status="current" ) StockStatistic.save() # continue CurrentStockStat = None if StockStatistic.start_date < Now and StockStatistic.end_date > Now: CurrentStockStat = StockStatistic self.stdout.write('Use previos window ') else: StockStatistic.Status = "past" StockStatistic.save() self.stdout.write('Start new window ') CurrentStockStat = StockStat( start_date=Range1, end_date=Range2, Start=StockStatistic.End, End=StockStatistic.End, Min=StockStatistic.End, Max=StockStatistic.End, Stock=Market, VolumeBase=0, VolumeTrade=0, Status="current" ) OrdersList = Orders.objects.filter(trade_pair=Market, status="processing") self.stdout.write('get orders ') Query = cursor.execute("SELECT main_trans.amnt as amnt,\ main_trans.pub_date as ts,\ price, \ main_trans.currency_id as currency_id, \ username as username, \ main_trans.user2_id as trans_owner_id, \ main_orders.user_id as order_owner_id, \ main_orders.sum1_history as order_sum1,\ main_orders.sum2_history as order_sum2 \ FROM main_trans, main_orders, main_accounts, auth_user \ WHERE \ main_orders.trade_pair_id = %i \ AND main_orders.id = main_trans.order_id \ AND main_accounts.id = main_trans.user2_id \ AND auth_user.id = main_accounts.user_id \ AND main_trans.status='deal' \ AND (main_trans.pub_date>'%s' AND main_trans.pub_date<'%s') \ ORDER BY main_trans.pub_date DESC LIMIT 100" % ( Market.id, str(Range1), str(Range2) ) ) # Query = cursor.execute("SELECT main_trans.amnt as amnt,\ #main_trans.pub_date as ts,\ #currency_id, \ #main_orders.sum1_history as order_sum1,\ #main_orders.sum2_history as order_sum2 \ #FROM main_trans, main_orders \ #WHERE \ #main_orders.trade_pair_id = %i \ #AND (main_trans.pub_date>'%s' AND main_trans.pub_date<'%s') \ #AND main_orders.id = main_trans.order_id AND main_trans.status='deal'\ #ORDER BY main_trans.id \ #" % #( Market.id, #str(Range1), #str(Range2) ) #) self.stdout.write('get transactions ') List = dictfetchall(cursor, Query) ResList = [] self.stdout.write(' init params ') EndRate = CurrentStockStat.End self.stdout.write('end rate ') VolumeTrade = 0 VolumeBase = 0 TradeCurrencyId = int(Market.currency_on.id) MaxRate = 0 # CurrentStockStat.Max MinRate = CurrentStockStat.Min ###process Deals for item in List: self.stdout.write('Successfully closed poll "%s"' % (item["amnt"])) if int(item["currency_id"]) == TradeCurrencyId: self.stdout.write('adding valume from') VolumeTrade = VolumeTrade + item["amnt"] rate = item["price"] else: self.stdout.write('adding valume base') VolumeBase = VolumeBase + item["amnt"] rate = item["price"] if rate < MinRate: MinRate = rate if rate > MaxRate: MaxRate = rate EndRate = rate if MaxRate == 0: MaxRate = CurrentStockStat.Max if MinRate == 0: MinRate = CurrentStockStat.Min CurrentStockStat.VolumeBase = VolumeBase CurrentStockStat.VolumeTrade = VolumeTrade CurrentStockStat.End = EndRate CurrentStockStat.Min = MinRate CurrentStockStat.Max = MaxRate CurrentStockStat.save()
def handle(self, *args, **options): CurrentStockStat = args[0] start_date = args[1] end_date = args[2] set_or_no = args[3] Range1 = datetime.fromtimestamp(int(start_date)) Range2 = datetime.fromtimestamp(int(end_date)) getcontext().prec = 6 cursor = connection.cursor() Market = TradePairs.objects.get(title = CurrentStockStat) StockStatistic = None try : StockStatistic = StockStat.objects.get(Status = "current", Stock = Market) except : StockStatistic = StockStat( start_date = Range1, end_date = Range2, Start = 0 , End = 0 , Min = 99999999999, Max = 0, Stock = Market, VolumeBase = 0, VolumeTrade = 0, Status = "current" ) StockStatistic.save() CurrentStockStat = None if StockStatistic.start_date < Now and StockStatistic.end_date > Now: CurrentStockStat = StockStatistic self.stdout.write('Use previos window ' ) else: StockStatistic.Status = "past" StockStatistic.save() self.stdout.write('Start new window ' ) CurrentStockStat = StockStat( start_date = Range1, end_date = Range2, Start = StockStatistic.End , End = StockStatistic.End , Min = StockStatistic.End, Max = StockStatistic.End, Stock = Market, VolumeBase = 0, VolumeTrade = 0, Status = "current" ) OrdersList = Orders.objects.filter(trade_pair = Market, status = "processing") self.stdout.write('get orders ' ) Query = cursor.execute("SELECT main_trans.amnt as amnt,\ main_trans.pub_date as ts,\ currency_id, \ main_orders.sum1_history as order_sum1,\ main_orders.sum2_history as order_sum2 \ FROM main_trans, main_orders \ WHERE \ main_orders.trade_pair_id = %i \ AND (main_trans.pub_date>'%s' AND main_trans.pub_date<'%s') \ AND main_orders.id = main_trans.order_id AND main_trans.status='deal'\ ORDER BY main_trans.id \ " % ( Market.id, str(Range1), str(Range2) ) ) self.stdout.write('get transactions ' ) List = dictfetchall(cursor, Query) ResList = [] self.stdout.write(' init params ' ) EndRate = CurrentStockStat.End self.stdout.write('end rate ' ) VolumeTrade = 0 VolumeBase = 0 TradeCurrencyId = int(Market.currency_on.id) MaxRate = 0# CurrentStockStat.Max MinRate = CurrentStockStat.Min ###process Deals for item in List : self.stdout.write('Successfully closed poll "%s"' % (item["amnt"]) ) if int(item["currency_id"]) == TradeCurrencyId: self.stdout.write('adding valume from') VolumeTrade = VolumeTrade + item["amnt"] rate = item["order_sum1"]/item["order_sum2"] else: self.stdout.write('adding valume base' ) VolumeBase = VolumeBase + item["amnt"] rate = item["order_sum2"]/item["order_sum1"] if rate < MinRate : MinRate = rate if rate > MaxRate : MaxRate = rate EndRate = rate if MaxRate == 0: MaxRate = CurrentStockStat.Max if MinRate == 0 : MinRate = CurrentStockStat.Min CurrentStockStat.VolumeBase = VolumeBase CurrentStockStat.VolumeTrade = VolumeTrade CurrentStockStat.End = EndRate CurrentStockStat.Min = MinRate CurrentStockStat.Max = MaxRate CurrentStockStat.save()