开拓者期货期权程序化系统交易论坛

标题: 请教一个关于序列变量的问题 [打印本页]

作者: qwas121    时间: 2018-11-21 23:13:49     标题: 请教一个关于序列变量的问题

在实盘交易中,因为一个tick程序就会执行一次。
假如一根K线刚开始的时候,给序列变量赋值TT=5000,那同一根K线,第二个tick执行的时候,TT还是5000吗?
我用commentary语句看到,第二个tick时,TT会归零。不知道是为什么?
作者: 小米    时间: 2018-11-22 08:41:49

将如下代码放到K线中,或者有助于理解序列变量
  1. vars
  2.    numericseries aa;
  3. begin
  4.     commentary("当根K赋值前="+text(aa));
  5.     aa = 5000;
  6.     commentary("当根K赋值后="+text(aa));
  7. end
复制代码

作者: qwas121    时间: 2018-11-22 15:18:22

小米 发表于 2018-11-22 08:41
将如下代码放到K线中,或者有助于理解序列变量

好 谢谢老师 您意思我明白
现在收盘了,晚上开盘后,我给验证一段代码,请您看看
作者: qwas121    时间: 2018-11-22 21:26:25

小米 发表于 2018-11-22 08:41
将如下代码放到K线中,或者有助于理解序列变量

你好,您这段代码的意思是不是想表达序列变量在相邻两根K之间是自动传递的,不用在写一个AA=AA[1]这样的语句?
我想表达的不是这个这个意思,请看这个代码:
  1. Begin
  2. If(A_BuyPosition==0 AND GetGlobalVar(99)==0)
  3. {
  4. If(High>High[1])
  5. {
  6. TT=1;
  7. }
  8. If(TT[1]==1)
  9. {
  10. A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
  11. AA=5000;
  12. TT=0;
  13. SetGlobalVar(99,1);
  14. }
  15. }         
  16. Commentary("TT:"+Text(TT));
  17. Commentary("AA:"+Text(AA));
  18. Commentary("全局99:"+Text(GetGlobalVar(99)));
  19. End
复制代码
这段代码在实盘里运行
假设我们把High>High[1]的K线标记为第0根,在第0根K线时,TT会变成1,AA保持0,全局变量99保持0。
到第1根K线第1个tick时,AA==5000,TT==0,全局变量99==1,但第1根K线第2个tick执行完后,会变成AA==0,TT==1,全局变量99依旧是1
所以,我想表达的是:
针对每一根BAR里每一个tick,程序每次刚开始执行的时候,序列变量的值不是同一根BAR里上一个tick执行完后的值,而是从上一根BAR里取的值

我尽力表达清楚了,也不知道有没有说清楚
作者: qwas121    时间: 2018-11-22 21:27:42

小米 发表于 2018-11-22 08:41
将如下代码放到K线中,或者有助于理解序列变量
  1. Vars
  2. NumericSeries TT;       
  3. NumericSeries AA;
复制代码
代码少了这两句
作者: 小米    时间: 2018-11-23 15:04:26

qwas121 发表于 2018-11-22 21:26
你好,您这段代码的意思是不是想表达序列变量在相邻两根K之间是自动传递的,不用在写一个AA=AA[1]这样的 ...

“针对每一根BAR里每一个tick,程序每次刚开始执行的时候,序列变量的值不是同一根BAR里上一个tick执行完后的值,而是从上一根BAR里取的值”
----这样的呀。之前 的代码里在赋值 语句的前后分别输出commentary也是想让大家理解这个关系啊。
作者: qwas121    时间: 2018-11-23 21:33:34

小米 发表于 2018-11-23 15:04
“针对每一根BAR里每一个tick,程序每次刚开始执行的时候,序列变量的值不是同一根BAR里上一个tick执行完 ...

啊 也是




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2