分析家公式网,提供指标公式,股票软件 用户登录  |  用户 注册

软件名称:[B]通达信DLL插件编写大众化教程[/B]
软件类型:国产软件
运行环境:Win9X/Win2000/WinXP/Win2003/Win7/
软件语言:简体中文
授权方式:免费版
软件大小:0 Bytes
官方主页:Home Page
更新时间:2019-01-06 01:53:01
软件简介:

作者:末日琳晨

 
要想象编普通公式一样编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看图,论坛会漏掉
}
看截图
 
 
 
那么,这就是一个完整的for语句了,记住一句,所有的for开头的语句,你可以全部放在一个for语句里各种计算;
 
看我的这个帖子,那些五天线,十天线,还有二十天线,我们全部放在一起计算
 
 
https://www.55188.com/thread-8704941-1-1.html
 
我们要这样做:
 
比如说我们要计算一个公式,这个公式要求是五天线大于十天线,十天线大于二十天线,我们这样来处理
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
 

[url=http://www.70822.com/soft/sort012/sort018/down-132329.html]通达信DLL插件编写大众化教程[/url]

关于本站 | 网站帮助 | 广告合作 | 声明 | 友情连接 | 网站地图 |
分析家公式网声明:本站所有股票公式软件资料均网上公开收集,如侵权请联系删帖。站内所有广告,均与本站无关!
Copyright © 2003-2024 70822.Com. All Rights Reserved .
页面执行时间:46.87500 毫秒