股票购买接口系统怎么使用vn.py进行量化策略?
一般情况下,股票购买接口系统主要是可以运用在股票量化交易系统开发的一个大方向,也就是说,股票购买接口系统是根据这些量化的特点来开发的,就比如使用vn.py进行量化策略,在这方面,对交易者进行量化分析也起到举足轻重的作用。那么,具体又是如何实现的呢?
小编举个例子,量化策略可以将获取的股票数据行情就是通过接口来输入你的策略来优化,一般在在vn.py常使用的IDE是VS Code,这里的IDE没有什么特殊要求,大家在使用股票购买接口系统的时候使用的环境是Pycharm+VN Studio。相比于以前自己在源码基础上的策略开发,以现在这种的开发方式可以更好的进行量化选股。那么,为了方便管理自己的策略代码,需要创建一个strategies的文件夹存放策略代码,这个文件夹的目录位置需要:
如果是按照官方默认配置的话,也就是.vntrader在C:/Users/YourName/下,strategies放在.vntrader的同级目录下即可。但如果把.vntrader放在了其他位置,也需要在它的同级目录下创建strategies文件夹。因为在启动VN Trader的时候,它会在.vntrader文件在所在的目录下查找strategies文件夹,并加载其中的策略代码。之后在strategies文件夹中创建一个命名为demo_strategy.py的文件,并用IDE打开,类似于以下股票交易接口开发文档的调用API接口的功能:
相关函数 |
调用结果 |
Deinit Logoff |
无 |
Init |
返回值为 授权成功的交易账户数量 返回值 < 1 时, 无需调用 Deinit 接口, 也不能调用其它接口, 否则会出错! |
Logon |
调用成功: 返回值为 客户端 Id 调用失败: 返回值 <= 0 |
参数 ErrorInfo 保存错误信息, 需要分配 256 字节的空间 |
|
GetExpireDate |
返回值为 API 授权到期日期 |
格式为 yyyymmdd 整数, 如 2018 年 5 月 1 日为 20180501 |
|
单项操作 |
调用成功: ErrorInfo 为空字符串 |
QueryData |
调用失败: ErrorInfo 为错误信息 |
QueryHistoryData |
参数 Result 保存操作结果, 需要分配 1024*1024 字节的空间 |
SendOrder |
Result 格式为表格数据, 每一行通过换行符\n 分割,每一列通过制表符\t 分割 |
CancelOrder |
例子: |
GetQuote |
股东代码\t 股东名称\t 帐号类别\t 保留信息\n |
Repay |
12345678\t\t0\t 信息 1\n |
87654321\t\t2\t 信息 2 |
|
注: 不同券商返回的字段会有所不同 |
|
参数 ErrorInfo 保存错误信息, 需要分配 256 字节的空间 |
|
批量操作 |
批量操作的参数通过数组方式传入, 用下标区分每项操作 |
QueryDatas |
第 i 项操作调用成功: ErrorInfo[i]为空字符串 |
SendOrders |
第 i 项操作调用失败: ErrorInfo[i]为错误信息 |
CancelOrders |
参数 Result[]保存批量操作结果, Result[i]保存第 i 项操作结果 |
GetQuotes |
每项操作结果需要分配 1024*1024 字节的空间 |
QueryMultiAccountsDatas |
每项操作结果的格式可参阅[Result 格式] |
SendMultiAccountsOrders |
参数 ErrorInfo[]保存批量错误信息, ErrorInfo[i]保存第 i 项错误信息 |
CancelMultiAccountsOrders |
每项错误信息需要分配 256 字节的空间 |
GetMultiAccountsQuotes |
|
策略代码编写如下:
假如这里选用vn.py中的双均线策略demo,它的量化策略代码如下:
from vnpy.app.cta_strategy import (
CtaTemplate,
StopOrder,
TickData,
BarData,
TradeData,
OrderData,
BarGenerator,
ArrayManager,
)
class DemoStrategy(CtaTemplate):
"""演示用的简单双均线"""
# 策略作者
author = "Smart Trader"
# 定义参数
fast_window = 10
slow_window = 20
# 定义变量
fast_ma0 = 0.0
fast_ma1 = 0.0
slow_ma0 = 0.0
slow_ma1 = 0.0
# 添加参数和变量名到对应的列表
parameters = ["fast_window", "slow_window"]
variables = ["fast_ma0", "fast_ma1", "slow_ma0", "slow_ma1"]
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
""""""
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
# K线合成器:从Tick合成分钟K线用
self.bg = BarGenerator(self.on_bar)
# 时间序列容器:计算技术指标用
self.am = ArrayManager()
def on_init(self):
"""
当策略被初始化时调用该函数。
"""
# 输出个日志信息,下同
self.write_log("策略初始化")
# 加载10天的历史数据用于初始化回放
self.load_bar(10)
def on_start(self):
"""
当策略被启动时调用该函数。
"""
self.write_log("策略启动")
# 通知图形界面更新(策略最新状态)
# 不调用该函数则界面不会变化
self.put_event()
def on_stop(self):
"""
当策略被停止时调用该函数。
"""
self.write_log("策略停止")
self.put_event()
def on_tick(self, tick: TickData):
"""
通过该函数收到Tick推送。
"""
self.bg.update_tick(tick)
def on_bar(self, bar: BarData):
"""
通过该函数收到新的1分钟K线推送。
"""
am = self.am
Market市场代码: 0—深圳,1—上海
Stockcode:证券代码;
start :指定的范围开始位置;
count:要请求的 K 线数目,最大值为 800
比如以下语句表示获取获取股票深证的000001股票最近的10条1分钟数据;
api.get_security_bars(7, 0, '000001', 0, 10)
数据获取的接口一般返回list结构,如果需要转化为pandas Dataframe接口,可以使用 api.to_df 进行转化 如:
api.to_df(api.get_security_bars(7, 0, '000001', 0, 10)) # 返回普通list后转DataFrame;再进一步的调研函数程序,就完成量化策略选股的操作了。
执行示例:
因此,股票购买接口系统使用vn.py进行量化策略选股的同时,也要注意配置开发环境,在这一方面,如果对于不怎么了解的用户也可以根据自己的需求去找一家正规的系统开发平台,优化自己的量化系统,把握更多的盈利机会,也可以Q下方滴滴我们去做好量化策略的开发很交易系统的完善。
股票购买接口系统怎么使用vn.py进行量化策略?相关推荐
- 【vn.py】量化策略历史回测(基于本地csv数据)
文章目录 写在前面 获取数据 csv数据导入 历史回测 写在后面 REF 写在前面 策略研发之后,为了检测我们策略的效果,不可能一上来就接入实盘,所以需要的就是通过历史数据对我们的策略进行检验,也就是 ...
- 股票购买接口委托下单c++代码
炒股并非是运气可以驱使的,买股票不是赌博,是一种有风险的经济投资.在股市投资生涯中,掌握一门实战买卖技巧是我们必备的武器,这也是我们能长久在股市投资中得以生存的技法. 其实做股票投资是非常讲究买入和卖 ...
- 在调用股票购买接口时要注意什么事项?
很多交易者对于股市的行情是不擅长做分析的,所以通过股票购买接口才可以进行判断行情.那么今天小编来聊聊,在调用股票购买接口时要做好哪些细节事项? 首先要注意接口的安全问题,市面上接口很多,如果有安全隐患 ...
- vn.py开源量化交易程序开发框架
http://www.vnpy.org/ vn.py 是基于 Python 的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统,目前已经成长为一套全功能的交易程序开发框架. vn.py项目起 ...
- vn.py开源量化框架把我整蒙了,开始填坑。
本以为vn.py和vnpy是一家的,它们长得是真像,下载vn.py已经二个多月,今天才搞明白.还是陈总格局大,开放源代码.在GitHub看到源码下载,太繁琐,直接把我劝退,还好vn.py官方有傻瓜下载 ...
- 2020年vn.py项目计划
2020年vn.py项目计划 这两周被感冒折腾的够呛,叠加上元旦后的出差,拖到今天才有时间来写这篇新年计划. 回顾2019年 翻翻自己知乎专栏的文章,这篇是第五篇年度总结和项目计划,从2015年在Gi ...
- 股票交易软件接口的程序结构是什么?
股票交易软件接口系统将不可避免地使用交易接口,但现在可以使用的接口很少.虽然证券公司提供的服务也可以使用,但他们也应该知道交易接口系统是否运行稳定,这是通过程序实现的.然而,一些投资者仅仅开发自己的股 ...
- 【vn.py学习笔记(二)】vn.py底层接口 学习笔记
[vn.py学习笔记(二)]vn.py底层接口 学习笔记 1 CTP API的工作原理 1.1 CTP介绍 1.2 API功能介绍 1.3 CTP API文件 1.4 API 通用规则 2 CTP A ...
- 【vn.py】CTP首次登陆修改密码 之 接口调用法
背景 最近一直在玩vn.py,上一篇文章vn.py开发环境搭建(windows)介绍了如何搭建二次开发环境,解决了一些搭建环境过程中遇到的坑.那么接下来这篇文章将解决运行期间的第一个问题. 开始vn. ...
最新文章
- 【转】qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用
- 推荐11个第2职业挣大钱的公众号!第5名一年涨8万粉丝!
- Win7+Ubuntu双系统,如何卸载Ubuntu系统?
- 服务器策略文件,如何解决服务器对文件请求的缓存策略教程
- android 动画 返回,Android“菜单图标变返回”动画
- 算法图解学习笔记02:递归和栈
- gin 项目结构_Go Web 框架 Gin 路由的学习
- 天津大学推出大型无人机航拍车辆数据集DroneVehicle
- 萌新的Python练习菜鸟100例(十五)利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
- 2021年中国电动辅助电动机市场趋势报告、技术动态创新及2027年市场预测
- 为什么要使用Ruby的attr_accessor,attr_reader和attr_writer?
- 词法分析flex 语法分析bison
- 本地化差分隐私(Local Differential Privacy)浅析
- 3DMax软件有什么方法调节摄像机
- QuickBI和DataV 1
- php files 转数组,转 PHP文件上传$_FILES数组各键值含义说明
- PAT 1108 Finding Average
- CV【5】:Layer normalization
- Datawhale组队学习周报(第022周)
- Stephen P. Boyd convex lecture notes
热门文章
- JavaScript实现select下拉菜单省份和城市的级联菜单
- 众昂矿业对近年全球萤石市场形势分析
- springcloud网关的作用
- Android培训班(51)
- VMware Workstation 16 pro安装GhostBSD 21解决虚拟驱动问题备忘录
- select与poll
- Android 开发一定要看的15个实战项目,android嵌入式开发入门
- 孙溟㠭展为尼泊尔驻华大使‘马赫什·库马尔·马斯基‘治印篆刻印章
- access能接trunk口_ACCESS改trunk口
- java爬虫抓取网页数据论坛_Java爬虫抓取网页