def getHistoryIntervalsToDB(intervals, intervalSize, instrument = 'EUR/USD', period = 'ONE_MIN'): engine = DukascopyEngine() res = engine.getHistoryBars(instrument, intervalSize, 0, 0, period, trimInstrument=True, filterWeekends=False) for i in range(1,intervals): print 'collecting %d of %d' %(i, intervals) newData = engine.getHistoryBars(instrument, intervalSize, i*intervalSize, 0, period, trimInstrument=True, filterWeekends=False) res = np.append(newData, res, axis=0) return res
def updateQuotesFromDukascopy(instrument, period, depth = 5000000): intervalSize = 3000 intervals = int(depth/intervalSize) import postgresql as db tableName = db.getTableName(instrument, period, depth) if db.isTableExist(tableName) is False: db.createQuotesTable(instrument, period, depth) lastQuote = db.getLastQuote(tableName) if lastQuote is not None: lastQuoteTime = lastQuote[0] else: lastQuoteTime = datetime(2000,1,1) lastQuoteReachedFlag = False engine = DukascopyEngine() for i in range(0, intervals): print 'collecting %d of %d' %(i+1, intervals) if lastQuoteReachedFlag is True: continue res = [] newData = engine.getHistoryBars(instrument, intervalSize, i*intervalSize, 0, period, trimInstrument=True, filterWeekends=False) for row in newData: if row[0] > lastQuoteTime: res.append(row) else: lastQuoteReachedFlag = True db.insertQuotes(tableName, res)
def updateQuotes(maxQuotes = 100): intervalSize = 3000 intervals = 2100 import postgresql as db #tableName = "eurusd_1min" tableName = "eurusd_10sec" lastQuote = db.getLastQuote(tableName) if lastQuote is not None: lastQuoteTime = lastQuote[0] else: lastQuoteTime = datetime(2000,1,1) lastQuoteReachedFlag = False engine = DukascopyEngine() for i in range(0, intervals): print 'collecting %d of %d' %(i+1, intervals) if lastQuoteReachedFlag is True: continue res = [] newData = engine.getHistoryBars('EUR/USD', intervalSize, i*intervalSize, 0, 'TEN_SECS', trimInstrument=True, filterWeekends=False) for row in newData: if row[0] > lastQuoteTime: res.append(row) else: lastQuoteReachedFlag = True db.insertQuotes(tableName, res) exit() print lastQuote data = getHistoryIntervalsToDB(10, 10, instrument='EUR/USD', period='ONE_MIN') db.insertQuotes("eurusd_1min", data) print 'done'