def compute_3or5(stock_no): date_infos = da.dailyrecords.load_by_stockno(stock_no) date_len = len(date_infos) rows = [] for i in range(0, date_len): print i stock_date = date_infos[i] d = stock_date.date dh5 = __compute_trend(date_infos, i, 5, 'high_price') dh3 = __compute_trend(date_infos, i, 3, 'high_price') dl5 = __compute_trend(date_infos, i, 5, 'low_price') dl3 = __compute_trend(date_infos, i, 3, 'low_price') #未来n天内,收盘价 与 明天开盘价对比 prates = {} tommorrow_open_price = date_infos[i - 1].open_price for day in range(2, 6): prates[day] = None if i < day: continue prates[day] = (date_infos[i - day].close_price - tommorrow_open_price) / tommorrow_open_price if i > 6: p = date_infos[i - 6].close_price - date_infos[i - 1].open_price prate = p / date_infos[i - 1].open_price print stock_date.date, dh5, dh3, dl5, dl3, p, prate if date_len > (i + 5): history_prate_3 = ( stock_date.close_price - date_infos[i + 3].close_price) / date_infos[i + 3].close_price history_prate_5 = ( stock_date.close_price - date_infos[i + 5].close_price) / date_infos[i + 5].close_price rows.append( web.storage(pk_id=stock_date.pk_id, date=stock_date.date, stock_no=stock_date.stock_no, high5=dh5, high3=dh3, low5=dl5, low3=dl3, tmrow_open_price=tommorrow_open_price, price_rate_2=prates[2], price_rate_3=prates[3], price_rate_4=prates[4], price_rate_5=prates[5], history_prate_3=history_prate_3, history_prate_5=history_prate_5)) i = i + 1 dbw.delete('trend_daily', where="stock_no=$stock_no", vars=locals()) dbw.supports_multiple_insert = True dbw.multiple_insert('trend_daily', rows)
def insert(terms): if not terms: return values = [] for t in terms: if not t[0].strip(): continue values.append({'term':t[0],'count':t[1],'idf':t[2],'last_update':datetime.datetime.now()} ) dbw.supports_multiple_insert = True dbw.multiple_insert(tname, values=values)
def update_v2(l): dbw.delete('stock_daily_records_tmp',where="pk_id>0",vars=locals()) dbw.supports_multiple_insert = True dbw.multiple_insert('stock_daily_records_tmp',l) dbw.query('''update stock_daily_records a,stock_daily_records_tmp t set a.raise_drop=t.raise_drop, a.raise_drop_rate=t.raise_drop_rate, a.volume_updown=t.volume_updown, a.volume_updown_rate=t.volume_updown_rate, a.last_update = t.last_update where a.pk_id=t.pk_id''')
def update_v2(l): dbw.delete('stock_daily_records_tmp', where="pk_id>0", vars=locals()) dbw.supports_multiple_insert = True dbw.multiple_insert('stock_daily_records_tmp', l) dbw.query('''update stock_daily_records a,stock_daily_records_tmp t set a.raise_drop=t.raise_drop, a.raise_drop_rate=t.raise_drop_rate, a.volume_updown=t.volume_updown, a.volume_updown_rate=t.volume_updown_rate, a.last_update = t.last_update where a.pk_id=t.pk_id''')
def import_to_db(params,results): stock_nos = load_all_stock_nos() l = [] for r in results: if r[0] not in stock_nos: row = {'market_code':params['t'],'stock_no':r[0],'stock_name':r[1],'create_date':datetime.datetime.now(),'last_update':datetime.datetime.now()} print row l.append(row) dbw.supports_multiple_insert = True dbw.multiple_insert('stock_base_infos',l)
def insert(terms): if not terms: return values = [] for t in terms: if not t[0].strip(): continue values.append({ 'term': t[0], 'count': t[1], 'idf': t[2], 'last_update': datetime.datetime.now() }) dbw.supports_multiple_insert = True dbw.multiple_insert(tname, values=values)
def import_stock_daily_data(market_code,stock_no,data): stock_dates = load_stock_dates(stock_no) max_date = max(stock_dates) if stock_dates else '1900-01-01' l=[] for row in data: #if row['date'] <= max_date: break if row['date'] in stock_dates: continue row['stock_market_no'] = market_code row['stock_no'] = stock_no row['create_date'] = datetime.datetime.now() row['last_update'] = datetime.datetime.now() l.append(row) print '%s.%s csv len is %s' %(market_code,stock_no,len(data)) print '%s.%s insert len is %s' %(market_code,stock_no,len(l)) dbw.supports_multiple_insert = True dbw.multiple_insert('stock_daily_records',l)
def import_stock_daily_data(market_code, stock_no, data): stock_dates = load_stock_dates(stock_no) max_date = max(stock_dates) if stock_dates else '1900-01-01' l = [] for row in data: #if row['date'] <= max_date: break if row['date'] in stock_dates: continue row['stock_market_no'] = market_code row['stock_no'] = stock_no row['create_date'] = datetime.datetime.now() row['last_update'] = datetime.datetime.now() l.append(row) print '%s.%s csv len is %s' % (market_code, stock_no, len(data)) print '%s.%s insert len is %s' % (market_code, stock_no, len(l)) dbw.supports_multiple_insert = True dbw.multiple_insert('stock_daily_records', l)
def compute_3or5(stock_no): date_infos = da.dailyrecords.load_by_stockno(stock_no) date_len = len(date_infos) rows = [] for i in range(0,date_len): print i stock_date = date_infos[i] d = stock_date.date dh5 = __compute_trend(date_infos,i,5,'high_price') dh3 = __compute_trend(date_infos,i,3,'high_price') dl5 = __compute_trend(date_infos,i,5,'low_price') dl3 = __compute_trend(date_infos,i,3,'low_price') #未来n天内,收盘价 与 明天开盘价对比 prates = {} tommorrow_open_price = date_infos[i-1].open_price for day in range(2,6): prates[day] = None if i < day : continue prates[day] = (date_infos[i-day].close_price - tommorrow_open_price) / tommorrow_open_price if i > 6: p = date_infos[i-6].close_price - date_infos[i-1].open_price prate = p/date_infos[i-1].open_price print stock_date.date,dh5,dh3,dl5,dl3,p,prate if date_len > (i+5): history_prate_3 = (stock_date.close_price - date_infos[i+3].close_price) / date_infos[i+3].close_price history_prate_5 = (stock_date.close_price - date_infos[i+5].close_price) / date_infos[i+5].close_price rows.append(web.storage(pk_id=stock_date.pk_id,date=stock_date.date,stock_no=stock_date.stock_no, high5=dh5,high3=dh3,low5=dl5,low3=dl3,tmrow_open_price=tommorrow_open_price, price_rate_2=prates[2],price_rate_3=prates[3],price_rate_4=prates[4],price_rate_5=prates[5], history_prate_3=history_prate_3,history_prate_5=history_prate_5)) i = i + 1 dbw.delete('trend_daily',where="stock_no=$stock_no",vars=locals()) dbw.supports_multiple_insert = True dbw.multiple_insert('trend_daily',rows)
def import_daily_records(table,rows): dbw.supports_multiple_insert = True dbw.multiple_insert(table,rows)
def import_daily_records(table, rows): dbw.supports_multiple_insert = True dbw.multiple_insert(table, rows)