其他分享
首页 > 其他分享> > dll编写指标

dll编写指标

作者:互联网

使用方法不做细诉详见网上教程http://bbs.tianya.cn/post-no110-13686215-1.shtml

1、如果需要传入多个序列参数时,可以使用m_pData指针获得对应当前bar状态的开高低收等数据。

 

2、对于结尾都有return nPeriod – 1;              return -1;

这样两个return,其中后者表示如果传入参数不符合要求则返回函数无效。

前一个return比较难理解,比如传入参数5,则也会强制从第四根k线才有输出值。所以如果需要从第0根k开始就直接有数据,这里直接改成return 0; 具体的k线生成状态可以借由for循环的起点开始纪录

for (i = nPeriod – 1; i<pData->m_nNumData; i++)

 

3、调试方法:vs中设置好断点,然后打开大智慧,vs中点开调试-附加到进程选择大智慧,然后按f5逐步调试中间变量。

 

4、需使用vs6.0编译,高版本的比如2015编译出的dll给没有安装vs的计算机会产生无法使用的情况。所以可以在15下代码编辑后,放回vc6重新打包生成。

在vs2015中要注意头文件里的time_t m_time; //时间,UCT,需要改成__time32_t m_time;

否则非常坑,调用数据时候会出错。还原到vc6下面时候时间格式可以改回去。

 

5、对于一些均线均线计算,比如ema(ema(c,5),10);这类函数计算,在dll中用动态数组事先保存内部数组数值。float *t1num = new float[nLean];

 

6、ema代码:ema(x,N)

Y = [2 * X + (N – 1) * LY] / (N + 1)

其中Y[0] = 第一根序列数据   ———————————————————– sma代码: SMA(X,N,M) X的M日加权移动平均,
M为权重,
如Y=(X*M+Y’*(N-M))/N 其中Y[0]=0    ————————————————————————————————————- ————————————————————————————————————— 通达信的接口和大智慧、分析家这些完全不一样。直接在通达信的帮助文档里有介绍,必须通过传入的几个参数进行计算

标签:ema,return,传入,dll,指标,vs,time,编写
来源: https://www.cnblogs.com/yukizzc/p/13149728.html