原创内容第692篇,专注量化投资、个人成长与财富自由。

vnpy官方推荐的python版本是3.10。

从原代码跑vnpy,vpny是插件化架构,最小化的依赖:

tzlocal
pandas
qdarkstyle
PySide6
importlib-metadata

依赖包不多,就是tzlocal和pandas还有importlib-metadata。

另外两个是qt的包:pyside6和皮肤qdarkstyle。

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_ctastrategy import CtaStrategyApp
# from vnpy_ctabacktester import CtaBacktesterApp
# from vnpy_datamanager import DataManagerApp


def main():
    """Start VeighNa 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_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()

    qapp.exec()


if __name__ == "__main__":
    main()

启动后界面如下:

图片

分别再下载需要的插件代码:

图片

回测包依赖plotly,deap(用于参数优化)。

数据库包依赖peewee。

在策略开发阶段,其实我们不太需要ui。

下面这段代码,就是直接引用策略,加载数据,回测,然后画图,使用就与我们封装后的backtrader类似了。

只不过vnpy的数据不支持从csv直接引用户,要先导入的数据库中,默认使用sqlite。

from datetime import datetime

from vnpy.trader.optimize import OptimizationSetting
from vnpy_ctastrategy.backtesting import BacktestingEngine
from vnpy_ctastrategy.strategies.atr_rsi_strategy import AtrRsiStrategy
from vnpy_ctastrategy.strategies.dual_thrust_strategy import DualThrustStrategy
from vnpy_ctastrategy.strategies.turtle_signal_strategy import TurtleSignalStrategy

engine = BacktestingEngine()
engine.set_parameters(
    vt_symbol="TA.CFFEX",
    interval="1m",
    start=datetime(2022, 1, 1),
    end=datetime(2023, 4, 30),
    rate=0.3/10000,
    slippage=0.2,
    size=300,
    pricetick=0.2,
    capital=1_000_000,
)
engine.add_strategy(TurtleSignalStrategy, {})

engine.load_data()
engine.run_backtesting()
df = engine.calculate_result()
engine.calculate_statistics()
engine.show_chart()

运行结果:

图片

代码同步给大家:

图片

AI量化实验室——2024量化投资的星辰大海

吾日三省吾身

上周的期货小组会议,与几位同学交流,与去年的观感类似。

很多人觉得“以交易为生”是神话,这其实是误区。

网上流传的那种什么“8000块起步,快速1个亿”这种肯定是神话故事,但50万本金赚50万的算不算“以交易为生”。一定的杠杆比例,年化100%的样子。

这样的版本我听过不少,有可信度。

有时候就是坚持做一些事情。

无论你做或不做,认真或不认真,开心还是生气,日子就这么一天天过去。

该来的总会来,该过去就终将过去。

宇宙不可避免的熵增,一切都将没有终级意义。

在有限的时间里,尽量做些有价值的事情。

回看五年前,有些问题解决了,有些问题反复着,往前看五年,也许都不是事,也许还会有新的事,人生总是这样。

想做就去做,别让自己后悔。

图片

AI量化实验室 星球,已经运行三年多,1200+会员。quantlab代码交付至6.X版本,含几十个策略源代码,因子表达式引擎、遗传算法(Deap)因子挖掘引擎等,每周五迭代一次。

点“阅读原文”,查看策略集(或复制网址:www.ailabx.com/mall)下载。

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐