通达信DLL插件实战篇,怎样制作我们想要的函数
最好是上一篇明白了,再看现在的这个帖子,因为这一篇是提高篇,有了这一篇,你想要的函数,以及怎样组合这些函数,就全部明白了
我们先来用DLL来做MACD这个我们非常熟悉的指标,大家都是厉害人物,高手就旁观或绕道,勿笑
上图的函数是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表示就是这样的
把本来是N的,换成12,就表示是EMA(CLOSE,12);
第一个DIF里的EMA(CLOSE,26),就照葫芦画瓢
把图中N改成26
主楼是这样表达的,那么
我们要让人看不出来DIF是怎样计算的
就这样来
下图中的公式是这样在我们的通达信常用指标中表示的
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
但原别出错,图中用到的最基础的代码
我发的时候什么也不缺,但是显示的时候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
}
?
第二图和第三图我们做成DLL后,比如说排在8和9
我们是绑定在通达信的第10个上
上一篇那个教程要看明白
那么上两个函数表达分别就是
TDXDLL10(8,C,L,H)
TDXDLL10(9,C,L,H)
怎样表达:
A1:=EMA(CLOSE,12);
A1>REF(A1,1);
就是今天大于昨天
Copyright 2018- www.ahjiedai.com 融城股票网 版权所有 邮箱:terrylm@qq.com
免责声名:本站所发表的内容仅用于学术交流和学习,内容所带来的一切后果均与本站无关。若您发现本站存在您非授权的原创作品,请第一时间联系本站删除!