|
本帖最后由 星空 于 2017-8-16 15:10 编辑
# encoding: UTF-8
"""loadcsv.py
"""
from vnpy.trader.app.ctaStrategy.ctaBase import MINUTE_DB_NAME
from vnpy.trader.app.ctaStrategy.ctaHistoryData import loadMcCsv
if __name__ == '__main__':
loadMcCsv('IF0000_1min.csv', MINUTE_DB_NAME, 'IF0000')
---------------------------------------------
ctaHistoryData.py
....
def loadMcCsv(fileName, dbName, symbol):
"""将Multicharts导出的csv格式的历史数据插入到Mongo数据库中"""
import csv
start = time()
print u'开始读取CSV文件%s中的数据插入到%s的%s中' %(fileName, dbName, symbol)
# 锁定集合,并创建索引
host, port, logging = loadMongoSetting()
client = pymongo.MongoClient(host, port)
collection = client[dbName][symbol]
collection.ensure_index([('datetime', pymongo.ASCENDING)], unique=True)
# 读取数据和插入到数据库
reader = csv.DictReader(file(fileName, 'r'))
for d in reader:
bar = CtaBarData()
bar.vtSymbol = symbol
bar.symbol = symbol
bar.open = float(d['Open'])
bar.high = float(d['High'])
bar.low = float(d['Low'])
bar.close = float(d['Close'])
bar.date = datetime.strptime(d['Date'], '%Y-%m-%d').strftime('%Y%m%d')
bar.time = d['Time']
bar.datetime = datetime.strptime(bar.date + ' ' + bar.time, '%Y%m%d %H:%M:%S')
bar.volume = d['TotalVolume']
flt = {'datetime': bar.datetime}
collection.update_one(flt, {'$set':bar.__dict__}, upsert=True)
print bar.date, bar.time
print u'插入完毕,耗时:%s' % (time()-start)
.....
开始读取CSV文件IF0000_1min.csv中的数据插入到VnTrader_1Min_Db的IF0000中
Traceback (most recent call last):
File "C:\Anaconda2\Lib\site-packages\vnpy-1.6.2b0-py2.7.egg\vnpy\examples\CtaBacktesting\loadCsv.py", line 12, in <module>
loadMcCsv('IF0000_1min.csv', MINUTE_DB_NAME, 'IF0000')
File "C:\Anaconda2\lib\site-packages\vnpy-1.6.2b0-py2.7.egg\vnpy\trader\app\ctaStrategy\ctaHistoryData.py", line 378, in loadMcCsv
reader = csv.DictReader(file(fileName, 'r'))
IOError: [Errno 2] No such file or directory: 'IF0000_1min.csv'
运行后出现图片中的错误,请前辈指点下哪里的问题
|
-
|