Home >  > VN.PY 2.0学习记录三(多进程)

VN.PY 2.0学习记录三(多进程)

0

一、optimize函数
这个函数位于vnpy-2.0.2\vnpy\app\cta_strategy\backtesting.py里面。是一个优化任务,我们要使用多进程来执行它。它的代码与vn.py 1.x已经不同,完整代码如下:

def optimize(
    target_name: str,
    strategy_class: CtaTemplate,
    setting: dict,
    vt_symbol: str,
    interval: Interval,
    start: datetime,
    rate: float,
    slippage: float,
    size: float,
    pricetick: float,
    capital: int,
    end: datetime,
    mode: BacktestingMode,
):
    """
    Function for running in multiprocessing.pool
    """
    engine = BacktestingEngine()
    engine.set_parameters(
        vt_symbol=vt_symbol,
        interval=interval,
        start=start,
        rate=rate,
        slippage=slippage,
        size=size,
        pricetick=pricetick,
        capital=capital,
        end=end,
        mode=mode
    )

    engine.add_strategy(strategy_class, setting)
    engine.load_data()
    engine.run_backtesting()
    engine.calculate_result()
    statistics = engine.calculate_statistics(output=False)

    target_value = statistics[target_name]
    return (str(setting), target_value, statistics)

从上面的代码可以看到,它和这里“五、策略回测”中的代码一样的。

今天看到了这篇文章,终于也理解了多线程。

三、
出现下面的错误:

'numpy.ndarray' object has no attribute 'index'

https://blog.csdn.net/w5688414/article/details/77965820

四、VNPY的Bar
故收到Tick数据后,需要用到K线生成模块(vnpy/trader/utility.py/Class BarGenerator)里面的update_tick函数,通过时间切片的方法,聚合成1分钟K线数据,并且推送到on_bar函数。

收到推送过来的1分钟K线数据后,通过K线生成模块里面的update_bar函数,以分钟切片的方法,合成15分钟K线数据,并且推送到on_15min_bar函数。

所以,on_bar到的是一分钟K线,on_15min_bar收到的是15分钟Bar。

>>> xmin_bar = None
>>> if not xmin_bar:
...     print("xx")
... 
xx
----------------
>>> xmin_bar = None
>>> not xmin_bar
True


>>> if not 6%5:
...     print("xx")
... 
>>> 
>>> if not 5%5:
...     print("xx")
... 
xx
>>> if not 4%5:
...     print("xx")
... 
>>> if not 7%5:
...     print("xx")
... 
>>> if not 1%5:
...     print("xx")
... 
------------------------------------
>>> if not 1%10:
...     print("xx")
... 
>>> if not 10%10:
...     print("xx")
... 
xx
>>> 

要理解看这个:https://www.vnpy.com/forum/topic/36-zai-ce-lue-zhong-tong-guo-ticksheng-cheng-ren-yi-zhou-qi-kxian

K线合成器
https://blog.csdn.net/q275343119/article/details/85165752

五、吐槽
今天在听网上的VN.PY视频,忍不住在这里吐槽一下。6天的课程,我现在看到了第4天,全在讲一些概念性的东西,我反正感觉是啥也没学到。用一位学员的话说就是:走马观花。

不得不感叹,每个人的话课方式真是千差万别,就上面说的情况,并不是老师的能力不行,他的能力很强,PPT也做得很漂亮,准备得也很用心,可是这课讲得真是渣。

因为学过电脑的应该最清楚,最快速的学习方式就是通过实例学习,或者是从0做一个项目来学习,我至今还记得慕课网的django教程 ,就是教你做一个网站,现场敲代码,我觉得这是我见过的最好的教程,不止是我这么认为,这个课程也是慕课网最爱欢迎的课程之一。

而上面说的这个vn.py的讲师呢?这里打开源码给你看一两行,那里又打开源码给你看一两行。啥都没学会。就以一个例子来说吧,他讲课中说要用到timer,然后给学生看了策略中用到这个timer的代码,可是我还是不懂怎么用啊。你现场 将代码敲出来,然后再演示,让学生看到结果,不就可以了吗?

现在已经第4节课了,后面两节是实战课,我预计估计到时会出现这样的情况,比如你去学习EXCEL,老师花了4节课讲EXCEL的设计哲学 ,后面两节课你就学会了最基本的划个表格,其它高级一点的,复杂一点的,实际工作中要用到的东西啥也没学会。

本文暂无标签

发表评论

*

*