以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=167158)

--  作者:D
--  发布时间:2018/12/17 16:29:53
--  [求助]修改成按次交易
以下部分是引用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

--  作者:FireScript
--  发布时间:2018/12/17 16:48:46
--  
 这个只能根据你图表上的开仓信号的次数来进行处理了。没办法按照实际下单次数来处理。另外统计开仓次数的话,也需要指定下这个统计的范围,比如当日开仓数量或者N个周期的开仓数量,然后还有就是这个开仓次数是否是多空开仓都累计进去的?还是区分开?
--  作者:D
--  发布时间:2018/12/18 14:08:04
--  
简单来说,就是引用的模型开仓数量不一样而已,其他都一样,这个怎么处理,很简单的阿!!
--  作者:FireScript
--  发布时间:2018/12/18 14:58:23
--  
确认下,你这里说的“我想改成原模型下单一次开仓p1,下单2次开仓p2这样的,如何修改?”  原模型是指jszs模型还是当前运行的这个模型?

--  作者:D
--  发布时间:2018/12/18 15:03:40
--  
原模型是指jszs模型!!!
--  作者:FireScript
--  发布时间:2018/12/18 15:11:54
--  
 
 那就可以直接在JSZS的代码里面做处理,在jszs代码里面把开仓次数做个记录或统计,然后根据开仓次数来对ppp进行赋值。

比如这样jszs下:

cs:TOTALDAYTRADE;//这里取当日交易次数为例子


然后你在当前模型把这个结果引用过来:
cs:=STKINDIEX(\'AU31\',\'JSZS.cs\',0,21,0,999); 

再根据cs的值对下单手数进行处理。你上面代码里面就有对下单手数的处理逻辑,你把cs的值的判断引入进去就可以了。思路就是这样的,你可以尝试进一步处理下细节。