VeighNa量化社区
你的开源社区量化交易平台
ranjianlin's Avatar
Member
离线
244 帖子
声望: 0

StopOrder(vt_symbol='pp2309.DCE', direction=<Direction.LONG: '多'>, offset=<Offset.CLOSE: '平'>, price=7429.0, volume=1.0, stop_orderid='STOP.1', strategy_name='5', datetime=datetime.datetime(2023, 8, 7, 11, 8, 2, 204781, tzinfo=zoneinfo.ZoneInfo(key='Asia/Shanghai')), lock=False, net=False, vt_orderids=[], status=<StopOrderStatus.WAITING: '等待中'>)

停止单格式如上所示,保存到json时报错如下所示,咨询一下有什么好的方法把停止单保存到字典,开盘后再发出来吗?

Traceback (most recent call last):
  File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\engine.py", line 887, in stop_all_strategies
    self.stop_strategy(strategy_name)
  File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\engine.py", line 738, in stop_strategy
    self.sync_strategy_data(strategy)
  File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\engine.py", line 842, in sync_strategy_data
    save_json(self.data_filename, self.strategy_data)
  File "C:\Users\784050800_1623449582\Desktop\vnpy-3.7.0\vnpy\trader\utility.py", line 118, in save_json
    json.dump(
  File "C:\veighna_studio\lib\json\__init__.py", line 179, in dump
    for chunk in iterable:
  File "C:\veighna_studio\lib\json\encoder.py", line 431, in _iterencode
    yield from _iterencode_dict(o, _current_indent_level)
  File "C:\veighna_studio\lib\json\encoder.py", line 405, in _iterencode_dict
    yield from chunks
  File "C:\veighna_studio\lib\json\encoder.py", line 405, in _iterencode_dict
    yield from chunks
  File "C:\veighna_studio\lib\json\encoder.py", line 325, in _iterencode_list
    yield from chunks
  File "C:\veighna_studio\lib\json\encoder.py", line 438, in _iterencode
    o = _default(o)
  File "C:\veighna_studio\lib\json\encoder.py", line 179, in default
   raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type StopOrder is not JSON serializable
        if not (bar.datetime.minute + 1) % self.window:
            self.on_window_bar(self.window_bar)
            self.window_bar = None

1.官方BarGenerator合成30分钟分钟k线代码如上所示,,,观察发现郑州商品交易所夜盘不推送最后59分钟k线,而是次日9点钟开盘前推送进来,但是次日9点钟开盘前的k线数据自己已经全部过滤掉了,那么BarGenerator合成郑州交易所夜盘最后30分钟的k线是否就不存在了呢 ?

2. 是否一旦缺失任意一个第59分钟的k线,自定义的30分钟k线就无法合成了吗? 这种情况如何处理好?

咨询一下,1个策略10个品种,是在CTA策略里不同的实例化效率高?还是直接把py策略复制10份,然后直接加载策略效率高呢? 推荐那种方式?

非交易时间的数据数据过滤,是在引擎里面的process_tick_even过滤好呢? 还是在Bargenerator里面过滤效率更高?更建议在哪里过滤?

如下图所示,策略on_start里面发出的停止单没在CTA策略本地停止单界面显示,在on_start里面也写了self.put_event()刷新的,怎么可以实现在CTA策略本地停止单界面显示呢?print显示,实际订单已发出,只是界面未显示。实测只有在on_tick , on_bar里面发出的订单才会显示在CTA策略本地停止单界面。

description

郑州CZCE交易所使用CTP接口接收的推送数据,print发现没有14:59与22:59数据推送的,上海SHFE,大连DCE交易所均能收到14:59与22:59数据推送,大家有遇到类似的情况吗?

vnpy3.7版本使用dolphindb录制1分钟k线数据的报错代码如下所示:

Traceback (most recent call last): File "C:\veighna_studio\lib\site-packages\vnpy_datarecorder\ui\widget.py", line 157, in process_exception_event raise exc_info[1].with_traceback(exc_info[2]) File "C:\veighna_studio\lib\site-packages\vnpy_datarecorder\engine.py", line 117, in run self.database.save_bar_data(data, stream=True) File "C:\veighna_studio\lib\site-packages\vnpy_dolphindb\dolphindb_database.py", line 94, in save_bar_data overview_table = self.session.loadTable(tableName="baroverview", dbPath=self.db_path) File "C:\veighna_studio\lib\site-packages\dolphindb\session.py", line 758, in loadTable return Table(data=tbName, s=self, isMaterialized=True) File "C:\veighna_studio\lib\site-packages\dolphindb\table.py", line 157, in __init__ self._init_schema() File "C:\veighna_studio\lib\site-packages\dolphindb\table.py", line 339, in _init_schema schema = self.__session.run("schema(%s)" % self.__tableName)  # type: dict File "C:\veighna_studio\lib\site-packages\dolphindb\session.py", line 453, in run return self.cpp.run(script, *args, **kwargs) RuntimeError: <Exception> in run: Received invalid header: _

例如open_widget(CtaManager, "CtaStrategy")可以打开CtaManager页面,通过那个函数可以跳转到mainwindow里面的 account_widget, account_dock这个dock呢?恳请指点一下,万分感激。


1.如下图所示,使用ctp录制数据,盘前7:37这根k线是校验数据吗?我一般是8:45启动客户端,应该这是8:45之后收到的。 2.早盘8:59这个k线是集合竞价产生的1分钟k线吗? 一般集合竞价这根1分钟k线如何处置呢? 是直接抛弃还是合并进9点钟的1分钟k线里面?

description
description

description

如图所示,vnpy3.7使用市价单开仓总是被撤销,使用限价单就可以开仓,郑商所和大商所好像支持市价单,原因是?

查看了一下backtesting文件,根据限价单和停止单撮合成交规则,发现CTA回测不论使用停止单或者限价单开仓平仓,应该不存在滑点,这样理解对吗?【Elite量化策略实验室】RUMI策略 - 1文章里面测试时,为什么要使用1个滑点呢?

example里面的海龟策略开仓使用的停止单,测试时发现均存在很大的滑点,如果使用限价单的话,自己能想到是在on_bar1分钟k线里面开仓,除此之外还有更好的方法在开仓时使用限价单吗?

自己生成了120分钟自定义k线,咨询一下,使用120分钟k线与直接使用2小时k线那种方式的效率更高?

使用vnpy3.7使用dolphin数据库报错如下


C:\Users\Administrator\Desktop\vnpy-3.7.0>python  run.py
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\vnpy-3.7.0\run.py", line 101, in <module>
    main()
  File "C:\Users\Administrator\Desktop\vnpy-3.7.0\run.py", line 76, in main
    main_engine.add_app(CtaStrategyApp)
  File "C:\Users\Administrator\Desktop\vnpy-3.7.0\vnpy\trader\engine.py", line 102, in add_app
    engine: BaseEngine = self.add_engine(app.engine_class)
  File "C:\Users\Administrator\Desktop\vnpy-3.7.0\vnpy\trader\engine.py", line 73, in add_engine
    engine: BaseEngine = engine_class(self, self.event_engine)
  File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\engine.py", line 97, in __init__
    self.database: BaseDatabase = get_database()
  File "C:\Users\Administrator\Desktop\vnpy-3.7.0\vnpy\trader\database.py", line 158, in get_database
    database = module.Database()
  File "C:\veighna_studio\lib\site-packages\vnpy_dolphindb\dolphindb_database.py", line 47, in __init__
    self.session.run(CREATE_DATABASE_SCRIPT)
  File "C:\veighna_studio\lib\site-packages\dolphindb\session.py", line 453, in run
    return self.cpp.run(script, *args, **kwargs)
RuntimeError: <Exception> in run: Server response: 'db = database(dataPath, VALUE, 2000.01M .. 2030.12M, , "TSDB") => Usage: database(directory, [partitionType], [partitionScheme], [locations], [engine='OLAP'], [atomic='TRANS']).engine must be 'OLAP'.' script: '
dataPath = "dfs://vnpy"
db = database(dataPath, VALUE, 2000.01M..2030.12M, engine=`TSDB)

请教一下,通过收益率标准差查证是否过拟合的标准是百分之多少?如下图所示,这是Elite量化策略实验室使用RUMI策略在al99.SHFE(铝)上面的回测结果,这个收益率标准差1.85%是否存在过拟合?

description

description

创建策略实例之后,编辑某个策略实例的参数,再点击启动,修改后的参数是实时生效吗? 是否需要重新启动run.py?

description

description

如上图所示,天勤IF主连合约为KQ.m@CFFEX.IF,在vnpy数据下载里面,代码规则如何拼写呢?

description

如上图所示,Datarecorder行情记录在国内非交易时间无法录制TA309.CZCE与rb2310.SHFE交易所的模拟行情,但是,DCE交易所的m2309合约却可以正常录入simnow模拟数据到数据库,这是怎么一回事儿呢?vnpy3.7版本的Datarecorder行情记录模块是否具有自动判断国内期货品种时间的功能?例如非交易时间就直接拒绝录入数据。

description

如上图所示,策略在10分钟内同时开了1个多单与3个空单的本地停止单,10分钟内均已触发,但是此时未满足策略平仓条件,图片显示持有pos=-2,如果策略按照pos=-2来平仓,那么剩下的1个多单与1个空单该如何处理呢?如何规避这类情况呢?

vnpy同一品种涨跌幅与文华财经、通达信、博易大师不一样,具体是什么原因造成的呢?

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】