和原来的版本不兼容,搞到原来的策略无法正常运行,强烈要求改回来!
以下一段根据仓位自动计算固定手数的代码没法正常运行了!
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
input: N(65,0,100,1); //初始仓位N%
GLOBALVARIABLE: SDmax = 0;
GLOBALVARIABLE: SKmax = 0;
GLOBALVARIABLE: MAX_ASSET = 0;
IF MAX_ASSET = 0 THEN
BEGIN
BZJD:=TACCOUNT(41),NODRAW; //多头保证金
BZJK:=TACCOUNT(42),NODRAW; //空头保证金
//最大投入资金
MAX_ASSET := ASSET*N/100;
SDmax := INTPART(MAX_ASSET/(ABS(BZJD)*C*MULTIPLIER));
//空头最大手数
SKmax := INTPART(MAX_ASSET/(ABS(BZJK)*C*MULTIPLIER));
END
比较强烈的鄙视金字塔这种修改变量含义搞得代码不兼容的做法,上述代码在3.01版本还是正常的,3.02居然出问题!
看了这个,问题解决了,建议默认和旧版本兼容:
使用旧版的GLOBALVARIABLE、EX类函数方法
因为新版的GLOBALVARIABLE、EX类函数的运行方式改为只刷新最后一根K线,而V3.02之前的版本是与其他函数一样从本地第一个K线计算至今的值,可以处理迭代运算。
对于用Ex函数来处理迭代运算的策略,新版的改变会造成比较大的影响。
为此,金字塔依然保留了原来函数功能。
不过用户需要执行如下操作(双击放大)

勾选了该选项,EXTGBDATASET、GLOBALVARIABLE就按照V3.02之前的规则运行。
这个选项就是为了新旧版本的兼容,楼主可能忘关注下版本更新情况了
如果发现新版与旧版本策略发生不同,请务必第一时间先查询软件版本的更新说明。
有变化的部分一定会告知。
若没有在更新说明中写到的,可能是BUg
欢迎各位反馈
以下是引用RogarZ在2013/10/9 9:44:12的发言:
如果发现新版与旧版本策略发生不同,请务必第一时间先查询软件版本的更新说明。
有变化的部分一定会告知。
若没有在更新说明中写到的,可能是BUg
欢迎各位反馈
作为一个程序员,对金字塔这种改动方式十分的无语,好歹PEL已经算是一种编程语言了,编程语言的升级最起码要考虑兼容啊,
不反对新功能,但是新功能就不能多加一个关键字来解决吗?比如说加一个STATICVARIABLE之类的关键字实现新功能,这样搞法同一段代码
在不同的版本居然有不同的含义,还需要修改界面配置而不是直接修改代码就能完成这个改动,这种做法实在没法认同。