以下部分是引用JSZS模型的持仓下单到其他品种,但是我不想手数完全相同
我想改成原模型下单一次开仓p1,下单2次开仓p2这样的,如何修改?
Globalvariable:hold=drawnull;
//蓝色部分改为你自己的模型
ppp1:=STKINDIEX('AU31','JSZS.ppp',0,21,0,999);
ppp800101:=ppp1;
order:=ppp800101-holding;
if order>0 then begin
pc:=min(abs(min(holding,0)),order);
kc:=order-pc;
sellshort(pc>0,pc,thisclose);
buy(kc>0,kc,thisclose);
end
if order<0 then begin
pc:=min(max(holding,0),abs(order));
kc:=abs(order)-pc;
sell(pc>0,pc,thisclose);
buyshort(kc>0,kc,thisclose);
end
这个只能根据你图表上的开仓信号的次数来进行处理了。没办法按照实际下单次数来处理。另外统计开仓次数的话,也需要指定下这个统计的范围,比如当日开仓数量或者N个周期的开仓数量,然后还有就是这个开仓次数是否是多空开仓都累计进去的?还是区分开?
简单来说,就是引用的模型开仓数量不一样而已,其他都一样,这个怎么处理,很简单的阿!!
那就可以直接在JSZS的代码里面做处理,在jszs代码里面把开仓次数做个记录或统计,然后根据开仓次数来对ppp进行赋值。
比如这样jszs下:
cs:TOTALDAYTRADE;//这里取当日交易次数为例子
然后你在当前模型把这个结果引用过来:
cs:=STKINDIEX('AU31','JSZS.cs',0,21,0,999);
再根据cs的值对下单手数进行处理。你上面代码里面就有对下单手数的处理逻辑,你把cs的值的判断引入进去就可以了。思路就是这样的,你可以尝试进一步处理下细节。