请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  数理科学 帖子:3365983 新帖:4

Py2下取成交量字典最大值结果异常

此人已认证发表于:9 月 14 日 18:53回复(1)

import numpy as np
from numpy import nan
from math import isnan
import math
import pandas as pd
from jqdata import jy
from jqdata import *
from jqdata import finance
import talib
import talib as tl

获取每种期货的主力合约\次主力合约

def get_3dominant_future(category):

#主力合约  
domain = get_dominant_future(category)  
log.info(category,'  domain = ',domain)  
#当月可交易的全部该品种合约列表  
contractlist = get_future_contracts(category)  
#log.info('  ',category,'  contractlist = ',contractlist)  
#简历某种期货各合约成交量字典  
volumedict = dict()  
for i in contractlist:  
    volumetemp = float(attribute_history(i, 3, '1d',['volume']).mean())  #2
    #if isnan(volumetemp):
        #return ['成交量小', '成交量小', '成交量小',0,0]   
    #if not isnan(volumetemp):
    volumedict[i] = volumetemp  
log.info('  主力合约是%s,volumedict = '%domain,volumedict)   
del volumedict[domain]
log.info('  剔除主力合约%s 后的volumedict = '%domain,volumedict)    
#次主力合约        
domain2 = max(volumedict, key=volumedict.get)
log.info(category,'  domain2 = ',domain2)  

2016-04-18 05:00:00 - INFO - JM domain = JM1609.XDCE

2016-04-18 05:00:00 - INFO - 主力合约是JM1609.XDCE,volumedict = {'JM1704.XDCE': nan, 'JM1609.XDCE': 953164.0, 'JM1703.XDCE': 0.0, 'JM1701.XDCE': 11966.0, 'JM1605.XDCE': 46560.666666666664, 'JM1606.XDCE': 0.0, 'JM1607.XDCE': 0.0, 'JM1612.XDCE': 0.0, 'JM1611.XDCE': 0.0, 'JM1610.XDCE': 1.3333333333333333, 'JM1608.XDCE': 0.0, 'JM1702.XDCE': 0.0}

2016-04-18 05:00:00 - INFO - 剔除主力合约JM1609.XDCE 后的volumedict = {'JM1704.XDCE': nan, 'JM1703.XDCE': 0.0, 'JM1701.XDCE': 11966.0, 'JM1605.XDCE': 46560.666666666664, 'JM1606.XDCE': 0.0, 'JM1607.XDCE': 0.0, 'JM1612.XDCE': 0.0, 'JM1611.XDCE': 0.0, 'JM1610.XDCE': 1.3333333333333333, 'JM1608.XDCE': 0.0, 'JM1702.XDCE': 0.0}

2016-04-18 05:00:00 - INFO - JM domain2 = JM1704.XDCE

问题:在聚宽python2下,回测时,domain = JM1704.XDCE;在研究环境下 domain = JM1605.XDCE 二个结果不一致,请问是怎么回事?

如volumedict = {'RU1611.XSGE': 350.6666666666667, 'RU1605.XSGE': 57966.666666666664, 'RU1608.XSGE': 51.333333333333336, 'RU1703.XSGE': 54.666666666666664, 'RU1704.XSGE': nan, 'RU1607.XSGE': 104.0, 'RU1701.XSGE': 45772.666666666664, 'RU1610.XSGE': 566.6666666666666, 'RU1606.XSGE': 84.0},则无论回测还是研究环境下都是domain=RU1605.XSGE,结果是正常的。

全部回复

0/140

量化课程

    移动端课程