def processStrategy(stock): try: if const.REFRESH_DATA: dataloader.downloadStockData(stock) prices = dataloader.importData(4, stock['file']) const.currentSecId = stock['id'] tr = strategy.runStrategy(prices) return tr except: return None
if const.REFRESH_DATA: dataloader.downloadStockData(stock) prices = dataloader.importData(4, stock['file']) const.currentSecId = stock['id'] tr = strategy.runStrategy(prices) return tr except: return None #finalPool.estimate(tr) #q.put(tr) if __name__ == "__main__": rwlogging.clearLog() if const.SOURCE_TYPE < 3: prices = dataloader.importData(const.SOURCE_TYPE, const.DATA_FILE) strategy.runStrategy(prices) if const.SOURCE_TYPE == 3: stocks = dataloader.importStockList(const.LIST_FILE) for stock in stocks: dataloader.downloadStockData(stock) if const.SOURCE_TYPE == 4: stocks = dataloader.importStockList(const.LIST_FILE) finalPool = Pool(100) with concurrent.futures.ProcessPoolExecutor( max_workers=const.MAX_PROCESS_NUM) as executor: trs = executor.map(processStrategy, stocks) for tr in trs: try:
resultPath = os.path.join(os.path.dirname(__file__), const.RESULT_PATH) plt.savefig(os.path.join(resultPath, stock['id'] + '.png'), dpi=150) plt.close(fig) return stock['symbol'] + ', ' + dt + ', ' + str( ps[-1]) + ', ' + active + ', ' + adesc + ', ' + bdesc if __name__ == "__main__": rwlogging.clearLog() plt.rcParams.update({'axes.labelsize': 10}) plt.rcParams.update({'xtick.labelsize': 8}) plt.rcParams.update({'ytick.labelsize': 8}) result = 'STOCK, DATE, PRICE, ACTIVE, POS A, POS B\n' stocks = dataloader.importVSignalList(const.VSIGNAL_FILE) for stock in stocks: if const.REFRESH_DATA: dataloader.downloadStockData(stock) prices = dataloader.importData(4, stock['file'], const.DATA_NUM * 2) if const.UPDATE_SINA: prices = dataloader.makeupStockFromSina(stock, prices) desc = runSignal(stock, prices) result += desc + '\n' log.info(result) resultPath = os.path.join(os.path.dirname(__file__), const.RESULT_PATH) files = open(os.path.join(resultPath, 'signal.csv'), 'w') files.write(result) files.close()
if opos == pos: desc = str(pos) else: desc = str(opos) + ' -> ' + str(pos) dt = datetime.datetime.now().strftime('%Y-%m-%d') return stock['symbol'] + ',' + dt + ',' + str(ps[-1]) + ',' + desc if __name__ == "__main__": rwlogging.clearLog() plt.rcParams.update({'axes.labelsize':10}) plt.rcParams.update({'xtick.labelsize':8}) plt.rcParams.update({'ytick.labelsize':8}) result = 'STOCK, DATE, PRICE, POSITION\n' stocks = dataloader.importSignalList(const.SIGNAL_FILE) for stock in stocks: if const.REFRESH_DATA: dataloader.downloadStockData(stock) prices = dataloader.importData(4, stock['file'], const.DATA_NUM * 2) if const.UPDATE_SINA: prices = dataloader.makeupStockFromSina(stock, prices) desc = runSignal(stock, prices) result += desc + '\n' log.info(result) resultPath = os.path.join(os.path.dirname(__file__), const.RESULT_PATH) files = open(os.path.join(resultPath, 'signal.csv'), 'w') files.write(result) files.close()
try: if const.REFRESH_DATA: dataloader.downloadStockData(stock) prices = dataloader.importData(4, stock['file']) const.currentSecId = stock['id'] tr = strategy.runStrategy(prices) return tr except: return None #finalPool.estimate(tr) #q.put(tr) if __name__ == "__main__": rwlogging.clearLog() if const.SOURCE_TYPE < 3: prices = dataloader.importData(const.SOURCE_TYPE, const.DATA_FILE) strategy.runStrategy(prices) if const.SOURCE_TYPE == 3: stocks = dataloader.importStockList(const.LIST_FILE) for stock in stocks: dataloader.downloadStockData(stock) if const.SOURCE_TYPE == 4: stocks = dataloader.importStockList(const.LIST_FILE) finalPool = Pool(100) with concurrent.futures.ProcessPoolExecutor(max_workers=const.MAX_PROCESS_NUM) as executor: trs = executor.map(processStrategy, stocks) for tr in trs: try: if tr: finalPool.estimate(tr)
def processStrategy(stock): prices = dataloader.importData(2, stock['file']) const.currentSecId = stock['id'] tr = strategy.runStrategy(prices) return tr
# -*- coding: utf-8 -*- import os import const, rwlogging, dataloader, strategy from pool import Pool from rwlogging import log path = os.path.dirname(__file__) if __name__ == "__main__": rwlogging.clearLog() if const.SOURCE_TYPE < 3: prices = dataloader.importData(const.SOURCE_TYPE, const.SOURCE_FILE) strategy.runStrategy(prices) if const.SOURCE_TYPE == 3: stocks = dataloader.importStockList(const.SOURCE_FILE) for stock in stocks: dataloader.downloadStockData(stock) if const.SOURCE_TYPE == 4: stocks = dataloader.importStockList(const.SOURCE_FILE) for stock in stocks: #dataloader.downloadStockDat prices = dataloader.importData(2, stock['file']) finalPool = Pool(const.POOL_SIZE) strategy.secId = stock['id'] pool = strategy.runStrategy(prices) finalPool.estimate(pool.getFirst())