VN Trader 2.6界面的数字如何改成千位分隔符加两位数字的格式?实在看起来不习惯。
例如:
静态权益:1,020,663.49,账户权益:1,033,572.23,账户权益:1,033,572.23
今日累计盈亏:12,908.74,浮盈:0.00,持仓盈亏:0.00,本交易日内平仓盈亏:14,440.00
我只知道在vnpy\trader\ui\mainwindow\MainWindow.init_dock() 里面改,水平有限,还没学会怎么改
本地数据库删了以后,使用IF2112可以正常下载,但是 turnover列和open_interest列为空,是什么原因呢?
使用tushare数据源,代码如果写IF2112.CFX,则提示下载0条,
如果代码写IF2112,则抛出异常。
我用pro.fut_daily是可以正常下载的。
请问如何解决?
Traceback (most recent call last):
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 3144, in execute_sql
cursor.execute(sql, params or ())
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\cursors.py", line 148, in execute
result = self._query(query)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\cursors.py", line 310, in _query
conn.query(q)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\connections.py", line 548, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\connections.py", line 775, in _read_query_result
result.read()
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\connections.py", line 1156, in read
first_packet = self.connection._read_packet()
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\connections.py", line 725, in _read_packet
packet.raise_for_error()
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1054, "Unknown column 'turnover' in 'field list'")
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\vnpy_datamanager\ui\widget.py", line 606, in download
count = self.engine.download_bar_data(symbol, exchange, interval, start)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\vnpy_datamanager\engine.py", line 215, in download_bar_data
self.database.save_bar_data(data)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\vnpy_mysql\mysql_database.py", line 164, in save_bar_data
DbBarData.insert_many(c).on_conflict_replace().execute()
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 1907, in inner
return method(self, database, *args, **kwargs)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 1978, in execute
return self._execute(database)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 2745, in _execute
return super(Insert, self)._execute(database)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 2474, in _execute
cursor = database.execute(self)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 3157, in execute
return self.execute_sql(sql, params, commit=commit)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 3151, in execute_sql
self.commit()
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 2917, in __exit__
reraise(new_type, new_type(exc_value, *exc_args), traceback)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 190, in reraise
raise value.with_traceback(tb)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\peewee.py", line 3144, in execute_sql
cursor.execute(sql, params or ())
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\cursors.py", line 148, in execute
result = self._query(query)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\cursors.py", line 310, in _query
conn.query(q)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\connections.py", line 548, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\connections.py", line 775, in _read_query_result
result.read()
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\connections.py", line 1156, in read
first_packet = self.connection._read_packet()
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\connections.py", line 725, in _read_packet
packet.raise_for_error()
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Anaconda3\envs\vnpy_envs\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
peewee.OperationalError: (1054, "Unknown column 'turnover' in 'field list'")
找到了,运行以后全局配置
如题,脚本运行,请问如何加载vnpy_tqsdk和vnpy_tushare?
能否同时加载两个数据服务?
移除对RpcService模块的加载后,可以正常运行
2.6不能运行,现在2.5也不能运行,错误代码如下,请问如何解决?
Traceback (most recent call last):
File "D:/Tony/Documents/yunpan/invest/2021/Quant/VNPY_code/run.py", line 7, in <module>
from vnpy.app.cta_strategy import CtaStrategyApp
File "D:\Anaconda3\envs\vnpy\lib\site-packages\vnpy\app\cta_strategy\__init__.py", line 3, in <module>
import vnpy_ctastrategy
File "D:\Anaconda3\envs\vnpy\lib\site-packages\vnpy_ctastrategy\__init__.py", line 33, in <module>
from .engine import CtaEngine
File "D:\Anaconda3\envs\vnpy\lib\site-packages\vnpy_ctastrategy\engine.py", line 41, in <module>
from vnpy.trader.database import BaseDatabase, get_database
ImportError: cannot import name 'get_database' from 'vnpy.trader.database' (D:\Anaconda3\envs\vnpy\lib\site-packages\vnpy\trader\database.py)
Process finished with exit code 1
脚本运行vnpy,报错如下,另外,请问如何加载vnpy_tqsdk和vnpy_tushare?
Faile to import cython option pricing model, please rebuild with cython in cmd.
找不到数据服务驱动vnpy_,使用默认的RQData数据服务
Traceback (most recent call last):
File "D:/Tony/Documents/yunpan/invest/2021/Quant/VNPY_code/run.py", line 54, in <module>
main()
File "D:/Tony/Documents/yunpan/invest/2021/Quant/VNPY_code/run.py", line 41, in main
main_engine.add_app(RpcServiceApp)
File "D:\Anaconda3\envs\vnpy\lib\site-packages\vnpy\trader\engine.py", line 99, in add_app
engine = self.add_engine(app.engine_class)
File "D:\Anaconda3\envs\vnpy\lib\site-packages\vnpy\trader\engine.py", line 74, in add_engine
engine = engine_class(self, self.event_engine)
File "D:\Anaconda3\envs\vnpy\lib\site-packages\vnpy\app\rpc_service\engine.py", line 30, in __init__
self.init_server()
File "D:\Anaconda3\envs\vnpy\lib\site-packages\vnpy\app\rpc_service\engine.py", line 40, in init_server
self.server.register(self.main_engine.send_orders)
AttributeError: 'MainEngine' object has no attribute 'send_orders'
和我一样的问题,可以跳转。
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
from vnpy_datamanager import DataManagerApp
from vnpy_riskmanager import RiskManagerApp
明白了,谢谢。用了sys.model重新指定了模块,实际执行的是下面的语句:
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
from vnpy_datamanager import DataManagerApp
from vnpy_riskmanager import RiskManagerApp
Pycharm,脚本运行vnpy,run.py中,如下四句代码均显示红色下划线,ctrl+b(goto Declaration or Usage)也没找到对应的名字,main_engine.add_app能正常运行,在主程序中,也能正常使用,那这四个app是在哪导入的呢?
from vnpy.app.cta_strategy import CtaStrategyApp
from vnpy.app.cta_backtester import CtaBacktesterApp
from vnpy.app.data_manager import DataManagerApp
from vnpy.app.risk_manager import RiskManagerApp
main_engine.add_app(CtaStrategyApp)
main_engine.add_app(CtaBacktesterApp)
main_engine.add_app(RiskManagerApp)
main_engine.add_app(DataManagerApp)
xiaohe wrote:
可以模仿no_ui脚本写一下https://github.com/vnpy/vnpy/blob/master/examples/no_ui/run.py
其他模块都已经能加载,不知道算法交易的模块名称。
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy.gateway.ctp import CtpGateway
from vnpy.app.cta_strategy import CtaStrategyApp
from vnpy.app.cta_backtester import CtaBacktesterApp
from vnpy.app.data_manager import DataManagerApp
from vnpy.app.option_master import OptionMasterApp
from vnpy.app.market_radar import MarketRadarApp
from vnpy.app.data_recorder import DataRecorderApp
from vnpy.app.risk_manager import RiskManagerApp
from vnpy.app.rpc_service import RpcServiceApp
from vnpy.gateway.rpc import RpcGateway
from vnpy.app.chart_wizard import ChartWizardApp
from vnpy.app.portfolio_manager import PortfolioManagerApp
def main():
"""Start VN Trader"""
qapp = create_qapp()
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(CtpGateway)
main_engine.add_app(CtaStrategyApp)
main_engine.add_app(CtaBacktesterApp)
main_engine.add_app(DataManagerApp)
main_engine.add_app(OptionMasterApp)
main_engine.add_app(MarketRadarApp)
main_engine.add_app(DataRecorderApp)
main_engine.add_app(RiskManagerApp)
main_engine.add_app(RpcServiceApp)
main_engine.add_gateway(RpcGateway)
main_engine.add_app(ChartWizardApp)
main_engine.add_app(PortfolioManagerApp)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
qapp.exec()
if __name__ == "__main__":
main()
xiaohe wrote:
xtp、uft
xtp只有A股市场的ETF期权,没有中金所的金融期权,uft发了申请还没回复,好像天勤支持中金所的股指期权。