等级: 专业版
- 注册:
- 2022-1-11
- 曾用名:
|
楼主 |
发表于 2023-5-24 10:29
|
显示全部楼层
我现在进展到可以统计出持仓亏损单的数量n,但是遇到一个问题:一旦满足条件if n<=5的时候,所有监控板块里面的品种都会开仓,实际上我想要的效果是比如轮询到玉米,只要玉米一个品种开仓,然后其它品种一个个的轮着来判断n<=5,下面是我的代码,看一下能否帮忙修改达到我要的效果:
//每次轮询前先统计亏损仓位的个数
TH:=THOLDCOUNT('');
TEMP_STR:='';//保存品种代码集合
j:=0;
FOR I=1 TO TH do
BEGIN
HLABEL:= THOLDINDEXLABEL(I,'');
//判断当前代码集合中是否已经存在,不存在则进行统计。存在则不进入统计
if STRFIND(TEMP_STR,','&HLABEL,1)=0 then begin
//将不在代码集合中的品种添加到代码集合中。
TEMP_STR:=STRCAT( TEMP_STR, ','&HLABEL );
if TBUYHOLDINGEX('',HLABEL,2)>0 and (DYNAINFO2(7 ,HLABEL)-TAVGENTERPRICEEX2('',HLABEL,0))/TAVGENTERPRICEEX2('',HLABEL,0)*100<=0.1 then
j:=j+1;
if TSELLHOLDINGEX('',HLABEL,2)>0 and (TAVGENTERPRICEEX2('',HLABEL,1)-DYNAINFO2(7 ,HLABEL ))/TAVGENTERPRICEEX2('',HLABEL,1)*100<=0.1 then
j:=j+1;
END
end
lossnum:J;
DEBUGFILE('E:\SHIPAN.TXT',stklabel+'lossnum数量:%.0f',lossnum);
//*************开仓模块*****************
//开多
if j<=4 then BEGIN
if tbuyholdingex('',STKLABEL,2)=0 then BEGIN
TBUY(1,手数,LMT,close);
goto QUITLINE; //开完仓的品种不需要再执行后面的语句
END
END |
|