onready测试代码如下
Params
Vars
Events
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
这两个输出应该是不一样的