当前位置:→ 股海网股软教程 → 正文
  • 通达信DLL插件编写大众化教程

  • 相关简介:通达信DLL插件编写大众化教程 要想象编普通公式一样编DLL插件,我们必须掌握C语言里的for语句的用法,我们不用理解具体的含义,更不需要死记硬背下来,我们只要知道最基本的结构就可以了, 本来我是记不住的,现在想想就能打出代码来了 void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc) 这一行,在C语言里叫指针,在通达信里就叫输入参数的,讲得高雅一点,就是通达信的接口 除了void 后面的那三个字母要各种

  • 文章来源:股海网作者:股海网发布时间:2019-01-05浏览次数:下载次数:0

通达信DLL插件编写大众化教程

要想象编普通公式一样编DLL插件,我们必须掌握C语言里的for语句的用法,我们不用理解具体的含义,更不需要死记硬背下来,我们只要知道最基本的结构就可以了,

本来我是记不住的,现在想想就能打出代码来了

void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

这一行,在C语言里叫指针,在通达信里就叫输入参数的,讲得高雅一点,就是通达信的接口

除了void 后面的那三个字母要各种改以外,别的全部不要动,这个是固定的模式

我们还要记住一个英文单词

因为很多时间,我用自定义的参数,用这个英文要方便很多

fTemp 中文是什么或者怎么读,我也不会,哈哈,如果你认为我不行,可以不用看下面了

我们编公式要用到变量和参数,变量因为是计算出来的,会有小数点,所以用float在指针那一行下面申明一下
参数很多时候用的都是整数,我们就用int来申明一下;
N=9;
V1:MA(C,N);

比如说这个公式,V1就是变量,N就是参数

那么我们用fTemp代替V1

申明就这样写了


void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;

int N = 0;


申明写完了,我们要开始写一个for语句

void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;

int N = 0;

for(int i = 1;i<DataLen;i++)

这句意思就是说,申明i等于1(或者你等于零也可以,i后面要是有计算式的话,删掉,至少我删了好多都证明是可行的),第一句用分号结束,第二句,如果i小DataLen,那么i++,意思就是可以朝下进行,再加一次,进入下面的语句,如果不是小于,是大于或等于了,那么就结束了,程序就不朝下运行了,这是固定不变的,所有的for开头的语句都是这样的

一个完整的for开头的语句就是这样了

void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;

int N = 0;

for(int i = 1;i<DataLen;i++)
{

}

给一个大括句最好,如果不给,只算第一行的,下面的就不算了
再继续下面

void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;

int N = 0;

for(int i = 1;i<DataLen;i++)
{
pfOUT = pfINa//这个地方有一个大括号中间有一个i看图,论坛会漏掉
}
看截图

通达信DLL插件编写大众化教程

那么,这就是一个完整的for语句了,记住一句,所有的for开头的语句,你可以全部放在一个for语句里各种计算;

看我的这个帖子,那些五天线,十天线,还有二十天线,我们全部放在一起计算



我们要这样做:

比如说我们要计算一个公式,这个公式要求是五天线大于十天线,十天线大于二十天线,我们这样来处理
void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;
float fTemp1 =0.0;
float fTemp2 =0.0;
float fTemp3 =0.0;
float fTemp4 =0.0;
float sum = 0.0;
int N = 0;

for(int i = 1;i<DataLen;i++)
{

                for (int j = 0;
                        j < 5; j++)
                        sum = sum + pfINa[i - j];
                fTemp1 = sum / 5;
                for (int j = 0;
                        j < 10; j++)
                        sum = sum + pfINa[i - j];
                fTemp2 = sum / 10;
                for (int j = 0;
                        j < 20; j++)
                        sum = sum + pfINa[i - j];
                fTemp3 = sum / 20;
              pfOUT
= fTemp1 > fTemp2 > fTemp2;

                 }

提个醒,pfOUT后面有一个大括号,大括号里有一个小写的i

通达信DLL插件编写大众化教程

只要是for开头的,全部可以把第一个for省略掉,然后放在一起加减乘除,今天大于明天那些全部是一样的,总之思路或者说方法就是这样,怎样发挥,你自己想吧,就是你想怎样都可以 ,如果你明白了这帖子的话

前提条件是for的第一句表达式必须是一样,那些五天线还有十天线为什么不能用一个for了,因为括号里有5,还有10,还有20,是不一样的,如果是一样,仍然可以再省略掉,只用一个for

两个一样的for,,就是后面的语句是一样的,你编在一起,会把cpu累死,反正我死了好多次机了

如果再给一个不是for开头的,可以直接申明一个fTemp 变量

等代替上一个语句里的pfOUT

然后把fTemp

换成下一个语句的里

pfINa这个参数

 

 ☟问题反馈 ☞┄┄┄┄┄┄┄┄┄┄→收藏资源:

通达信DLL插件编写大众化教程

  • 下载资源所需积分

    0

  • 当前拥有积分

    0

上传会员: 
股海网
文件大小: 
Bytes
上传时间: 
2019-01-05
下载积分: 
-
免责声明: 
请仔细阅读并同意后才能下载
本附件为用户分享上传,股海网没有对文件进行验证,不能保证下载资源的准确性、安全性和完整性,也不保证下载资源能正常安装和使用,且下载后扣除的积分无法退还,除非您充分理解并完全接受本声明,否则您无权下载。
本站对提供下载的软件、指标、资料等不拥有任何权利,其版权归该下载资源的合法拥有者所有。本附件仅供学习和研究使用,不得用于商业或者非法用途,如有侵犯您的版权, 请参看 《股海网侵权处理流程》《股海网免责声明条款》
点击下载无反应时,更换主流浏览器重新登录操作,如360浏览器、Edge浏览器、谷歌浏览器,个别浏览器有不兼容现象。
勾选以下表示您已经阅读并同意以上声明才能下载本文件,扣除积分无法退还!
我已阅读所有条款规定, 请点我同意 所有条款内容!我自愿下载!
提示:如下载失败,请点关闭刷新此页面或提交问题反馈给管理员→
关闭

关于我们 - 联系我们 - 隐私政策 - 免责声明 - 下载帮助 - 广告合作 - SiteMap - TOP
增值电信业务经营ICP许可证:湘B2-20210269 湘ICP备09016573号-10 湘公网安备43108102000040号
Copyright © 2021 铭网科技,All Rights Reserved.