韦纳VeighNa(VNPY)新手入门到写策略

1.VeighNa终端如何登录交易?勾选好相应接口和功能启动后在哪输入账号?

在这里插入图片描述
在这里插入图片描述

2.在哪开发策略?策略文件夹在哪?

CtaStrategy和CtaBacktester两个模块,在启动时都会自动扫描加载VeighNa Trader运行时目录(主界面窗口顶部标题栏的路径)下的strategies目录中的策略文件。
默认情况下,运行时目录是当前操作系统的用户目录,假设你的用户名为abc:

●Windows系统
●用户目录为c:\users\abc;
○策略应该放在c:\users\strategies中

●Linux/Mac系统
●用户目录为/home/abc
○策略应该放在/home/abc/strategies中

示例:
在这里插入图片描述
其中灰色框中的.vnstation和.vntrader是运行终端后自动生成的文件夹。

3.如何写策略?如何开发策略?

首先,参考问题2并完成strategies文件夹的创建,进入strategies文件夹创建自己的策略文件,示例:demo.py,以及参考截图示例。
demo.py内容如下:

from vnpy_ctastrategy import (
    CtaTemplate,
    StopOrder,
    TickData,
    BarData,
    TradeData,
    OrderData
)

from time import time


class MyStrategy(CtaTemplate):
    """"""
    author = "Leo"

    var = 10

    parameters = ["var"]

    def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
        """"""
        super().__init__(cta_engine, strategy_name, vt_symbol, setting)

        pass

    def on_init(self):
        """
        Callback when strategy is inited.
        """
        self.write_log("策略初始化")

    def on_start(self):
        """
        Callback when strategy is started.
        """
        self.write_log("策略启动")

    def on_stop(self):
        """
        Callback when strategy is stopped.
        """
        self.write_log("策略停止")

    def on_tick(self, tick: TickData):
        """
        Callback of new tick data update.
        """
        self.write_log(tick.vt_symbol)
        self.write_log(str(tick.last_price))
        self.put_event()

    def on_bar(self, bar: BarData):
        """
        Callback of new bar data update.
        """
        pass

    def on_order(self, order: OrderData):
        """
        Callback of new order data update.
        """
        self.put_event()

    def on_trade(self, trade: TradeData):
        """
        Callback of new trade data update.
        """
        self.put_event()

    def on_stop_order(self, stop_order: StopOrder):
        """
        Callback of stop order update.
        """
        self.put_event()

    def test_market_order(self):
        """"""
        self.write_log("执行市价单测试")

    def test_limit_order(self):
        """"""
        self.write_log("执行限价单测试")

    def test_stop_order(self):
        """"""
        self.write_log("执行停止单测试")

    def test_cancel_all(self):
        """"""
        self.cancel_all()
        self.write_log("执行全部撤单测试")

操作示例:
●创建文件demo.py
在这里插入图片描述
●右键选择合适的pythonIDE工具打开文件。
在这里插入图片描述
●实现策略代码。上面的demo示例仅供参考。
在这里插入图片描述

4.有策略模板吗?策略示例?

可参考韦纳系统自带的策略示例,路径在终端安装的目录下,如:
C:\veighna_gtja\Lib\site-packages\vnpy_ctastrategy\strategies

5.如何运行策略?如何启动策略?

登录操作参考问题1,以CtaStrategy模块为例,启动后界面如下图,分别选择下拉框选择写好的策略"MyStrategy"点击”添加策略”
在这里插入图片描述
填写添加策略信息,最后点击添加即可。
在这里插入图片描述
注意:
1、”MyStrategy“这个策略名称与编写策略代码里面的类名相同,该策略是问题3中的demo.py里面的类class MyStrategy(CtaTemplate).
2、添加策略信息中的strategy_name <class ‘str’>为自定义名称。
3、添加策略信息中的vt_symbol <class ‘str’>为交易合约代码。
4、添加策略信息中的var <class "int’>为策略中自定义的策略参数。

策略启动后如下:
在这里插入图片描述

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值