投资家软件诊股
每交易日中午,12:30--1:00,我们相聚大教室,论股市行情风云,谈大盘动向走势。期待您的到来。
推荐下载
"必盈三线"系列图解下载
最新视频

升级信息
日 期
升级内容及版本
07.7
V1.069,推出板块分析、金股、银股、白马股、黑马股
07.6
v1.067,推出趋势王、短线人气选股.中线趋势选股...
07.5
v1.065,推出绘图王、增强波动度量函数...
07.4
v1.062,增加集合竞价行情传输及显示....
07.2
v1.60,采用更强大的博雅实时行情压缩算法,增加备份中心服务器...

图文版用户专区
合作伙伴





 


 
公式平台(三)
C语言的支持

这里的C语言指的是在《投资家》公式平台上直接用C书写公式,并不是指用C开发成DLL在连接到系统中。

开发成DLL的方法《投资家》很多年前就有了。我们设计C编译器也是几年前的事情。原来的编译器并不是用在《投资家》上。只不过我们最近将这个技术储备,应用到了《投资家》上而已,我们后面还有源源不断地将技术储备用到《投资家》上来。

《投资家》平台支持C语言,大大方便了二次开发者。原则上讲,他们可以书写非常复杂的公式了。再加上《投资家》数据详尽,有精细统计理论的支持,二次开发者真正可以展开想象的翅膀了。

我们来举个简单的例子,比如,我们原来的平台,不可能写出筹码分布这样的指标。因为,我们不能自己控制循环。不能获取鼠标的位置,不能使用分支语句。有了C的支持,这一切就变得简单多了。

下面我们给出简单的筹码分布的源代码,抛砖引玉。

line(close, 0); //画一根收盘线。
float p[110]; //
声明一个浮点数组,存储价位。
float v[110]; //
声明一个浮点数组,存储量。
float GB = ltgb(
光标位置); //得到流通盘
if(GB<100) GB = 100000000; //
没有流通盘的情况处理。
float TotalVol = 0; //
临时变量。总的成交量
float maxv = high[
光标位置]; //取光标位置的最高最低值
float minv = low[
光标位置];
/*
向前计算一个流通盘,找到起始位置*/
for(int i=
光标位置;i>=0; i--)
{
TotalVol +=
成交量[i];
if(TotalVol >= GB) break;
if(high[i] > maxv) maxv = high[i];
if(low[i] < minv) minv = low[i];
}
/*
清除存储空间*/
int pos;
float delta = (maxv-minv)/100;
for(i=0; i<100; i++)
{
p[i] = minv+delta*i;
v[i] = 0;
}
/*
统计分布*/
if(delta > 0.001)
{

TotalVol=0;
for(i=
光标位置;i>=0; i--)
{
TotalVol +=
成交量[i];
if(TotalVol >= GB) break;
pos = (close[i]-minv)/delta;
if((pos >= 0)&&( pos < 100))
{
v[pos] +=
成交量[i];
}
}
}
//
求得比例
if(TotalVol > 0)
{
for(i=0; i<100; i++)
{
v[i]/=TotalVol;
v[i] *= 100;
}
}
//
画线输出结果。
int a = -2;
纵轴粗色棒组(a,p,v,100);
纵轴色棒(a,10,50);
纵轴粗色棒(a,10.5,80);

注意:这个公式是一个典型的自控制循环的公式,代码输入后,请一定在自控制循环上打对号,切切。当然,《投资家》平台支持的只是一个C的子集,并不是所有。比如,现在还不支持指针数据类型、宏定义等等。

 

 


 

 


 

 

 


北京博雅讯电子信息技术有限责任公司   Copyright 2005:版权所有
地址:北京市海淀区半壁街南路8号院汇景阁0218室   邮政编码:100089
联系电话: 010-68431362  68431364  68431367
 建议使用浏览器:IE5.0以上,分辨率:1024X768
京ICP备05055415号