




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“分析家C语言接口编译dll文件”第一讲准备的东东1.安装VC+ 6.0软件2.下载分析家C语言接口文件。3.具备C+编程的知识。如果不会,自己下载教学软件,或找本相关的书籍。4.会分析家基本公式编写。如果不会,在本站下载相关分析家公式编写资料。 准备好后,我开始讲一个完整公式的编写过程。第二讲练习编译dll文件。1.解包分析家c语言接口2.启动Vc+点击菜单File选Open Workspace。选择文件FxjFunc.dsw3.选择菜单Build,选择Build FxjFunc.dll生成FxjFunc.dll文件。如果没有错误,显示下面结果。-Configuration: FxjFunc - Win32 Debug-FxjFunc.dll - 0 error(s), 0 warning(s)4.生成的FxjFunc.dll文件在D:SUPERSTK目录中。如果不在当前使用的分析家目录,可以将FxjFunc.dll文件复制到分析家目录中,也可以复制到飞狐FoxTraderFmlDLL目录中。5.在飞狐或分析家建立公式,看看结果。公式只有下面一句,10日close均线。ma1:fxjfuncmymaclose(10); 如果结果正确,你已经成功编写了dll公式了。在后面的讲课中介绍编写技巧。 第三讲分析家扩展函数规范及设计分析家扩展函数规范如下:/#ifndef _FXJFUNC_H_INCLUDE#define _FXJFUNC_H_INCLUDE/*/分析家扩展函数规范V3.101.本规范适用于分析家3.10标准版和专业版公式系统.2.扩展函数用于实现系统函数不能实现的特殊算法.3.扩展函数用windows 32位动态连接库实现,建议使用Microsoft Visual C+编程.4.调用时在公式编辑器中写动态库名称函数名称(参数表)即可,例如下面函数可以写为FXJFUNCMYCMALOSE(5)5.动态连接库名称和函数名称可以自己定义.6.使用时可以将动态库拷贝到分析家目录下使用.*/#ifdef _cplusplusextern C#endif /_cplusplus /分析周期enum DATA_TYPETICK_DATA=2, /分笔成交MIN1_DATA, /1分钟线MIN5_DATA, /5分钟线 MIN15_DATA, /15分钟线MIN30_DATA, /30分钟线MIN60_DATA, /60分钟线DAY_DATA, /日线WEEK_DATA, /周线MONTH_DATA, /月线MULTI_DATA /多日线;/基本数据typedef struct tagSTKDATA time_t m_time; /时间,UCTfloat m_fOpen; /开盘float m_fHigh; /最高float m_fLow; /最低float m_fClose; /收盘float m_fVolume; /成交量float m_fAmount; /成交额WORD m_wAdvance; /上涨家数(仅大盘有效)WORD m_wDecline; /下跌家数(仅大盘有效) STKDATA;/扩展数据,用于描述分笔成交数据的买卖盘typedef union tagSTKDATAExstructfloat m_fBuyPrice3; /买1-买3价float m_fBuyVol3; /买1-买3量float m_fSellPrice3; /卖1-卖3价float m_fSellVol3; /卖1-卖3量;float m_fDataEx12; /保留 STKDATAEx;/*财务数据顺序(m_pfFinData内容)序号 内容0 总股本(万股),1 国家股,2 发起人法人股,3 法人股,4 B股,5 H股,6 流通A股,7 职工股,8 A2转配股,9 总资产(千元),10 流动资产,11 固定资产,12 无形资产,13 长期投资,14 流动负债,15 长期负债,16 资本公积金,17 每股公积金,18 股东权益,19 主营收入,20 主营利润,21 其他利润,22 营业利润,23 投资收益,24 补贴收入,25 营业外收支,26 上年损益调整,27 利润总额,28 税后利润,29 净利润,30 未分配利润,31 每股未分配,32 每股收益,33 每股净资产,34 调整每股净资,35 股东权益比,36 净资收益率*/函数数据结构typedef struct tagCALCINFOconst DWORD m_dwSize; /结构大小const DWORD m_dwVersion; /调用软件版本(V2.10 : 0x210)const DWORD m_dwSerial; /调用软件序列号const char* m_strStkLabel; /股票代码const BOOL m_bIndex; /大盘const int m_nNumData; /数据数量(pData,pDataEx,pResultBuf数据数量)const STKDATA* m_pData; /常规数据,注意:当m_nNumData=0时可能为 NULLconst STKDATAEx* m_pDataEx; /扩展数据,分笔成交买卖盘,注意:可能为 NULLconst int m_nParam1Start; /参数1有效位置const float* m_pfParam1; /调用参数1 const float* m_pfParam2; /调用参数2const float* m_pfParam3; /调用参数3const float* m_pfParam4; /调用参数3float* m_pResultBuf; /结果缓冲区const DATA_TYPE m_dataType; /数据类型const float* m_pfFinData; /财务数据 CALCINFO;/* 注: 1.函数调用参数由m_pfParam1-m_pfParam4带入,若为NULL则表示该参数无效.2.当一个参数无效时,则其后的所有参数均无效.如:m_pfParam2为NULL,则m_pfParam3,m_pfParam4一定为NULL.3.参数1可以是常数参数或序列数参数,其余参数只能为常数参数.4.若m_nParam1Start=0,则参数1为序列数参数,m_pfParam1指向一个浮点型数组,数组大小为m_nNumData,数据有效范围为m_nParam1Start-m_nNumData.在时间上m_pDatax 与 m_pfParam1x是一致的*/* 函数输出_declspec(dllexport) int xxxxxxxx(CALCINFO* pData); - A_declspec(dllexport) int xxxxxxxxVAR(CALCINDO* pData); - B1.函数名称需全部大写.2.函数必须以上述A,B两种形式之一声明,请用实际函数名称替代xxxxxxxx;对于C+程序还需包括在 extern C 括号中.3.上述形式A用于声明不带参数或全部参数为常数的函数;形式B用于声明参数1为序列数的函数;两种函数的区别在于后者以VAR结尾.4.函数计算结果用pData-m_pResultBuf带回.5.函数返回-1表示错误或全部数据无效,否则返回第一个有效值位置,即:m_pResultBuf返回值 - m_pResultBufm_nNumData-1间为有效值.6.函数名称长度不能超过15字节,动态连接库文件名不能超过9字节(不包括扩展名),动态库名称不能叫SYSTEM,EXPLORER7.编译时请请选择1字节对齐*/示例函数,使用时用实际名称替换_declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData);_declspec(dllexport) int WINAPI MYMAVAR(CALCINFO* pData);_declspec(dllexport) int WINAPI MYMACLOSE_CALC_PREV(CALCINFO* pData);_declspec(dllexport) int WINAPI MYMAVAR_CALC_PREV(CALCINFO* pData);#ifdef _cplusplus#endif /_cplusplus#endif /_FXJFUNC_H_INCLUDE/分析家的数据结构见上面。/基本数据typedef struct tagSTKDATA time_t m_time; /时间,UCTfloat m_fOpen; /开盘float m_fHigh; /最高float m_fLow; /最低float m_fClose; /收盘float m_fVolume; /成交量float m_fAmount; /成交额WORD m_wAdvance; /上涨家数(仅大盘有效)WORD m_wDecline; /下跌家数(仅大盘有效) STKDATA;在前一讲中,求均线ma(c,x),是用收盘价,我们可以改成中值(h+l+c)/3的均线。将FxjFunc.cpp程序中fTotal += pData-m_pDatai-j.m_fClose;改为fTotal=fTotal + ( pData-m_pDatai-j.m_fClose+ pData-m_pDatai-j.m_fLow+ pData-m_pDatai-j.m_fHigh )/3;将上面接口规范看懂后,你可以创作各种函数。当将你公式中的一些分析家函数替换成dll中的函数,可以实现简单的加密。另一方面,使用dll文件读取数据,是没有经过精度转换的原始记录数据,有助于精确分析。此外用c+编写公式可以使用循环,遍历等很多分析家所不能实现的功能。第四讲公式中的数据传递一.dll公式计算的结果如何返回到分析家中dll函数计算结果用pData-m_pResultBuf带回.也就是说dll函数必须有值返回。函数返回-1表示错误或全部数据无效,否则返回第一个有效值位置,即:m_pResultBuf返回值 - m_pResultBufm_nNumData-1间为有效值.例如上例:i表示当前所计算的周期。pData-m_pResultBuf = fTotal/nPeriod;全部数据为m_nNumData组。超过会出现错误。数据下标从0开始到m_nNumData-1二.分析家中公式的参数如何传递到dll公式。1.函数调用参数由m_pfParam1-m_pfParam4带入,若为NULL则表示该参数无效.2.当一个参数无效时,则其后的所有参数均无效.如:m_pfParam2为NULL,则m_pfParam3,m_pfParam4一定为NULL.3.参数1可以是常数参数或序列数参数,其余参数只能为常数参数.4.若m_nParam1Start=0,则参数1为序列数参数,m_pfParam1指向一个浮点型数组,数组大小为m_nNumData,数据有效范围为m_nParam1Start-m_nNumData.在时间上m_pDatax 与 m_pfParam1x是一致的在参数上,分析家不如飞狐交易师灵活。分析家只允许1个变化序列数据,飞狐可以允许四个变化序列数据。三.公式的设计和使用1.调用时在公式编辑器中写动态库名称函数名称(参数表)即可,例如下面函数可以写为FXJFUNCMYCMALOSE(5)2.动态连接库名称和函数名称可以自己定义.3.使用时可以将动态库拷贝到分析家目录下使用.分析家在SUPERSTK目录中飞狐在FoxTraderFmlDLL目录中例子:在公式接口中有,这个例子告诉你如何使用两个参数。/计算均价,2个参数,参数1为待求均线的数据,参数2表示计算周期/调用方法:/ MYMAVAR(CLOSE-OPEN,5)_declspec(dllexport) int WINAPI MYMAVAR(CALCINFO* pData)float f,fTotal;const float* pvalue;int nPeriod,nFirst,i,j;if(pData-m_pfParam1 & pData-m_pfParam2 &/参数1,2有效pData-m_nParam1Start=0 & /参数1为序列数pData-m_pfParam3=NULL) /有2个参数pvalue = pData-m_pfParam1; /参数1nFirst = pData-m_nPara
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺织行业面试常见面试题及答案解析
- 人工智能应用讲解课件
- 医院安全不良事件报告流程和方法试题(含答案)
- 福建省事业单位公开招聘考试医学基础知识模拟题真题(附答案)
- 初级保安员证模拟试题(含答案)
- 2025年汽车电子控制技术复习题与答案
- 2025-2030家庭垃圾分类处理服务市场化运作可行性报告
- 2025-2030声学材料在消费电子领域应用拓展分析报告
- 2025-2030城市更新背景下的历史建筑酒店化改造价值报告
- 心梗后发胸痛护理课件
- 2025年(完整版)十八项核心制度培训考核试题(含答案)
- 社工的劳动合同范本(2025版)
- 2025年中国LCP料数据监测报告
- 纺织服装产业园项目建设方案
- DB44T 1597-2015 电镀水污染物排放标准
- 儿童保健工作管理办法
- 全固态高功率超快激光器:放大机制与热透镜效应的深度剖析
- DGTJ08-2232-2017 城市轨道交通工程技术规范
- 中职思政试题及答案
- 中小学暑期安全教育班会课件
- 2025年中国手板模型行业投资研究分析及发展前景预测报告
评论
0/150
提交评论