Esempio n. 1
0
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}
Esempio n. 2
0
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}
Esempio n. 3
0
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}
Esempio n. 4
0
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}
Esempio n. 5
0
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
Esempio n. 6
0
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
Esempio n. 7
0
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
Esempio n. 8
0
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
Esempio n. 9
0
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)
Esempio n. 10
0
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)
Esempio n. 11
0
    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()
Esempio n. 12
0
 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()
Esempio n. 13
0
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
Esempio n. 14
0
    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()
Esempio n. 15
0
  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()