https://github.com/vnpy/vnpy/blob/master/examples/spread_backtesting/backtesting.ipynb
我按照上面的步骤,
rom vnpy_spreadtrading.backtesting import BacktestingEngine
from vnpy_spreadtrading.strategies.statistical_arbitrage_strategy import (StatisticalArbitrageStrategy)
from vnpy_spreadtrading.base import LegData, SpreadData
from datetime import datetime
spread = SpreadData(
name="IF-Spread",
legs=[LegData("IF1911.CFFEX"), LegData("IF1912.CFFEX")],
price_multipliers={"IF1911.CFFEX": 1, "IF1912.CFFEX": -1},
trading_multipliers={"IF1911.CFFEX": 1, "IF1912.CFFEX": -1},
active_symbol="IF1911.CFFEX",
inverse_contracts={"IF1911.CFFEX": False, "IF1912.CFFEX": False},
min_volume=1
)
...
其中 IF1911.CFFEX和IF1912.CFFEX提前用data_manager.import_data_from_csv()把本地csv数据导入到.vntrader下面的database.db中,数据为分钟频率的open, high, low, close, volume, open_interest.
但 engine.load_data() 后反馈“历史数据加载完成,数据量:0”。
请问如何合成价差数据?或者说怎么做才能用命令回测spread_trading, 多谢.
在R的代码如下
Sys.setenv(RETICULATE_PYTHON="C:\vnstudio\python.exe");
library("reticulate");
vnpy=reticulate::import("vnpy",as=NULL,convert=TRUE,delay_load=FALSE);
init_cli_trading=vnpy$app$script_trader$init_cli_trading;
CtpGateway=vnpy$gateway$ctp$CtpGateway;
engine=init_cli_trading(list(CtpGateway));
setting=list(
"用户名"='xxxx',
"密码"='xxxx',
"经纪商代码"='9999',
"交易服务器"='tcp://180.168.146.187:10101',
"行情服务器"='tcp://180.168.146.187:10111',
"产品名称"='simnow_client_test',
"授权编码"='0000000000000000',
"产品信息"=''
)
engine$connect_gateway(setting,"CTP");
报错为:
Error in py_call_impl(callable,dots$args,dots$keywords): UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte
在R中把encoding改为 UTF-8没有帮助
请高手指惑,谢谢。