文档介绍:用 C++ 编写易盛程序化交易指令(易盛程序化交易 VS2008 环境开发指引) 郑州易盛信息技术有限公司 1综述本文介绍怎样在 Visual Studio 2008 平台上使用易盛程序化交易客户端() 提供的接口开发交易指令。使用 VS2008 开发交易指令有下列优势: ?使用纯 C++ 方式编程,符合高级程序员的开发习惯?方便使用第三方库。如: STL 等?可以利用 VS2008 强大的 Debug 功能进行调试,跟踪代码执行。使用 VS2008 开发易盛程序化交易指令相对采用易盛公式编辑器稍显复杂, 需要进行一些环境配置;另外,参数、变量、特别是序列变量的定义,以及函数的调用均需采用标准的 C++ 方式。这些差异将在以下内容做详细介绍。 2 程序安装目录假设易盛程序化交易客户端被安装在:“ D:\ 易盛程序化交易系统”。在客户端安装目录下,找到 EXPERTS 目录并打开,可以看到以下两个目录: include : D:\ 易盛程序化交易系统\experts\include lib: D:\ 易盛程序化交易系统\experts\lib 3 VS2008 开发环境配置 创建项目?打开 vs2008, 点击菜单文件->新建->项目,弹出如下对话框: ?选择左侧树形菜单: Visual C++ -> Win32 , 在右侧模板里,选择“ Win32 项目”, 并填写项目名称、位置,点击确定按钮,弹出如下对话框: ?点击“下一步”,界面如下图:应用程序类型请选择"DLL" ?点击“完成”按钮后,生成的新项目目录结构如下图(左) 所示。其中,"" 文件我们不需要,可以删除。删除该文件后项目目录结构如下图(右)所示 环境配置?右键点击项目名称,选择菜单属性,弹出如下图所示窗口?选择左侧属性菜单“常规",将右侧面板中的“字符集”设置为“使用多字节字符集”,如下图?选择左侧属性菜单“调试",将右侧面板中的“命令”设置为“ D:\ 易盛程序化交易系统\ ”,如下图: ?选择左侧属性菜单“ C/C++" ,将右侧面板中的“附加包含目录”设置为“ D:\ 易盛程序化交易系统\experts\include ”,如下图?选择左侧属性菜单“ C/C++"-> “代码生成",将右侧面板中的“运行库”设置为“多线程调试(/MTd) ”;如下图。(编译 Release 版,请将这项设置为“多线程(MT) ”) ?选择左侧属性菜单“连接器",将右侧面板中的"输出文件"设置为" D:\ 易盛程序化交易系统\Experts\dll\"; 将"附加库目录"设置为“ E:\ 易盛程序化交易系统\experts\lib ”;?选择左侧属性菜单“连接器"-> “输入",将右侧面板中的“附加依赖项”设置为“ ”;如下图。(编译 Release 版,请将这项设置为 ) ?点击“确定”按钮完成设置 编写代码?打开 Sample, 输入如下代码: //该示例演示怎样使用 Visual Studio 进行易盛程序化动态库开发//在 VS 2008 环境下编译测试通过//编译完成后可以直接按 F5调试运行// #include "" #include "" class MFML:public UserLib { public: //定义成员变量 Numeric P1; Numeric P2; NumericSeries MA1; NumericSeries MA2; //将 P1,P2 声明为数字型参数 BEGIN_PARAMETE_MAP(4) PARAMETE_FLOAT(P1,10,5,20, 参数一) //格式(名称,默认值,最小值,最大值,注释) PARAMETE_FLOAT(P2,,,, 参数二) //格式(名称,默认值,最小值,最大值,注释) END_PARAMETE_MAP() //构造函数,构造函数中必须完成以下两件事情: //1. 调用 InitParams 进行参数初始化,否则参数无法使用//2. 给每个序列变量设置运行信息(m_gInfo) ,否则序列变量无法正常工作 MFML() { InitParams(); //该句用于初始化参数值 = &m_gInfo; //所有的序列变量都需要设置运行信息 gInfo = &m_gInfo; //所有的序列变量都需要设置运行信息 gInfo } //Exec 函数为该 DLL 的调用入口。相当于 ETL 语言的 Begin....End 区域 void Exec()