请教,我定义字符串初始数组为fn[i]:='';
然后在循环里面赋值fn[i]:=某字符串
然后我应该是得到fn[n]个字符串组,
请问如何在循环外一次性输出fn[n]个字符串组???
以下是引用FireScript在2018/4/3 13:13:15的发言:
实现不了的这个。
那我循环中得到每个代码的字符串那如何一次性输出啊???请问
total:0;
str:='';
for i:=1 to THOLDCOUNT('') do
BEGIN
code:=THOLDINDEXLABEL(i,'');
}
//字符串拼接
持仓信息:'股票代码:'& code;
str:=持仓信息+'str';
//MSGOUT(1,持仓信息);
total:=total+1;
END
MSGOUT(1,str);
这样写会恒定输出一个定值
如果用str:=持仓信息+str的话返回为空
搞定了,老师,
谢谢老师
不是用str:=str+'';
而应该是用str:=str&str;
不然就是恒定返回一个值
顺便请教老师,在后台函数中,我好像没法调用持仓中的浮动盈亏(对于某品种)
那个浮动盈亏必须是已在后台交易后有记录文件才能计算?不能抓账户里面的浮动盈亏么???
DYNAINFO( 7) 用最新价和持仓均价做一个差值。 但是还需要考虑一个品种多头持仓的问题。。需要做一个判断。多多头和空头分别计算下持仓情况才行。
for i:=1 to THOLDCOUNT('') do
BEGIN
code:=THOLDINDEXLABEL(i,'');
thc:=TBUYHOLDINGEX('',code,0);
thc1:=NUMTOSTR(thc,4);
a:=TAVGENTERPRICEEX('',code);
a1:=NUMTOSTR(a,4);
MSGOUT(1,a);
END
我用TAVGENTERPRICEEX返回不了持仓均价,这是怎么回事???
老师能不能再此的基础上加个浮动盈亏的返回???
avPrice1:TAVGENTERPRICEEX2('' ,'' ,0 );//买持均价
avPrice2:TAVGENTERPRICEEX2('','',1);//买持均价
指定下方向,才能正确取值。
name:STKNAME;//持仓品种名称
thd1:TBUYHOLDINGex('','',2);//多头持仓 取得是实际总持而不是可用持仓
thd2:TSELLHOLDINGex('','',2);//空头持仓
avPrice1:TAVGENTERPRICEEX2('' ,'' ,0 );//买持均价
avPrice2:TAVGENTERPRICEEX2('','',1);//买持均价
currentPrice:DYNAINFO( 7);//当前最新价
as:DYNAINFO(209);//单位乘数
profit1:(CURRENTPRICE-AVPRICE1)*as*thd1;//多头浮动盈亏
profit2:(AVPRICE2-CURRENTPRICE)*as*thd2;//空头浮动盈亏
str:'品种名称:'+name+'\n'+'多头持仓:'+NUMTOSTR(thd1,0)+'\n'+'空头持仓:'+NUMTOSTR(thd2,0)+'\n'+'多头浮动盈亏:'+NUMTOSTR(profit1,0)+'\n'+'空头浮动盈亏:'+NUMTOSTR(profit2,0)+'\n'+'多头持仓均价:'+NUMTOSTR(AVPRICE1,0)+'\n'+'空头持仓均价:'+NUMTOSTR(AVPRICE2,0);
//MSGOUT(1,str);//这个msgout 可以在图表最后一个K上测试下输出而已。
如下效果

此主题相关图片如下:temp.png

数据的输出函数就是上面这样了。