Exemplo n.º 1
0
def runstrategy(index, fncodearr, div):

    start = div[index][0]
    end = div[index][1]

    for i in range(start, end + 1):
        inst = fncodearr[i][1]
        fname = fncodearr[i][0]

        fromMonth = 1
        fromDay = 1
        toMonth = 2
        toDay = 24
        start_time = datetime.datetime(1990, fromMonth, fromDay, 00, 00)
        end_time = datetime.datetime(2017, toMonth, toDay, 00, 00)
        barFilter = csvfeed.CHINAEquitiesRTH(start_time, end_time)

        dirpath = './data/monk/'
        feed = yahoofeed.Feed()

        path = None
        market = marketsession.CHASE()
        feed.setBarFilter(barFilter)
        path = dirpath + fname
        feed.addBarsFromCSV(inst, path, market=market)

        predicate = month.MONTH()
        eventProfiler = eventprofiler.Profiler(predicate, 1, 1)
        eventProfiler.run(feed, 2, True)

        for k, v in predicate.get().iteritems():
            if 'z' in v and 'd' in v:
                rate = v['z'] / (v['d'] + v['z'] + 0.0)
                if (v['z'] + v['d']) > 10 and rate > 0.8:
                    print k, v, rate
Exemplo n.º 2
0
def runstrategy(index,fncodearr,div, dirpath, freq, q, period):

    start = div[index][0]
    end   = div[index][1]

    for i in range(start,end + 1):
        inst  = fncodearr[i][1]
        fname = fncodearr[i][0] 

        fromMonth = 1 
        fromDay   = 1
        toMonth   = 2
        toDay     = 24
        start_time = datetime.datetime(2001,fromMonth,fromDay,00,00)
        end_time   = datetime.datetime(2020,toMonth,toDay,00,00)
        barFilter  = csvfeed.CHINAEquitiesRTH(start_time,end_time)

        baseinfo = instinfo.InstrumentInfo('data/stockinfo.csv')
        instfiles = [fncodearr[i]] 
        feed = yahoofeed.Feed(frequency=freq)

        path = None
        market = marketsession.CHASE()
        feed.setBarFilter(barFilter)
        path = dirpath + fname

        feed.addBarsFromCSV(inst, path,market=market)

        predicate = macdseg.MacdSeg(feed, baseinfo, q)

        eventProfiler = eventprofiler.Profiler(predicate, 1, 1)
        eventProfiler.run(feed, 2, True)

        dump = utils.DumpFeature(predicate, instfiles, dirpath, period)
        dump.ToDump()
Exemplo n.º 3
0
    def testNoEvents(self):
        feed = yahoofeed.Feed()
        feed.addBarsFromCSV("orcl", common.get_data_file_path("orcl-2000-yahoofinance.csv"))

        predicate = Predicate([])
        eventProfiler = eventprofiler.Profiler(predicate, 5, 5)
        eventProfiler.run(feed, True)
        self.assertEqual(eventProfiler.getResults().getEventCount(), 0)
Exemplo n.º 4
0
    def testOneEvent(self):
        feed = yahoofeed.Feed()
        feed.addBarsFromCSV("orcl", common.get_data_file_path("orcl-2000-yahoofinance.csv"))

        predicate = Predicate([datetime.date(2000, 1, 11)])
        eventProfiler = eventprofiler.Profiler(predicate, 5, 5)
        eventProfiler.run(feed, True)
        self.assertEqual(eventProfiler.getResults().getEventCount(), 1)
        self.assertEqual(eventProfiler.getResults().getValues(0)[0], 1.0)
        self.assertEqual(round(eventProfiler.getResults().getValues(5)[0], 5), round(1.016745541, 5))
Exemplo n.º 5
0
def main(plot):
    instruments = ["AA", "AES", "AIG"]
    feed = googlefinance.build_feed(instruments, 2008, 2009, ".")

    predicate = BuyOnGap(feed)
    eventProfiler = eventprofiler.Profiler(predicate, 5, 5)
    eventProfiler.run(feed, True)

    results = eventProfiler.getResults()
    print "%d events found" % (results.getEventCount())
    if plot:
        eventprofiler.plot(results)
Exemplo n.º 6
0
def main(plot):
    instruments = ["MSFT", "AA"]
    feed = yahoofinance.build_feed(instruments, 2008, 2014, "data")

    predicate = BuyOnGap(feed)
    eventProfiler = eventprofiler.Profiler(predicate, 5, 5)
    eventProfiler.run(feed, True)

    results = eventProfiler.getResults()
    print "%d events found" % (results.getEventCount())
    if plot:
        eventprofiler.plot(results)
Exemplo n.º 7
0
def main(plot):
    instruments = ["IBM", "AES", "AIG"]
    feed = quandl.build_feed("WIKI", instruments, 2008, 2009, ".")

    predicate = BuyOnGap(feed)
    eventProfiler = eventprofiler.Profiler(predicate, 5, 5)
    eventProfiler.run(feed, True)

    results = eventProfiler.getResults()
    print("%d events found" % (results.getEventCount()))
    if plot:
        eventprofiler.plot(results)
Exemplo n.º 8
0
def main(plot):
    symbols = ["IBM", "AES", "AIG"]
    priceCurrency = "USD"
    feed = quandl.build_feed("WIKI", symbols, priceCurrency, 2008, 2009, ".")
    instruments = ["%s/%s" % (symbol, priceCurrency) for symbol in symbols]

    predicate = BuyOnGap(feed, instruments)
    eventProfiler = eventprofiler.Profiler(predicate, 5, 5)
    eventProfiler.run(feed, True)

    results = eventProfiler.getResults()
    print("%d events found" % (results.getEventCount()))
    if plot:
        eventprofiler.plot(results)
Exemplo n.º 9
0
def main(plot):

    instrument = "n225"
    # Load the bar feed from the CSV file
    feed = yahoofeed.Feed()
    feed.addBarsFromCSV(instrument, r".\Data\n225.csv")

    predicate = BuyOnGap(feed)
    eventProfiler = eventprofiler.Profiler(predicate, 5, 5)
    eventProfiler.run(feed, True)

    results = eventProfiler.getResults()
    print("%d events found" % (results.getEventCount()))
    if plot:
        eventprofiler.plot(results)
Exemplo n.º 10
0
    def testEventsOnBoundary(self):
        feed = yahoofeed.Feed()
        feed.addBarsFromCSV("orcl", common.get_data_file_path("orcl-2000-yahoofinance.csv"))

        dates = []
        dates.append(datetime.date(2000, 1, 3))
        dates.append(datetime.date(2000, 1, 4))
        dates.append(datetime.date(2000, 1, 5))
        dates.append(datetime.date(2000, 1, 6))
        dates.append(datetime.date(2000, 1, 7))
        dates.append(datetime.date(2000, 1, 10))
        dates.append(datetime.date(2000, 12, 22))
        dates.append(datetime.date(2000, 12, 26))
        dates.append(datetime.date(2000, 12, 27))
        dates.append(datetime.date(2000, 12, 28))
        dates.append(datetime.date(2000, 12, 29))
        predicate = Predicate(dates)
        eventProfiler = eventprofiler.Profiler(predicate, 5, 5)
        eventProfiler.run(feed, True)
        self.assertEqual(eventProfiler.getResults().getEventCount(), 0)
Exemplo n.º 11
0
def main(plot, argv):

    # Get Parameters
    period = 'day'
    try:
        opts, args = getopt.getopt(argv, "h:p:", ["day="])
    except getopt.GetoptError:
        print 'test.py -d <time>'
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print 'test.py -t <time> -o <outputfile>'
            sys.exit()
        elif opt in ("-p", "--period"):
            period = arg

    # Train Data
    # fromMonth = 1
    # fromDay   = 1
    # toMonth   = 12
    # toDay     = 24
    # start_time = datetime.datetime(2001,fromMonth,fromDay,00,00)
    # end_time   = datetime.datetime(2019,toMonth,toDay,00,00)

    fromMonth = 9
    fromDay = 1
    toMonth = 12
    toDay = 24
    start_time = datetime.datetime(2015, fromMonth, fromDay, 00, 00)
    end_time = datetime.datetime(2019, toMonth, toDay, 00, 00)

    barFilter = csvfeed.CHINAEquitiesRTH(start_time, end_time)
    baseinfo = instinfo.InstrumentInfo('data/stockinfo.csv')

    freq = bar.Frequency.DAY
    dirpath = './data/dayk/'
    if period == 'week':
        dirpath = './data/week/'
        freq = bar.Frequency.WEEK
    if period == 'month':
        dirpath = './data/monk/'
        freq = bar.Frequency.MONTH
    if period == '15min':
        dirpath = './data/15mink/'
        freq = bar.Frequency.MIN15
    if period == '30min':
        dirpath = './data/30mink/'
        freq = bar.Frequency.MIN30

    fs = FileUtils('', '', '')
    codearr = fs.os_walk(dirpath)
    fncodearr = parseinst(codearr, 'ALL')
    feed = yahoofeed.Feed(frequency=freq)

    instfiles = fncodearr
    instfiles = [("ZS000001.csv", "ZS000001")]
    insts = []

    # LOG CONFIGURE
    q = Queue()
    logging.config.dictConfig(log.d)

    path = None
    for ele in instfiles:
        inst = ele[1]
        fname = ele[0]
        market = marketsession.CHASE()
        feed.setBarFilter(barFilter)

        path = dirpath + fname

        feed.addBarsFromCSV(inst, path, market=market)
        insts.append(inst)

    lp = threading.Thread(target=logger_thread, args=(q, ))
    lp.daemon = True
    lp.start()

    predicate = macdseg.MacdSeg(feed, baseinfo, q)

    eventProfiler = eventprofiler.Profiler(predicate, 1, 1)
    eventProfiler.run(feed, 2, True)

    dump = utils.DumpFeature(predicate, instfiles, dirpath, period)
    dump.ToDump()

    q.put(None)