以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  请问如何拼接字符串组  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=162513)

--  作者:hj007s
--  发布时间:2018/4/3 12:27:52
--  请问如何拼接字符串组
请教,我定义字符串初始数组为fn[i]:=\'\';
然后在循环里面赋值fn[i]:=某字符串

然后我应该是得到fn[n]个字符串组,
请问如何在循环外一次性输出fn[n]个字符串组???

--  作者:FireScript
--  发布时间:2018/4/3 13:13:15
--  
实现不了的这个。

--  作者:hj007s
--  发布时间:2018/4/3 13:39:12
--  
以下是引用FireScript在2018/4/3 13:13:15的发言:
实现不了的这个。

那我循环中得到每个代码的字符串那如何一次性输出啊???请问


--  作者:FireScript
--  发布时间:2018/4/3 13:55:31
--  
 
str:\'\';

for i=1 downto 10 then
begin
str:=str+\'\';//每次循环拼接字符串
end

循环内拼接字符串即可。

--  作者:hj007s
--  发布时间:2018/4/3 14:08:11
--  
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的话返回为空

--  作者:hj007s
--  发布时间:2018/4/3 14:11:26
--  
搞定了,老师,
谢谢老师
不是用str:=str+\'\';
而应该是用str:=str&str;
不然就是恒定返回一个值


顺便请教老师,在后台函数中,我好像没法调用持仓中的浮动盈亏(对于某品种)
那个浮动盈亏必须是已在后台交易后有记录文件才能计算?不能抓账户里面的浮动盈亏么???

--  作者:FireScript
--  发布时间:2018/4/3 14:16:11
--  
 DYNAINFO(  7) 用最新价和持仓均价做一个差值。 但是还需要考虑一个品种多头持仓的问题。。需要做一个判断。多多头和空头分别计算下持仓情况才行。

--  作者:hj007s
--  发布时间:2018/4/3 14:20:49
--  
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返回不了持仓均价,这是怎么回事???

老师能不能再此的基础上加个浮动盈亏的返回???

--  作者:FireScript
--  发布时间:2018/4/4 16:40:01
--  
 avPrice1:TAVGENTERPRICEEX2(\'\' ,\'\' ,0 );//买持均价
avPrice2:TAVGENTERPRICEEX2(\'\',\'\',1);//买持均价


指定下方向,才能正确取值。

--  作者:FireScript
--  发布时间:2018/4/4 17:13:26
--  
 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
图片点击可在新窗口打开查看


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