2022年用C++编写易盛程序化交易指令 .pdf
《2022年用C++编写易盛程序化交易指令 .pdf》由会员分享,可在线阅读,更多相关《2022年用C++编写易盛程序化交易指令 .pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用 C+编写易盛程序化交易指令(易盛程序化交易 VS2008环境开发指引)郑州易盛信息技术有限公司名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 15 页 -1综述本文介绍怎样在Visual Studio 2008 平台上使用易盛程序化交易客户端(2.0)提供的接口开发交易指令。使用 VS2008开发交易指令有下列优势:使用纯 C+方式编程,符合高级程序员的开发习惯方便使用第三方库。如:STL等可以利用 VS2008强大的 Debug功能进行调试,跟踪代码执行。使用 VS2008开发易盛程序化交易指令相对采用易盛公式编辑器稍显复杂,需要进行一些环境配置;另外,参数、变量、特别是序
2、列变量的定义,以及函数的调用均需采用标准的C+方式。这些差异将在以下内容做详细介绍。2程序安装目录假设易盛程序化交易客户端被安装在:“易盛程序化交易系统”。在客户端安装目录下,找到EXPERTS 目录并打开,可以看到以下两个目录:include:易盛程序化交易系统 expertsincludelib:易盛程序化交易系统 expertslib3VS2008开发环境配置3.1创建项目打开 vs2008,点击菜单文件-新建-项目,弹出如下对话框:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 15 页 -选择左侧树形菜单:VisualC+-Win32,在右侧模板里,选择“Win32 项
3、目”,并填写项目名称、位置,点击确定按钮,弹出如下对话框:名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 15 页 -点击“下一步”,界面如下图:应用程序类型请选择DLL点 击“完 成”按 钮 后,生 成 的新 项 目 目 录 结构 如下 图(左)所示。其中,dllmain.cpp文件我们不需要,可以删除。删除该文件后项目目录结构如下图(右)所示3.2 环境配置右键点击项目名称,选择菜单属性,弹出如下图所示窗口名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 15 页 -选择左侧属性菜单“常规,将右侧面板中的“字符集”设置为“使用多字节字符集”,如下图选择左侧属性菜单
4、“调试,将右侧面板中的“命令”设置为“易盛程序化交易系统EsunnyTrader.exe”,如下图:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 15 页 -选择左侧属性菜单“C/C+,将右侧面板中的“附加包含目录”设置为“易盛程序化交易系统 expertsinclude”,如下图选择左侧属性菜单“C/C+-“代码生成,将右侧面板中的“运行库”设置为“多线程调试(/MTd)”;如下图。(编译 Release版,请将这项设置为“多线程(MT)”)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 15 页 -选择左侧属性菜单“连接器,将右侧面板中的 输出文件 设置为 易
5、盛程序化交易系统 ExpertsdllSample.dll;将附加库目录 设置为“易盛程序化交易系统 expertslib”;选择左侧属性菜单“连接器-“输入,将右侧面板中的“附加依赖项”设置为“fmllibd.lib”;如下图。(编译 Release版,请将这项设置为fmllib.lib)名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 15 页 -点击“确定”按钮完成设置3.3 编写代码打开 Sample,输入如下代码:/该示例演示怎样使用 VisualStudio进行易盛程序化动态库开发/在VS 2008环境下编译测试通过/编译完成后可以直接按F5 调试运行/#include
6、stdafx.h#includeuserlib.hclassMFML:publicUserLibpublic:/定义成员变量Numeric P1;Numeric P2;NumericSeriesMA1;NumericSeriesMA2;/将P1,P2声明为数字型参数BEGIN_PARAMETE_MAP(4)PARAMETE_FLOAT(P1,10,5,20,参数一)/格式(名称,默认值,最小值,最大值,注释)PARAMETE_FLOAT(P2,2.5,0.5,5.5,参数二)/格式(名称,默认值,最小值,最大值,注释)END_PARAMETE_MAP()/构造函数,构造函数中必须完成以下两件事
7、情:/1.调用InitParams 进行参数初始化,否则参数无法使用/2.给每个序列变量设置运行信息(m_gInfo),否则序列变量无法正常工作MFML()InitParams();/该句用于初始化参数值MA1.m_gInfo=&m_gInfo;/所有的序列变量都需要设置运行信息gInfoMA2.m_gInfo=&m_gInfo;/所有的序列变量都需要设置运行信息gInfo/Exec 函数为该 DLL 的调用入口。相当于 ETL 语言的Begin.End区域voidExec()MA1=Average(Close(),5);MA2=Average(Close(),20);PlotNumeric(
8、MA1,MA1);PlotNumeric(MA2,MA2);if(CrossOver(MA1,MA2)名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 15 页 -Buy(1,Q_AskPrice();elseif(CrossUnder(MA1,MA2)Sell(1,Q_BidPrice();/EndOf Exec Function;/EndOf ClassEXPORT(MFML);/该行必须保留,用于导出公式右键点击项目名称,在弹出菜单中选择“生成”,开始编译程序,如下图所示。如编译成功,点击按钮(或按 F5键)开始调试运行程序,如下图:名师资料总结-精品资料欢迎下载-名师精心整
9、理-第 9 页,共 15 页 -登录客户端,您将发现左侧“交易指令”列表中出现一个新的项目Sample,可以加载该交易指令到K线图上,如下图所示:若您在代码中设置了调试断点,Sample加载到图表后,当客户端调用该交易指令时,就会触发您的断点,如下图所示:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 15 页 -4与 ETL语言的区别与联系从语言风格来看,主要区别在于:ETL语 言 不 区 分 大 小 写,C+必 须 区 分 大 小 写,如:ETL可 以 写 成numeric,Numeric,NUMERIC等。但 C+必须写成 NumericETL调用函数可以不加小括号,C+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年用C+编写易盛程序化交易指令 2022 年用 C+ 编写 程序化 交易 指令
限制150内