韦纳VeighNa(VNPY)新手入门到写策略
- 1.VeighNa终端如何登录交易?勾选好相应接口和功能启动后在哪输入账号?
- 2.在哪开发策略?策略文件夹在哪?
- 3.如何写策略?如何开发策略?
- 4.有策略模板吗?策略示例?
- 5.如何运行策略?如何启动策略?
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’>为策略中自定义的策略参数。
策略启动后如下: