导致回测非常不准 因为有很多没有交易量的数据 k线都是完全一样的
我这里用的是美国西部时间, 按道理讲 2021-09-16 13:00:00-00:00 应该是09-16那天最后一根k线。 但是这里一直找到了盘后交易都收盘的数据。 而且ib_gate里已经默认使用了只用常规交易时间段的数据 (倒数第三个参数)
self.client.reqHistoricalData(
self.reqid,
ib_contract,
end_str,
duration,
bar_size,
bar_type,
0,
1,
False,
[]
)
合约手数
具体的order 下单数量不是在on_bar里已经写好了么?为什么这里还好传送一个size呢? 求解
btengine.set_parameters(
vt_symbol=vt_symbol,
interval="1m",
start=test_start,
end=test_end,
rate = 0,
slippage=slippage,
size=1,
pricetick=pricetick,
capital=capital,
)
这样比较好分析策略失败的原因
而且里面的high low值都为0.
这一部分没怎么看懂 请教一下 这是期望看到的么?
另外 在BacktestingEngine里
看到这个load_bar并没有做任何事情啊! 他不是应该调用call_back函数么?
def load_bar(
self,
vt_symbol: str,
days: int,
interval: Interval,
callback: Callable,
use_database: bool
):
""""""
self.days = days
self.callback = callback
望指教 谢谢!
而且TWS里没有任何成交记录
ModuleNotFoundError: No module named 'vnpy.app.algo_trading.algos'
import os, sys
sys.path.insert(0, ".")
sys.path.insert(0, os.path.join("..", "vnpy"))
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
# from vnpy.ctp import CtpGateway
# from vnpy.ctptest import CtptestGateway
from vnpy.gateway.ib import IbGateway
# from vnpy.gateway.tiger import TigerGateway
# from vnpy.gateway.tap import TapGateway
# from vnpy.gateway.da import DaGateway
# from howtrader.app.cta_strategy import CtaStrategyApp
# from howtrader.app.data_manager import DataManagerApp
# from howtrader.app.data_recorder import DataRecorderApp
# from howtrader.app.algo_trading import AlgoTradingApp
# from howtrader.app.cta_backtester import CtaBacktesterApp
# from howtrader.app.risk_manager import RiskManagerApp
# from howtrader.app.spread_trading import SpreadTradingApp
from vnpy.app.cta_strategy import CtaStrategyApp
from vnpy.app.cta_backtester import CtaBacktesterApp
from vnpy.app.spread_trading import SpreadTradingApp
from vnpy.app.algo_trading import AlgoTradingApp
# from vnpy.app.option_master import OptionMasterApp
from vnpy.app.portfolio_strategy import PortfolioStrategyApp
from vnpy.app.script_trader import ScriptTraderApp
# from vnpy.app.market_radar import MarketRadarApp
# from vnpy.chartwizard import ChartWizardApp
# from vnpy.app.rpc_service import RpcServiceApp
# from vnpy.app.excel_rtd import ExcelRtdApp
from vnpy.app.data_manager import DataManagerApp
from vnpy.app.data_recorder import DataRecorderApp
from vnpy.app.risk_manager import RiskManagerApp
from vnpy.app.spread_trading import SpreadTradingApp
from vnpy.app.web_trader import WebTraderApp
from vnpy.app.portfolio_manager import PortfolioManagerApp
from vnpy.app.paper_account import PaperAccountApp
def main():
""""""
qapp = create_qapp()
qapp = create_qapp()
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(IbGateway)
main_engine.add_app(CtaStrategyApp)
main_engine.add_app(CtaBacktesterApp)
main_engine.add_app(DataManagerApp)
main_engine.add_app(AlgoTradingApp)
main_engine.add_app(DataRecorderApp)
main_engine.add_app(RiskManagerApp)
main_engine.add_app(SpreadTradingApp)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
# main_engine.add_gateway(CtptestGateway)
# main_engine.add_gateway(MiniGateway)
# main_engine.add_gateway(MinitestGateway)
# main_engine.add_gateway(FemasGateway)
# main_engine.add_gateway(SoptGateway)
# main_engine.add_gateway(SopttestGateway)
# main_engine.add_gateway(SecGateway)
# main_engine.add_gateway(UftGateway)
# main_engine.add_gateway(EsunnyGateway)
# main_engine.add_gateway(HsoptionGateway)
# main_engine.add_gateway(XtpGateway)
# main_engine.add_gateway(ToraStockGateway)
# main_engine.add_gateway(ToraOptionGateway)
# main_engine.add_gateway(OesGateway)
# main_engine.add_gateway(ComstarGateway)
# main_engine.add_gateway(FutuGateway)
# main_engine.add_gateway(IbGateway)
# main_engine.add_gateway(TigerGateway)
# main_engine.add_gateway(TapGateway)
# main_engine.add_gateway(DaGateway)
# main_engine.add_app(CtaStrategyApp)
# main_engine.add_app(CtaBacktesterApp)
# main_engine.add_app(SpreadTradingApp)
# main_engine.add_app(AlgoTradingApp)
# main_engine.add_app(OptionMasterApp)
# main_engine.add_app(PortfolioStrategyApp)
# main_engine.add_app(ScriptTraderApp)
# main_engine.add_app(MarketRadarApp)
# main_engine.add_app(ChartWizardApp)
# main_engine.add_app(RpcServiceApp)
# main_engine.add_app(ExcelRtdApp)
# main_engine.add_app(DataManagerApp)
# main_engine.add_app(DataRecorderApp)
# main_engine.add_app(RiskManagerApp)
# main_engine.add_app(WebTraderApp)
# main_engine.add_app(PortfolioManagerApp)
# main_engine.add_app(PaperAccountApp)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
qapp.exec()
if __name__ == "__main__":
main()
回测的时候 发现最大回测都百分之负两百了,最后居然还盈利了。这早爆仓了吧。感觉不太合理
发现new_bar 函数调用这个self.update_daily_close(bar.close_price)了 能不能自己指定interval呢?
2019-10-19 10:39:37.836007 开始加载历史数据
2019-10-19 10:39:38.160493 加载进度:########## [100%]
2019-10-19 10:39:38.160539 历史数据加载完成,数据量:2880
2019-10-19 10:39:38.196349 策略初始化完成
2019-10-19 10:39:38.196404 开始回放历史数据
2019-10-19 10:39:38.196462 历史数据回放结束
2019-10-19 10:39:38.196476 开始计算逐日盯市盈亏
2019-10-19 10:39:38.196484 成交记录为空,无法计算
2019-10-19 10:39:38.196493 开始计算策略统计指标
2019-10-19 10:39:38.196500 ------------------------------
2019-10-19 10:39:38.196507 首个交易日:
2019-10-19 10:39:38.196513 最后交易日:
2019-10-19 10:39:38.196520 总交易日: 0
2019-10-19 10:39:38.196526 盈利交易日: 0
2019-10-19 10:39:38.196532 亏损交易日: 0
2019-10-19 10:39:38.196544 起始资金: 1,000,000.00
2019-10-19 10:39:38.196552 结束资金: 0.00
2019-10-19 10:39:38.196560 总收益率: 0.00%
2019-10-19 10:39:38.196567 年化收益: 0.00%
2019-10-19 10:39:38.196574 最大回撤: 0.00
2019-10-19 10:39:38.196581 百分比最大回撤: 0.00%
2019-10-19 10:39:38.196588 总盈亏: 0.00
2019-10-19 10:39:38.196595 总手续费: 0.00
2019-10-19 10:39:38.196602 总滑点: 0.00
2019-10-19 10:39:38.196609 总成交金额: 0.00
2019-10-19 10:39:38.196784 总成交笔数: 0
2019-10-19 10:39:38.196806 日均盈亏: 0.00
2019-10-19 10:39:38.196815 日均手续费: 0.00
2019-10-19 10:39:38.196822 日均滑点: 0.00
2019-10-19 10:39:38.196829 日均成交金额: 0.00
2019-10-19 10:39:38.196836 日均成交笔数: 0
2019-10-19 10:39:38.196842 日均收益率: 0.00%
2019-10-19 10:39:38.196849 收益标准差: 0.00%
2019-10-19 10:39:38.196856 Sharpe Ratio: 0.00
2019-10-19 10:39:38.196863 收益回撤比: 0.00
需要改哪些脚本 运行哪个文件呢 谢谢!
据说可以加速到C的速度