不知道是不是刚更新的版本里新出现的,如果有读不到郑商所数据的,请找到rqdata文件,做出如下修改:
在vnpy.trader里的rqdata里,
class RqdataClient:
def to_rq_symbol(self, symbol: str, exchange: Exchange) -> str:
"""
CZCE product of RQData has symbol like "TA1905" while
vt symbol is "TA905.CZCE" so need to add "1" in symbol.
"""
# Equity
if exchange in [Exchange.SSE, Exchange.SZSE]:
if exchange == Exchange.SSE:
rq_symbol = f"{symbol}.XSHG"
else:
rq_symbol = f"{symbol}.XSHE"
# Futures and Options
elif exchange in [Exchange.SHFE, Exchange.CFFEX, Exchange.DCE, Exchange.DCE, Exchange.INE]
其中最后一行有两个DCE,把其中一个改成CZCE
问题找到了。
在vnpy.trader里的rqdata里,
class RqdataClient:
def to_rq_symbol(self, symbol: str, exchange: Exchange) -> str:
"""
CZCE product of RQData has symbol like "TA1905" while
vt symbol is "TA905.CZCE" so need to add "1" in symbol.
"""
# Equity
if exchange in [Exchange.SSE, Exchange.SZSE]:
if exchange == Exchange.SSE:
rq_symbol = f"{symbol}.XSHG"
else:
rq_symbol = f"{symbol}.XSHE"
# Futures and Options
elif exchange in [Exchange.SHFE, Exchange.CFFEX, Exchange.DCE, Exchange.DCE, Exchange.INE]
其中最后一行有两个DCE,把其中一个改成CZCE
刚发现更新版本后所有郑商所(CZCE)的数据都读取不了。根据@darksh0w 发的帖子,我发现必须要把所有郑商所期货的格式改成大商所的格式:
比如说,TA009.CZCE是读取不了的,必须改成ta2009.DCE;
就好像pta换成了在大商所交易。
我问了rqdata的人,他们说没有问题,最近也没有做相关修改。所以应该是vnpy更新后出现的问题了。
请问这个问题如何解决?
MA不是大商所,是郑商所的。
我也碰到这个问题了,所有郑商所的数据都读取不了。
我想问一下如果用vnpy连实盘是不是必须自己收集硬件信息然后上报?
期货公司都是要求系统采集这些信息吗?为什么东方汇金说采集不到相关信息?
请问你是哪家公司
我问了东方汇金和南华,他们并不是给appid申请表自己填入相关信息,而是你给他们一个appid,他们直接给一个账户让你做测试;然后系统自动收集像cpu硬盘等序列号信息。但是vnpy不能在测试中发送相关信息到他们的系统,而他们又不接受手动采集的信息。请问vnpy可以做相关修改吗?
南华期货的也是要求系统采集的
准备在东方汇金期货公司开一个实盘账号。但是他们需要程序自动上报cpu序列号硬盘序列号和bios序列号,而不是手动采集告诉他们。请问这个问题怎么解决?
我想找到有关怎样调用SpreadAlgoTemplate中interval的相关代码,请问在哪个文件中可以找到?
版本是2.1.1
密码应该没有错因为可以用他们的客户端登录
用他们的官方软件可以登录
我申请了一个直达的模拟账号,可是看不到资金的相关信息。
想请问一下vnpy能直接用直达账号吗?具体需要怎么操作?
最近ctp模拟交易的夜盘总是连接不上,日盘是好的,没有出现问题,有人知道是怎么回事吗
我用的同样的策略,同样的标的,同样的时间,但是在jupyter上和vnstation里回测的结果不一样,而且差别很大:
在vnstation里面:
而在jupyter里面:
请问这是怎么回事?
我的结束值不是0啊。这是我的设置:
setting = OptimizationSetting()
setting.set_target("return_drawdown_ratio")
setting.add_parameter("r1", 100, 110, 2)
engine.run_ga_optimization(setting)
在Jupyter做参数优化的时候出现问题:
2020-01-09 14:34:48.499169 逐日盯市盈亏计算完成
2020-01-09 14:34:48.500155 开始计算策略统计指标
gen nevals mean std min max
0 100 [7.74054611] [0.34501181] [7.19715305] [8.25334413]
ValueError Traceback (most recent call last)
<ipython-input-4-b458f6cb496e> in <module>
9 #setting.add_parameter("time_window", 5, 50, 2)
10
---> 11 engine.run_ga_optimization(setting)
c:\vnstudio\lib\site-packages\vnpy\app\cta_strategy\backtesting.py in run_ga_optimization(self, optimization_setting, population_size, ngen_size, output)
685 ngen,
686 stats,
--> 687 halloffame=hof
688 )
689
c:\vnstudio\lib\site-packages\deap\algorithms.py in eaMuPlusLambda(population, toolbox, mu, lambda, cxpb, mutpb, ngen, stats, halloffame, verbose)
314 for gen in range(1, ngen + 1):
315 # Vary the population
--> 316 offspring = varOr(population, toolbox, lambda, cxpb, mutpb)
317
318 # Evaluate the individuals with an invalid fitness
c:\vnstudio\lib\site-packages\deap\algorithms.py in varOr(population, toolbox, lambda_, cxpb, mutpb)
232 if op_choice < cxpb: # Apply crossover
233 ind1, ind2 = list(map(toolbox.clone, random.sample(population, 2)))
--> 234 ind1, ind2 = toolbox.mate(ind1, ind2)
235 del ind1.fitness.values
236 offspring.append(ind1)
c:\vnstudio\lib\site-packages\deap\tools\crossover.py in cxTwoPoint(ind1, ind2)
45 size = min(len(ind1), len(ind2))
46 cxpoint1 = random.randint(1, size)
---> 47 cxpoint2 = random.randint(1, size - 1)
48 if cxpoint2 >= cxpoint1:
49 cxpoint2 += 1
c:\vnstudio\lib\random.py in randint(self, a, b)
220 """
221
--> 222 return self.randrange(a, b+1)
223
224 def _randbelow(self, n, int=int, maxsize=1<<BPF, type=type,
c:\vnstudio\lib\random.py in randrange(self, start, stop, step, _int)
198 return istart + self._randbelow(width)
199 if step == 1:
--> 200 raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
201
202 # Non-unit step argument supplied.
ValueError: empty range for randrange() (1,1, 0)
请问这是什么问题?
我的仿真账号已经用了好几个月了,但是有次电脑死机以后就登录不上仿真账号了:
我把vnpy重新安装了一遍以后还是同样的问题。请问这是电脑问题还是账号问题?