对于类似这样的variable变量:
variable:stopprice=0;
1.如果要variable做全局变量,就必须运行于逐周期模式,对么?
2.如果在后台策略中使用variable做全局变量,比如有一个止损价变量stopprice。开仓后立刻计算stopprice,即stopprice已有值(比如26000)。而此时停止了预警,那么下次启动预警时,这个variable的值是重新初始化成0了还是保留上次的26000?
1、都可以;
2、会重新计算;如果想用不重新计算的,要使用 工具》》数据》》全局变量里面设置的变量,然后用 “EXTGBDATASET”和“ EXTGBDATA ”函数的调用
你可以去下精华贴里我发的 问题大全里 搜全局变量来学习下
1、都可以;
2、会重新计算;如果想用不重新计算的,要使用 工具》》数据》》全局变量里面设置的变量,然后用 “EXTGBDATASET”和“ EXTGBDATA ”函数的调用
你可以去下精华贴里我发的 问题大全里 搜全局变量来学习下
我测试的结果是,variable在后台逐周期根本不起作用,记不住价格,怎么回事。
如果你希望是软件退出后也能记住价格,请使用EXTGBDATASET
variable的作用是在第一个周期初始化,在后面的运行周期保持不变。
建议楼主认真学会金字塔图表调试技巧,会自己解决很多问题
如果你希望是软件退出后也能记住价格,请使用EXTGBDATASET
variable的作用是在第一个周期初始化,在后面的运行周期保持不变。
建议楼主认真学会金字塔图表调试技巧,会自己解决很多问题
variable保持不变?比如
假如第一个周期上holding=0;
第二个周期上holding>0;
那n还等于1?
在序列模式n应该等于1,而逐周期模式应该等于2吧?
holding只能在逐周期模式执行的函数
vairalbe:n=0;
n:=1;
你这么设等于每个周期都初始化赋值为1,无法实现全局变量的作用
这段代码在序列模式下可以输出log.txt,而在逐周期模式下必须注释掉n:=1才能输出log.txt文件。为什么?
variable:n=0;
if n=0 then begin
debugfile('c:/log.txt',stklabel+'的n为%.0f',n);
n:=1;
end;
工作原理如下:
逐周期模式下,由于debugfile在最后一个周期才有效的函数,故最后一个周期的N=1,导致最后一个周期debugfile没有被执行
序列模式下,variable是没有作用的,故与普通序列变量一样,序列模式下金字塔是执行一个序列,故会在第一次解析公式时就去执行debugfile,因为执行到此是,N已经被解析成从第一个BAR到最后一个BAR的序列。
工作原理如下:
逐周期模式下,由于debugfile在最后一个周期才有效的函数,故最后一个周期的N=1,导致最后一个周期debugfile没有被执行
序列模式下,variable是没有作用的,故与普通序列变量一样,序列模式下金字塔是执行一个序列,故会在第一次解析公式时就去执行debugfile,因为执行到此是,N已经被解析成从第一个BAR到最后一个BAR的序列。
序列是什么含义?是数组么?