def run(self):
        database = {'user': '******', 'database': 'blackbox', 'host': "192.168.0.8"}
        Symbol.set_info_provider(MySQLSymbolProvider(database))
        provider = MySQLProvider(database, Symbol.get('EURUSD:CUR'), MarketDataPeriod.HOUR_1)

        self.file_handle = open(r"market_data_d1.pkl", "wb")
        provider.startPublishing(lambda symbol, quote: self.add_quote(quote))
        self.file_handle.close()
    def run(self):
        database = {
            'user': '******',
            'database': 'blackbox',
            'host': "192.168.0.8"
        }
        Symbol.set_info_provider(MySQLSymbolProvider(database))
        provider = MySQLProvider(database, Symbol.get('EURUSD:CUR'),
                                 MarketDataPeriod.HOUR_1)

        self.file_handle = open(r"market_data_d1.pkl", "wb")
        provider.startPublishing(lambda symbol, quote: self.add_quote(quote))
        self.file_handle.close()
Exemplo n.º 3
0
    def tick_handler(self, symbol, tick):
        try:
            self.cursor.execute("INSERT INTO tick_data2(symbol_id, timestamp, bid, offer) VALUES(%s, %s, %s, %s)", (symbol.identifier, tick.timestamp.timestamp(), tick.bid, tick.offer))
            self.totalTicks += 1
            if self.totalTicks >= 100000:
                self._db_connection.commit()
                logging.debug("Commited %s" % (self.totalTicks,))
                self.totalTicks = 0
        except connector.errors.IntegrityError as e:
            # probably a duplicate entry
            pass

if __name__ == '__main__':
    logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG)
    database = {'user': '******', 'database': 'blackbox', 'host': "192.168.0.8"};
    Symbol.set_info_provider(MySQLSymbolProvider(database))

    parser = argparse.ArgumentParser(description='Parse CSV Tick data into sqlite db.')
    parser.add_argument("-s", "--symbol", dest="symbol", required=True, help="symbol identifier")
    parser.add_argument("-u", "--user", dest="user", default="blackbox", help="mysql host")
    parser.add_argument("-x", "--host", dest="host", default="localhost", help="mysql host")
    parser.add_argument("-d", "--database", dest="database", default="blackbox", help="mysql database")
    parser.add_argument("-i", "--in", dest="in_filename", help="csv file to read")

    args = parser.parse_args()
    input_files = glob.glob(os.path.expanduser(os.path.expandvars(args.in_filename)))
    logging.debug("Processing %s files: %s" % (len(input_files), input_files))

    h = Handler(args.symbol, args.user, args.database, args.host, input_files)
Exemplo n.º 4
0
                self._db_connection.commit()
                logging.debug("Commited %s" % (self.totalTicks, ))
                self.totalTicks = 0
        except connector.errors.IntegrityError as e:
            # probably a duplicate entry
            pass


if __name__ == '__main__':
    logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG)
    database = {
        'user': '******',
        'database': 'blackbox',
        'host': "192.168.0.8"
    }
    Symbol.set_info_provider(MySQLSymbolProvider(database))

    parser = argparse.ArgumentParser(
        description='Parse CSV Tick data into sqlite db.')
    parser.add_argument("-s",
                        "--symbol",
                        dest="symbol",
                        required=True,
                        help="symbol identifier")
    parser.add_argument("-u",
                        "--user",
                        dest="user",
                        default="blackbox",
                        help="mysql host")
    parser.add_argument("-x",
                        "--host",
Exemplo n.º 5
0
 def setUp(self):
     Symbol.set_info_provider(DummySymbolProvider())
Exemplo n.º 6
0
        self.cursor.execute("CREATE INDEX tick_data_timestamp_idx ON tick_data(timestamp)")

        for filename in input_files:
            logging.info("Processing '%s'" % (filename,))
            data = CSVProvider(Symbol.get(symbol), filename)
            data.start_publishing(self.tickHandler)

    def tickHandler(self, symbol, tick):
        self.pending.append((symbol.identifier, tick.timestamp, tick.bid, tick.offer))
        if len(self.pending) >= 10000:
            self.cursor.executemany("INSERT INTO tick_data(symbol, timestamp, bid, offer) VALUES(?, ?, ?, ?)", self.pending)
            self.totalTicks += len(self.pending)
            self.pending.clear()
            self.conn.commit()
            logging.debug("Commited %s" % (self.totalTicks,))

if __name__ == '__main__':
    logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG)
    Symbol.set_info_provider("")

    parser = argparse.ArgumentParser(description='Parse CSV Tick data into sqlite db.')
    parser.add_argument("-a", "--symbol", dest="symbol", required=True, help="symbol identifier")
    parser.add_argument("-o", "--out", dest="db_filename", default="data.store", help="sqlite filename")
    parser.add_argument("-i", "--in", dest="in_filename", help="csv file to read")

    args = parser.parse_args()
    input_files = glob.glob(os.path.expanduser(os.path.expandvars(args.in_filename)))

    h = Handler(args.symbol, args.db_filename, input_files)
Exemplo n.º 7
0
 def setUp(self):
     Symbol.set_info_provider(DummySymbolProvider())
     logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG)
     self.position = None
Exemplo n.º 8
0
 def setUp(self):
     Symbol.set_info_provider("1")
Exemplo n.º 9
0
 def setUp(self):
     Symbol.set_info_provider(DummySymbolProvider())
     self.callbackQuote = []
Exemplo n.º 10
0
 def setUp(self):
     Symbol.set_info_provider(DummySymbolProvider())
     self.order_router = TestOrderRouter()
     self.algo = NakedBigShadow(10, 50, 100, MarketDataPeriod.HOUR_1)
     self.context = Context(10000, OrderBook(self.order_router, BacktestOrderbookPersist()), self.algo.analysis_symbols(), self.algo.quote_cache_size())