自动交易

添加策略

在左侧的下拉框中选择要交易的策略名称,,如BasicSpreadStrategy,点击【添加策略】按钮,即可弹出以下界面:

https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/spread_trading/11.png

其中,相关参数解释如下:

  • 【strategy_name】为用户自定义的策略实例名称,这里是test;

    • 策略实例名称不能重名;
  • 【spread_name】为用于交易的价差合约,这里是y_05_09;

    • 一定要是价差组件可以查询到的价差合约;
  • 显示的参数名是策略里写在parameters列表中的参数名;

    • 默认数值为策略里的参数的默认值;

    • 由上图可观察到,参数名后面<>括号中显示的是该参数的数据类型,在填写参数时应遵循相应的数据类型。其中,<class ‘str’>是字符串、<class ‘int’>是整数、<class ‘float’>是浮点数;

    • 请注意,如果某个参数可能会调整至有小数位的数值,而默认参数值是整数(比如1)。请在编写策略时,把默认参数值设为浮点数(比如1.0)。否则策略会默认该项参数为整数,在后续【编辑】策略实例参数时,会只允许填进整数。

以BasicSpreadStrategy为例,该策略的各参数含义如下:

  • 【buy_price】为买入开仓阈值,图中是-300,即当价格跌破-300时,执行委托;

  • 【sell_price】为卖出平仓阈值,图中是400,即当价格回升到400时,执行委托;

  • 【short_price】为卖出开仓阈值,图中是800,即当价格上涨到800时,执行委托;

  • 【cover_price】为买入平仓阈值,图中是600,即当价格下跌到600时,执行委托;

  • 【max_pos】为主动腿委托数量;

  • 【payup】为超价的数值;

  • 【interval】为时间间隔,即每隔一段时间,会发出委托。

最后,点击【添加】按钮完成策略实例的创建。添加成功后,策略组件界面如下图所示:

https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/spread_trading/12.png

启动策略

添加策略完毕,依次点击【初始化】和【启动】按钮即可启动策略。成功启动后,【日志】组件输出“算法已启动”,如下图所示:

https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/spread_trading/13.png

此时,【算法】组件显示,test策略调用SpreadTaker算法,分别在600和-300的位子上挂上买入和卖出委托;由于实际价格没有达到这2个阈值,故委托一直挂着,其委托状态为”未成交”。

https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/spread_trading/14.png

停止策略

若要停止策略,点击策略实例下的【停止】按钮,即可停止该策略实例的自动交易。【日志】组件输出“算法已停止”,如下图所示:

https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/spread_trading/15.png

【算法】组件中算法状态变为“已撤销”,如下图所示:

https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/spread_trading/16.png

【策略】组件中“trading”字段从“True”变为“False”,如下图所示:

https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/spread_trading/17.png

编辑策略

如果创建策略实例之后,想要编辑某个策略实例的参数(若已启动策略,需要先点击策略实例下的【停止】按钮,停止策略),可以点击该策略实例下的【编辑】按钮,会弹出参数编辑对话框,以供修改策略参数,如下图所示:

https://vnpy-doc.oss-cn-shanghai.aliyuncs.com/spread_trading/18.png

编辑完策略参数之后,点击下方的【确定】按钮,相应的修改会立即更新在参数表格中。

移除策略

如果创建策略实例之后,想要移除某个策略实例(若已启动策略,需要先点击策略实例下的【停止】按钮,停止策略),可以点击该策略实例下的【移除】按钮。移除成功后,图形界面左侧的策略监控组件中将不会再显示该策略实例的信息。

批量操作

如果有多个需要运行的价差策略实例,可以使用界面左下方的【全部初始化】、【全部启动】和【全部停止】功能来执行盘前批量初始化、启动策略实例以及盘后批量停止策略实例的操作。