通达信DLL插件实战篇,怎样制作我们想要的函数

阅读 作者:股海网时间 2018-12-26 通达信软件

通达信DLL插件实战篇,怎样制作我们想要的函数

最好是上一篇明白了,再看现在的这个帖子,因为这一篇是提高篇,有了这一篇,你想要的函数,以及怎样组合这些函数,就全部明白了

我们先来用DLL来做MACD这个我们非常熟悉的指标,大家都是厉害人物,高手就旁观或绕道,勿笑

通达信DLL插件实战篇,怎样制作我们想要的函数

上图的函数是EMA的函数
最后一行的两个N要改成相同的数值,看下图

我们知道MACD的公式是这样的:
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIF,9);
MACD:(DIF-DEA)*2,COLORSTICK;
short 和long被我直接用数值代替了

第一个DIF里的EMA(CLOSE,12)用DLL表示就是这样的

通达信DLL插件实战篇,怎样制作我们想要的函数

把本来是N的,换成12,就表示是EMA(CLOSE,12);

第一个DIF里的EMA(CLOSE,26),就照葫芦画瓢
把图中N改成26

通达信DLL插件实战篇,怎样制作我们想要的函数

主楼是这样表达的,那么
我们要让人看不出来DIF是怎样计算的
就这样来
下图中的公式是这样在我们的通达信常用指标中表示的
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);

通达信DLL插件实战篇,怎样制作我们想要的函数

但原别出错,图中用到的最基础的代码
我发的时候什么也不缺,但是显示的时候pfOUT后面少了一个中括号,中括号里还有一个i,自己看仔细,源码也在附件里

void EMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)
{
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
        float fTemp = 0.0;
        int N = int(*pfINb);
        pfOUT[0] = 0.0;
        for (int i = 1;
                i<DataLen; i++)
                pfOUT = (2 * pfINa + (N - 1)*pfOUT[i - 1]) / (N + 1);
}

 

第二图和第三图我们做成DLL后,比如说排在8和9

我们是绑定在通达信的第10个上

上一篇那个教程要看明白

那么上两个函数表达分别就是

TDXDLL10(8,C,L,H)

TDXDLL10(9,C,L,H)

通达信DLL插件实战篇,怎样制作我们想要的函数

怎样表达:
A1:=EMA(CLOSE,12);
A1>REF(A1,1);

就是今天大于昨天

上传会员: 
股海网
上传时间: 
2018-12-26
下载积分: 
-
免责申明: 
请仔细阅读并同意后才能下载
本附件为论坛用户分享上传,股海网没有对文件进行验证,不能保证下载资源的准确性、安全性和完整性,也不保证下载资源能正常安装和使用,且下载后扣除的积分无法退还,除非您充分理解并完全接受本声明,否则您无权下载。
本站对提供下载的软件、指标、资料等不拥有任何权利,其版权归该下载资源的合法拥有者所有。本附件仅供学习和研究,不得用于商业或非法用途,如有侵犯您的版权,请参看 《侵权处理流程》《免责声明条款》
点击下载无反应时,更换手机自带浏览器重登录操作,如华为浏览器,苹果Safari浏览器,第三方浏览器有不兼容现象,或先收藏再到电脑端下载
同意以上声明才能下载,扣除积分无法退还!
我已知晓! 点我同意 所有条款自愿下载!
如有问题请点关闭提交问题反馈→
关闭
收藏
全部评论共 0 条

问题反馈 取消