- 咨询内容: 本帖最后由 慕容表哥 于 2012-12-13 17:22 编辑
TB新手不知道的那些事1:用户函数只能取得data0的值
变量a=data0.VolD;
变量b=data1.VolD;
你会发现b永远等于a,TB的用户函数只能默认取得data0的值,即使你前缀data1,2,3。。。也没有用
建议说明书注明这方面,当然更希望新版TB支持用户函数能取得data1,2,3的值 - TB技术人员: 此类用户函数,可以看到函数代码,看一下代码里的计算方法 ,可以知道无论是否使用data1.xxx
其计算都是使用data0的值 - TB客服:
小米 发表于 2012-12-12 17:08
此类用户函数,可以看到函数代码,看一下代码里的计算方法 ,可以知道无论是否使用data1.xxx
其计算都是使 ...
那是否修改原来函数的代码,加入data1的前缀,新建一个用户函数,就可以取得data1.xxx的值? - 网友回复:
慕容表哥 发表于 2012-12-12 17:18
那是否修改原来函数的代码,加入data1的前缀,新建一个用户函数,就可以取得data1.xxx的值? ...
是的。
修改原函数代码里,对K线数据部分的内容用data1.xxx替换,其结果就如你所需了。 - 网友回复:
修改后的OpenIntD1和VolD1,分别可以取data1商品的n天前的持仓量和成交量
//------------------------------------------------------------------------
// 简称: OpenIntD1
// 名称: 求N天前的持仓量
// 类别: 用户函数
// 类型: 内建函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
Numeric daysAgo(2);
Vars
NumericSeries barCnt;
NumericSeries dayOpenInt;
Numeric i;
Numeric j;
Numeric nIndex(0);
Numeric CBIndex;
Begin
CBIndex = data1.CurrentBar;
If(CBIndex == 0 || data1.Date != data1.Date[1])
{
barCnt = 1;
}Else
{
barCnt = barCnt + 1;
}
dayOpenInt = data1.OpenInt;
If(daysAgo == 0)
{
return dayOpenInt;
}Else
{
For i = 1 To daysAgo
{
If( i == 1)
{
j = 0;
}Else
{
j = j + BarCnt[j];
}
If (j > CBIndex )
Return data1.InvalidNumeric;
nIndex = nIndex + BarCnt[j];
}
Return dayOpenInt[nIndex];
}
End
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 版权所有 TradeBlazer Software 2003-2010
// 更改声明 TradeBlazer Software保留对TradeBlazer平
// 台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// 简称: VolD1
// 名称: 求N天前的成交量1
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
Numeric daysAgo(2);
Vars
NumericSeries barCnt;
NumericSeries dayVol;
Numeric i;
Numeric j;
Numeric nIndex(0);
Numeric CBIndex;
Begin
CBIndex = Data1.CurrentBar;
If(CBIndex == 0 || Data1.Date != Data1.Date[1])
{
barCnt = 1;
dayVol = data1.Vol;
}Else
{
barCnt = barCnt + 1;
dayVol = dayVol + data1.Vol;
}
If(daysAgo == 0)
{
return dayVol;
}Else
{
For i = 1 To daysAgo
{
If( i == 1)
{
j = 0;
}Else
{
j = j + BarCnt[j];
评论内容只代表网友观点,与本站立场无关!
本网提供的公式文件说明:
* alg格式飞狐股票公式,可以用飞狐交易师或者交易师软件导入;
* fnc格式大智慧新一代公式指标,可以用大智慧股票软件使用,少部分可以用分析家股票软件引入使用;
* exp格式大智慧经典版股票公式,仅可以用大智慧经典版股票软件引入使用;
* tni和tnc格式通达信股票公式,仅可以用通达信新引入使用,例如可以用通达信股票软件引入使用;
* tne,tn6格式通达信公式,可以用通达信公式编辑器5.0版导入,推荐通达信金融终端版本;
* hxf格式同花顺股票公式,仅可以用同花顺股票软件引入使用。
以上的各种软件都可以在本网股票软件栏目找到!
* 关于股票公式时间限制,如果在引入大智慧公式,交易师公式或者飞狐公式的时候,发现公式名称栏是空白的,这时候调整电脑时间到1997年,又能出现公式名称,并且能正常显示,可能是公式使用期限已过。
* 关于还原公式源码如果你忘记了自己编写的大智慧公式,通达信公式,同花顺公式,操盘手公式,飞狐公式,博易大师公式,金字塔公式,文华公式和交易师公式等等公式的密码,本网可帮恢复源码,有.偿.服.务无意勿扰,点击在线咨询联系我。
* 关于股票公式源码编辑
本网提供的源码,一般都可以编辑成公式,如果不明白公式的编辑,在本页右侧教程录像可参考,或者找公式教程资料学习,请搜索:教程
* 如果您发现软件内容或者链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含源码均是由网上搜集,若侵犯了你的版权利益,请联系通知我们!