#!/usr/bin/python import os import logging from rlog import ogerlogger ########################################### setup logging primitive log = ogerlogger('util') _info = log.info _debug = log.debug _warn = log.warning _err = log.error _crit = log.critical class ogerutil: def __init__(self, sid): self.stock_id = sid def stock_id(self, sid): self.stock_id = sid def workingdir(self): return "./data/" def dbdir(self): return "./db/" def monfile(self, year, month): filename = (self.workingdir() + '%s_%04dY_%02dM.DAT' % (self.stock_id, year, month)) _debug('monfile %s' % filename) return filename def isDBFileExist(self): fn = self.dbfile() if os.path.exists(fn): return True
import time import os, sys from rdownload import ogerdownloader from rcontext import ogercontext from rdate import ogerdate from rhtmlwriter import ogerhtmlwriter from remail import ogeremail from rtextdump import ogertxtdump from rutil import ogerutil import logging from rlog import ogerlogger ########################################### setup logging primitive log = ogerlogger('top') _info = log.info _debug = log.debug _warn = log.warning _err = log.error _crit = log.critical def usage(): print '\t./stokbot.py update : update or init db listed in stok.list' print '' def init(stock_id): stock_id = int(stock_id) d = ogerdownloader(stock_id) d.mergemonfile2db() d.gendbfile()
#!/usr/bin/python import random import urllib2 import os from rutil import ogerutil from rdate import ogerdate import logging from rlog import ogerlogger ########################################### setup logging primitive log = ogerlogger('dl') _info = log.info _debug = log.debug _warn = log.warning _err = log.error _crit = log.critical class ogerdownloader: def __init__(self, sid): self.stock_id = sid self.u = ogerutil(sid) self.d = ogerdate() def stock_id(self, sid): self.stock_id = sid self.u.stock_id(sid) ### we download a monthly data file. def downloadmonfile(self, y, m):
import sys import logging from rlog import ogerlogger ########################################### setup logging primitive log = ogerlogger('email') _info = log.info _debug = log.debug _warn = log.warning _err = log.error _crit = log.critical class ogertxtdump: def __init__(self, ctx): self.ctx = ctx def dump(self, date, totmpfile=False): if date not in self.ctx.db: _warn('fail to dump. %s not exist' % date) return if totmpfile: f = open(".tmp.dump", "w"); out = f.write else: out = sys.stdout.write t = len(self.ctx.rfields) div = 6 b = 0 e = div sep = ('+' + '-'*17)*div + '+\n'
import os import csv import re import datetime import sys import time from collections import OrderedDict from rutil import ogerutil from rdate import ogerdate from rdownload import ogerdownloader import logging from rlog import ogerlogger ########################################### setup logging primitive log = ogerlogger('ctx') _info = log.info _debug = log.debug _warn = log.warning _err = log.error _crit = log.critical class ogercontext: fields = { 'AllVol' : [0, None], # Trading volume in stock smallest unit 'TurnOver' : [1, None], # TurnOver in value $$ 'Open' : [2, None], # openned price 'High' : [3, None], # highest price 'Low' : [4, None], # lowest price 'Close' : [5, None], # closed price 'Diff' : [6, None], # daily difference in +/- 'Trans' : [7, None], # number of transaction