下面这个循环如何避免报错“ 警告,FOR,WHILE,IF,ELSE中包含序列函数,可能存在潜在的逻辑错误。请确认代码无误,144,2002,用户策略”
Period = DayBarsNumI(0,1);Integer i;x =0;for i = 1 to 50{x = x + i* Close[Period*i];}
Period = DayBarsNumI(0,1);Integer i;x =0;for i = 1 to 50{x = x + i* Close[Period*i];}
@byyfish 需要老师帮助啊 不然错过大行情了
回复:你可以看看这个老师所说的。我想问下,你选择的周期是多少, DayBarsNumI(0,1),这个函数是提取上一个交易日有多少bar,如果你选择是周期是1分钟,只有早盘的标的的话有225个bar,再乘以50,就要回溯11250个bar,跨度太大,如果选取的数据不够就会出错
回复:感谢 感谢 没有疑问了
@byyfish 麻烦解答一下,谢谢!
麻烦解答一下
@byyfish
@byyfish那么如何修改呢?
回复:为什么我这边试了下,不会报错。。。而且这个提示只是一个警告,不是报错,依旧能编译的
回复:你可以把循环次数改小一点,然后手动算一下,看计算结果是否与输出的相同
回复:试了一下 根本不对 Close[Period*i]都取不正确
回复:“FOR,WHILE,IF,ELSE中包含序列函数” 真的,你们这个设计太坑了
“byyfishIf( i <= 50){i = i + 1;}x = x + i* Close[Period*i];要不你像这样把close放在大括号外面2024-10-08 14:18”不是很理解呢? 这样进行循环了吗?x这个变量累加了几次呢?
要不你把close放在大括号外面
回复:不是很理解呢? 这样进行循环了吗?
回复:抱歉,是我搞错了,这样编的话回测时只会运行一次,不会循环
回复:那么如何修改呢?
回复:麻烦老师解答一下 如何修改呢?