Пример #1
0
def getSpot(code):
    """
    获取汇率对的实时汇率,用于把本金转化为美元
    """
    if code.strip().upper() == 'USD':
        return 1.0
    else:
        code1 = 'USD' + code.strip().upper()
        code2 = code.strip().upper() + 'USD'
        mongo = mongodb()
        data = mongo.select('kline_new', {
            'type': '0',
            'code': {
                '$in': [code1, code2]
            }
        })
        mongo.close()

        if data != []:
            data = data[0]
            if data['code'][:3] == 'USD':
                return 1.0 / (data['Close'] / data['PriceWeight'])
            else:
                return data['Close'] / 1.0 / data['PriceWeight']

        else:
            return None
Пример #2
0
def simulate(code,start_time,end_time):    
    m = mongodb()
    start_time = start_time+' 00:00:00'
    end_time = end_time+' 00:00:00'
    data = m.select('kline',{'code':code,'type':'5','Time':{'$gte':start_time,'$lte':end_time}})
    if data ==[]:
        return []
    else:
        rate = map(lambda x:x.get('Close')/1.0/x.get('PriceWeight'),data)
Пример #3
0
def setrate():
    from database.database import mongodb  ## mongo connect
    from help.help import getNow, strTostr  ##get current datetime
    key = {'code': True}
    Time = strTostr(getNow('%Y-%m-%d'))
    initial = {'Time': Time}
    reduces = """function(doc,prev){
                if (prev.Time>doc.Time){
                prev.Time = doc.Time
                }}"""
    condition = {'type': '5'}
    db = mongodb()
    rate = db.group('kline', key, condition, initial, reduces)
    rate = map(lambda x: {x['code']: x['Time'].split()[0]}, rate)
    globalrate.rate = reduce(lambda x, y: dict(x, **y), rate)
    db.close()
Пример #4
0
def getCNHCNY(_type):
    """
    获取美元对人民币的汇率
    _type.upper()=='CNH' ###离岸人民币
    _type.upper()=='CNY' ###在岸人民币
       
    """

    code = 'USD' + _type.strip().upper()
    mongo = mongodb()
    data = mongo.select('kline_new', {'type': '0', 'code': code})
    mongo.close()

    if data != []:
        data = data[0]
        return data['Close'] / 1.0 / data['PriceWeight']
    else:
        return None
Пример #5
0
    def __init__(self, Lock, Now):
        #Now = getNow()
        #Now = strTodate(Now,'%Y-%m-%d %H:%M:%S')
        option.__init__(self)
        # self.delta  =delta
        self.table = table_frs_option
        self.writetable = table_write_tmp
        self.Lock = Lock
        #self.Now = Now

        if testlag:  ##调用测试数据
            from test.test import getDataFromMongo

            #            self.trfdata, self.data = getDataFromMongo(Now)
            self.cumputeLost()
            #self.cumputeLost()

        else:

            self.mongo = mongodb()
            self.Now = strTodate(Now, '%Y-%m-%d %H:%M:%S')
            self.getDataFromPostgres()  ##从post提取数据
Пример #6
0
def getR(Currency):
    """
     获取货币对的最新汇率
    """
    error = None
    #sendData=({'errMsg':error,'errCode':0,'data':None})
    try:
        mongo = mongodb()
        R = mongo.select('kline_new', {'type': '0', 'code': {'$in': Currency}})
        R = reduce(
            lambda x, y: dict(x, **y),
            map(
                lambda lst:
                {lst['code']: lst['Close'] / 1.0 / lst['PriceWeight']}, R))
        mongo.close()
    except:
        R = None
    if R is None:
        ## 判断是否找到数据
        sendData = {
            'errMsg': '{} not fund!\n'.format(Currency),
            'errCode': 4,
            'data': None
        }  ##汇率缺失
        return sendData
    if len(R) != len(Currency):
        error = 'The currencyPair not fund:\n'
        for currency in Currency:
            if currency not in R.keys():
                if error is None:
                    error = "%s not fund!\n" % currency
                else:
                    error += "%s not fund!\n" % currency

        sendData = {'errMsg': error, 'errCode': 4, 'data': None}  ##汇率缺失
    else:
        sendData = {'errMsg': None, 'errCode': 0, 'data': R}
    return sendData
Пример #7
0
def gethistory(Currency):
    """获取汇率对的历史收盘价"""
    data = []
    try:
        mongo = mongodb()
        data = mongo.select('kline', {'type': '5', 'code': Currency})
        mongo.close()
    except:
        pass
    if data != []:
        data = pd.DataFrame(data)
        data = data[['Time', 'Close', 'PriceWeight']]
        data['Close'] = data['Close'] / data['PriceWeight']
        #data['High'] = data['High']/data['PriceWeight']
        #data['Open'] = data['Open']/data['PriceWeight']
        #data['LastClose'] = data['LastClose']/data['PriceWeight']
        #data['Low'] = data['Low']/data['PriceWeight']

        data['Time'] = data['Time'].map(
            lambda x: strTostr(x, '%Y-%m-%d %H:%M:%S', '%Y-%m-%d'))
        data = data[['Time', 'Close']]

    return data