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

MTF wrote:

对新手来说,推荐每轮on_bar回调顶部,先cancel_all撤掉之前的未成交委托,保证每一轮都是干净状态再下单即可

使用的是30分钟k线,在30分钟k线下面是首先cancel_all撤掉全部委托单再判断的,但是这1个多单与3个空单是在这30分钟内触发的,有什么更好的方法处理这个问题吗?

MTF wrote:

SimNow行情质量不稳定,不推荐用于录制数据了

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

description

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

description

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

Traceback (most recent call last):
File "C:\veighna_studio\lib\threading.py", line 1016, in _bootstrap_inner
self.run()
File "C:\veighna_studio\lib\threading.py", line 953, in run
self._target(self._args, **self._kwargs)
File "C:\veighna_studio\lib\site-packages\vnpy_ctabacktester\engine.py", line 177, in run_backtesting
engine.add_strategy(
File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\backtesting.py", line 144, in add_strategy
self.strategy = strategy_class(
File "C:\Users\78405\strategies\RBreakerStrategy.py", line 63, in init
self.trade_hour = TradeHours(symbol)
File "C:\Users\78405\Desktop\vnpy-3.6.0\vnpy\usertools\trade_hour.py", line 46, in init
self.init()
File "C:\Users\78405\Desktop\vnpy-3.6.0\vnpy\usertools\trade_hour.py", line 52, in init
self.listed_date = get_listed_date(self.symbol)
File "C:\Users\78405\Desktop\vnpy-3.6.0\vnpy\usertools\trade_hour.py", line 24, in get_listed_date
info = rq.instruments(symbol)
File "C:\veighna_studio\lib\site-packages\rqdatac\decorators.py", line 150, in wrap
return func(
args, kwargs)
File "C:\veighna_studio\lib\site-packages\rqdatac\services\basic.py", line 1411, in instruments
all_dict = _all_instruments_dict(market)
File "C:\veighna_studio\lib\site-packages\rqdatac\decorators.py", line 129, in wrapper
value = user_function(*args,
kwargs)
File "C:\veighna_studio\lib\site-packages\rqdatac\services\basic.py", line 1245, in _all_instruments_dict
ins = _all_cached_instruments_list(market)
File "C:\veighna_studio\lib\site-packages\rqdatac\decorators.py", line 129, in wrapper
value = user_function(args, **kwargs)
File "C:\veighna_studio\lib\site-packages\rqdatac\services\basic.py", line 1240, in _all_cached_instruments_list
return _all_instruments_list(market)
File "C:\veighna_studio\lib\site-packages\rqdatac\services\basic.py", line 1217, in _all_instruments_list
ins = [Instrument(i) for i in get_client().execute("all_instruments", market=market)]
File "C:\veighna_studio\lib\site-packages\rqdatac\decorators.py", line 67, in wrap
return func(
args, kwargs)
File "C:\veighna_studio\lib\site-packages\rqdatac\connection_pool.py", line 26, in execute
with self._get_connection() as conn:
File "C:\veighna_studio\lib\contextlib.py", line 135, in enter
return next(self.gen)
File "C:\veighna_studio\lib\site-packages\rqdatac\connection_pool.py", line 37, in _get_connection
conn = self._ensure_connection()
File "C:\veighna_studio\lib\site-packages\rqdatac\connection_pool.py", line 58, in _ensure_connection
return self._new_connection()
File "C:\veighna_studio\lib\site-packages\rqdatac\decorators.py", line 67, in wrap
return func(*args,
kwargs)
File "C:\veighna_studio\lib\site-packages\rqdatac\connection_pool.py", line 64, in _new_connection
return Connection(s, self._auth)
File "rqdatac\connection.py", line 56, in rqdatac.connection.Connection.init
File "rqdatac\connection.py", line 99, in rqdatac.connection.Connection._do_auth
File "rqdatac\connection.py", line 89, in rqdatac.connection.Connection._read_one_packet
rqdatac.share.errors.AuthenticationFailed: Authentication failed.

老师您好,没有开通rqdata数据权限,报错如上所示,在没开通rqdata数据权限的前提下,有办法把您的这个策略改成夜盘吗?望指导一下,万分感谢

守望长城2020-6-11-艾瑞巴蒂 wrote:

大佬真是高产啊, 想问一下, 为什么支持夜盘要花这么大功夫啊, 是为了24小时无人值守交易吗? 按我的理解, 每个新的交易日是从晚上9:00到第二天的下午3点, 如果手动在每天下午3点后关闭vnpy, 然后晚上9点的时候重新启动vnpy, 启动的时候手动初始化指定new day, 和today 就可以了

老师你好,如何手动初始化指定new day, 和today,方便说一下吗 ?

MTF wrote:

请截图看下?

description

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

使用TuShare数据服务,实盘初始化策略,默认initDays=10,例如11点钟重启后初始化,没有tick的数据,只能从TuShare拿到1分钟k线数据,能完成能初始化吗?

如下图所示,vnpy3.6中主界面成交栏无策略来源,在委托和活动界面均有策略来源,官方是否可以考虑增加一下吗?

description

如图所示,在vnpy3.6版本中,行情涨跌幅不变动,买一卖一的价格可以随行情变动,但是涨跌幅一直停留在-100.06%,尝试删除.vntrader也无解

description

Mac Mini M2安装vnpy3.6报错代码如下所示:

Last login: Fri Mar 31 14:17:44 on ttys000
apple@bogon ~ % brew install ta-lib
==> Fetching ta-lib
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/ta-lib-0.4.0.arm64_
Already downloaded: /Users/apple/Library/Caches/Homebrew/downloads/ce993e6b3293fa0016d8eb4d5ea501d62164efd53ed2e7a1a7db319587772844--ta-lib-0.4.0.arm64_ventura.bottle.1.tar.gz
fatal: not in a git directory
Error: Command failed with exit 128: git
apple@bogon ~ % python3 -m pip install numpy --index=https://pypi.doubanio.com/simple
python3 -m pip install ta-lib==0.4.24 --index=https://pypi.doubanio.com/simple
Looking in indexes: https://pypi.doubanio.com/simple
Requirement already satisfied: numpy in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (1.23.1)
Looking in indexes: https://pypi.doubanio.com/simple
Collecting ta-lib==0.4.24
  Using cached https://pypi.doubanio.com/packages/78/f5/59f1d7d0c43d3d96e93249ae9d5415b42591362bfcf2f4e50574ad063312/TA-Lib-0.4.24.tar.gz (269 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from ta-lib==0.4.24) (1.23.1)
Building wheels for collected packages: ta-lib
  Building wheel for ta-lib (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [28 lines of output]
      /private/var/folders/5n/jr5q1bz96ms2jlx6kfmfsgpm0000gn/T/pip-install-9n3bu8kq/ta-lib_931b35c883224de6b1ba5b410a3ff913/setup.py:77: UserWarning: Cannot find ta-lib library, installation may fail.
        warnings.warn('Cannot find ta-lib library, installation may fail.')
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-universal2-3.10
      creating build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/abstract.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_polars.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_abstract.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/deprecated.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/__init__.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/stream.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_pandas.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_data.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_func.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_stream.py -> build/lib.macosx-10.9-universal2-3.10/talib
      running build_ext
      building 'talib._ta_lib' extension
      creating build/temp.macosx-10.9-universal2-3.10
      creating build/temp.macosx-10.9-universal2-3.10/talib
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -arch x86_64 -g -I/usr/include -I/usr/local/include -I/opt/include -I/opt/local/include -I/opt/homebrew/include -I/opt/homebrew/opt/ta-lib/include -I/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy/core/include -I/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10 -c talib/_ta_lib.c -o build/temp.macosx-10.9-universal2-3.10/talib/_ta_lib.o
      talib/_ta_lib.c:682:10: fatal error: 'ta-lib/ta_defs.h' file not found
      #include "ta-lib/ta_defs.h"
               ^~~~~~~~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for ta-lib
  Running setup.py clean for ta-lib
Failed to build ta-lib
Installing collected packages: ta-lib
  Running setup.py install for ta-lib ... error
  error: subprocess-exited-with-error

  × Running setup.py install for ta-lib did not run successfully.
  │ exit code: 1
  ╰─> [28 lines of output]
      /private/var/folders/5n/jr5q1bz96ms2jlx6kfmfsgpm0000gn/T/pip-install-9n3bu8kq/ta-lib_931b35c883224de6b1ba5b410a3ff913/setup.py:77: UserWarning: Cannot find ta-lib library, installation may fail.
        warnings.warn('Cannot find ta-lib library, installation may fail.')
      running install
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-universal2-3.10
      creating build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/abstract.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_polars.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_abstract.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/deprecated.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/__init__.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/stream.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_pandas.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_data.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_func.py -> build/lib.macosx-10.9-universal2-3.10/talib
      copying talib/test_stream.py -> build/lib.macosx-10.9-universal2-3.10/talib
      running build_ext
      building 'talib._ta_lib' extension
      creating build/temp.macosx-10.9-universal2-3.10
      creating build/temp.macosx-10.9-universal2-3.10/talib
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -arch x86_64 -g -I/usr/include -I/usr/local/include -I/opt/include -I/opt/local/include -I/opt/homebrew/include -I/opt/homebrew/opt/ta-lib/include -I/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy/core/include -I/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10 -c talib/_ta_lib.c -o build/temp.macosx-10.9-universal2-3.10/talib/_ta_lib.o
      talib/_ta_lib.c:682:10: fatal error: 'ta-lib/ta_defs.h' file not found
      #include "ta-lib/ta_defs.h"
               ^~~~~~~~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> ta-lib

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
apple@bogon ~ %

使用的是全新的Mac Mini M2,参照如下官方教程一步一步操作的https://mp.weixin.qq.com/s/OB4TpVnipueFO-pbXyz_Rg

另外咨询一下,mac os系统官方集成版本的VeighNa Studio软件大概什么时候推出?

在vnpy3.6中使用taos数据库,通过csv导入数据时报错如下,具体怎么回事儿呢?

C:\Users\Administrator\Desktop\vnpy-3.6.0>python  run.py
找不到数据服务驱动vnpy_,使用默认的RQData数据服务
Traceback (most recent call last):
  File "C:\veighna_studio\lib\site-packages\vnpy_datamanager\ui\widget.py", line 226, in import_data
    start, end, count = self.engine.import_data_from_csv(
  File "C:\veighna_studio\lib\site-packages\vnpy_datamanager\engine.py", line 92, in import_data_from_csv
    self.database.save_bar_data(bars)
  File "C:\veighna_studio\lib\site-packages\vnpy_taos\taos_database.py", line 71, in save_bar_data
    self.cursor.execute(create_table_script)
  File "C:\veighna_studio\lib\site-packages\taos\cursor.py", line 127, in execute
    self._result = taos_query(self._connection._conn, stmt)
  File "C:\veighna_studio\lib\site-packages\taos\cinterface.py", line 300, in taos_query
    raise ProgrammingError(errstr, errno)
taos.error.ProgrammingError: [0x2600]: syntax error near "-2022-usd-fut_sgx_1m using s_bar(symbol, exchange, interval_, count_) tags('XINA50-2022-USD-FUT', 'SGX', '1m', '0')"

咨询一下,vnpy3.6目前支持的数据库性能排行榜是否如下图所示顺序呢?涛思taos数据库是否vnpy3.6已支持?

description

vnpy3.6回测报错,如下图所示
description

哦哦,明白了,再咨询一下,您建议用0或者核心数N/2赋值,这个0或者核心数N/2需要在哪里赋值呢?是下面代码里面直接赋值还是其他设置里面?

def run_bf_optimization(
    self,
    optimization_setting: OptimizationSetting,
    output: bool = True,
    max_workers: int = None
) -> list:
    """"""
    if not check_optimization_setting(optimization_setting):
        return

    evaluate_func: callable = wrap_evaluate(self, optimization_setting.target_name)
    results: list = run_bf_optimization(
        evaluate_func,
        optimization_setting,
        get_target_value,
        max_workers=max_workers,
        output=self.output
    )

    if output:
        for result in results:
            msg: str = f"参数:{result[0]}, 目标:{result[1]}"
            self.output(msg)

    return results

run_optimization = run_bf_optimization

def run_ga_optimization(
    self,
    optimization_setting: OptimizationSetting,
    output: bool = True,
    max_workers: int = None
) -> list:
    """"""
    if not check_optimization_setting(optimization_setting):
        return

    evaluate_func: callable = wrap_evaluate(self, optimization_setting.target_name)
    results: list = run_ga_optimization(
        evaluate_func,
        optimization_setting,
        get_target_value,
        max_workers=max_workers,
        output=self.output
    )

    if output:
        for result in results:
            msg: str = f"参数:{result[0]}, 目标:{result[1]}"
            self.output(msg)

    return results

VNPY3.6在vnpy_ctastrategy/vnpy_ctabacktester的CTA策略模块执行参数优化时添加了最大进程数量限制参数max_workers,请教一下,这个参数具体怎么设置? 然后设置最大可以是多少?最大线程数能超过63吗?

咨询一下自己发的帖子可以自己删除吗?有些没必要的想删除了

老师您好,把所有OMS业务数据(非行情)例如成交、委托订单转入到数据库database,然后通过database_manager实现查询历史成交、历史委托,利用保存的成交订单与借鉴vnpy已有的回测分析生成一个实盘交易绩效分析报表,不然仅仅通过log分析成交绩效会非常繁琐,vnpy_portfoliomanager又无法对外盘或者历史实盘成交订单进行绩效分析,您的这个功能好实用好实在啊,可以在GitHub中开一个分支下载不? 或者开一个帖子详细讲讲具体怎么实现的嘛,把好东西大家一起分享,把温暖传递下去

老师您好,可以分享一下database_manager.save_account_data这个函数的代码吗?

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

沪公网安备 31011502017034号

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