OnReady事件中读取存在的数据莫名读不成来

onready测试代码如下ParamsVarsEvents OnReady() { Integer z; String str; For z=0 to 20 {SetTBProfileString(SymbolName+\"_基础参数\",\"数字\"+Text(z),Text(z));} For z=0 to 20 {str=GetTBProfileString(SymbolName+\"_基础参数\",\"数字\"+Text(z)); Print(str);}}//------------------------------------------------------------------------

我也遇到了同样的问题,存进去的值,和读出来的不一样,请问楼主解决了吗

While(str==InvalidString) {str==GetTBProfileString(SymbolName+_基础参数,趋势是否已经有一段时间了);}我加了个循环保证读取顺利,没有死循环,说明数据可以正确的读取,但数值不对,本应读取值为6,但实际读取值为0

这边测试 删除键值 比如删除19 然后 到图表刷新 刷新就是重新执行了公式 再次重新写入了数据 运行结果是0-20 没有复现出您说的问题

回复:实际运行中onready事件可以重复刷新吗?主体程序已经按照错误数据进行执行了,再次刷新没有意义

是不是键值命名有什么要求限制

之后的bigpos读取就没问题

str=GetTBProfileString(SymbolName+_止盈,止盈层级); ThenData=Value(str); If(!(ThenData>=0&&ThenData<=10)) {SetTBProfileString(SymbolName+_止盈,止盈层级,0);} str==GetTBProfileString(SymbolName+_基础参数,趋势是否已经有一段时间了); MyTrend=Value(str); If(MyTrend!=0&&MyTrend!=1&&MyTrend!=2) {MyTrend=0; SetTBProfileString(SymbolName+_基础参数,趋势是否已经有一段时间了,0);} str=GetTBProfileString(SymbolName+_基础参数,是否重仓); Bigpos=Value(str);Print(str); If(!(Bigpos>=0&&Bigpos<=10)) {Bigpos=0; SetTBProfileString(SymbolName+_基础参数,是否重仓,0);}

但实际输出都是9证明str==GetTBProfileString(SymbolName+\"_基础参数\",\"趋势是否已经有一段时间了\");这键值根本没读取

前者应该是9,后者应该是0

这两个输出应该是不一样的