Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:为什么,I 的值,始终是6?

1楼
dzfp2010 发表于:2010/4/19 18:01:49

俺把这个作为后台交易系统,来测试后台交易函数的用法,为啥I的值一直是:6?

VARIABLE:I=0;
IF I<=10 THEN BEGIN
DEBUGFILE('F:\Debug_1.Txt','当前持仓量为:%.2f',THOLDING2);
DEBUGFILE('F:\Debug_1.Txt','当前多头持仓量为:%.2f',TBUYHOLDINGEX('888888','SRY01',1));
DEBUGFILE('F:\Debug_1.Txt','==============变量的值是:%.2f ================',I);
I:=I+1;
END


 

[此贴子已经被作者于2010-4-19 18:02:56编辑过]
2楼
admin 发表于:2010/4/19 18:09:15

DEBUGFILE 是最后一个周期才起作用的函数。

VARIABLE:I=0; 这种声明是属于周期间的全局变量

你的公式存在逻辑问题。

情参考公式常见问题,里面专门对此做了介绍

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332

[此贴子已经被作者于2010-4-19 18:10:35编辑过]
3楼
dzfp2010 发表于:2010/4/19 18:14:04

嗯,想了一下,明白了,试了一下又不明白了,I的值,还是没有像所希望的那样“从0递增到10”。。

VARIABLE:I=0;
IF I<=10 THEN BEGIN
DEBUGFILE('F:\Debug_1.Txt','当前持仓量为:%.2f',THOLDING2);
DEBUGFILE('F:\Debug_1.Txt','当前多头持仓量为:%.2f',TBUYHOLDINGEX('888888','SRY01',1));
DEBUGFILE('F:\Debug_1.Txt','==============变量的值是:%.2f ================',I);
If ISLASTBAR THEN I:=I+1;
END

[此贴子已经被作者于2010-4-19 18:24:33编辑过]
4楼
admin 发表于:2010/4/19 18:27:47

逻辑混乱

DEBUGFILE是最后一个周期才有效的,所以不会记录I的累加过程

你后面增加了ISLASTBAR更是没有效果,因为VARIABLE声明的变量只在整个公式计算周期有效,不会保存硬盘上

 

5楼
dzfp2010 发表于:2010/4/19 18:43:33

嗯,又想了一下,又明白了,是不是可以这样理解:

 

VARIABLE,定义的变量,公式或者交易系统会每个周期都会运行一次,变量值也随着公式或者交易系统在每个周期的运行而变化,也就是随着周期的变化而变化,但是,交易系统和公式在最后一个周期会随着每个“TICK”的变化而变化,而变量不会随着每个“TICK”的变化而变化,随着“TICK”的变化,它变成了无效值 0。。。

6楼
admin 发表于:2010/4/19 19:23:35

你试试DEBUGFILE2函数的返回结果。

 

共6 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 3 queries.