save demostrategy data in backtesting
This commit is contained in:
parent
94399f2250
commit
e5158b096b
@ -384,12 +384,22 @@ class BacktestingEngine(object):
|
||||
values = ''
|
||||
|
||||
print u'共{0}条交易记录.'.format(len(self.listTrade))
|
||||
|
||||
if len(self.listTrade) == 0:
|
||||
return
|
||||
|
||||
for tradeItem in self.listTrade:
|
||||
|
||||
if len(values) > 0:
|
||||
values = values + ','
|
||||
|
||||
values = values + '(\'{0}\',\'{1}\',{2},{3},{4},{5},{6},{7},\'{8}\')'.format(
|
||||
if tradeItem['OffsetFlag'] == '0':
|
||||
amount = 0-float(tradeItem['Price'])*int(tradeItem['Volume'])
|
||||
else:
|
||||
amount = float(tradeItem['Price'])*int(tradeItem['Volume'])
|
||||
|
||||
|
||||
values = values + '(\'{0}\',\'{1}\',{2},{3},{4},{5},{6},{7},\'{8}\',{9})'.format(
|
||||
self.Id,
|
||||
tradeItem['InstrumentID'],
|
||||
tradeItem['OrderRef'],
|
||||
@ -398,7 +408,7 @@ class BacktestingEngine(object):
|
||||
tradeItem['OffsetFlag'],
|
||||
tradeItem['Price'],
|
||||
tradeItem['Volume'],
|
||||
tradeItem['TradeTime'].strftime('%Y-%m-%d %H:%M:%S'))
|
||||
tradeItem['TradeTime'].strftime('%Y-%m-%d %H:%M:%S'),amount)
|
||||
|
||||
cur = self.__mysqlConnection.cursor(MySQLdb.cursors.DictCursor)
|
||||
|
||||
|
@ -8,7 +8,7 @@ import decimal
|
||||
def main():
|
||||
"""回测程序主函数"""
|
||||
# symbol = 'IF1506'
|
||||
symbol = 'a'
|
||||
symbol = 'ag'
|
||||
|
||||
# 创建回测引擎
|
||||
be = BacktestingEngine()
|
||||
@ -22,14 +22,14 @@ def main():
|
||||
be.connectMysql()
|
||||
# be.loadMongoDataHistory(symbol, datetime(2015,5,1), datetime.today())
|
||||
# be.loadMongoDataHistory(symbol, datetime(2012,1,9), datetime(2012,1,14))
|
||||
be.loadMysqlDataHistory(symbol, datetime(2012,1,9), datetime(2012,1,14))
|
||||
be.loadMysqlDataHistory(symbol, datetime(2012,6,9), datetime(2012,6,20))
|
||||
|
||||
# 创建策略对象
|
||||
setting = {}
|
||||
setting['fastAlpha'] = 0.2
|
||||
setting['slowAlpha'] = 0.05
|
||||
# setting['startDate'] = datetime(year=2015, month=5, day=20)
|
||||
setting['startDate'] = datetime(year=2012, month=1, day=9)
|
||||
setting['startDate'] = datetime(year=2012, month=6, day=9)
|
||||
|
||||
se.createStrategy(u'EMA演示策略', symbol, SimpleEmaStrategy, setting)
|
||||
|
||||
|
@ -347,6 +347,8 @@ class StrategyEngine(object):
|
||||
# cx = cur.fetchall()
|
||||
fetch_counts = 0
|
||||
|
||||
cx = None
|
||||
|
||||
fetch_size = 1000
|
||||
|
||||
while True:
|
||||
@ -355,8 +357,6 @@ class StrategyEngine(object):
|
||||
if not results:
|
||||
break
|
||||
|
||||
|
||||
|
||||
if fetch_counts == 0:
|
||||
cx = results
|
||||
else:
|
||||
@ -421,6 +421,9 @@ class StrategyEngine(object):
|
||||
|
||||
print u'共{0}条Bar记录.'.format(len(barList))
|
||||
|
||||
if len(barList) == 0:
|
||||
return
|
||||
|
||||
steps = 0
|
||||
|
||||
for bar in barList:
|
||||
@ -478,6 +481,9 @@ class StrategyEngine(object):
|
||||
|
||||
print u'共{0}条EMA记录.'.format(len(emaList))
|
||||
|
||||
if len(emaList) == 0:
|
||||
return
|
||||
|
||||
steps = 0
|
||||
|
||||
for ema in emaList:
|
||||
|
Loading…
Reference in New Issue
Block a user