以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  后台程序重复开仓问题如何解决  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=143273)

--  作者:何拥华
--  发布时间:2016/11/23 15:20:24
--  后台程序重复开仓问题如何解决

OPENO:=DYNAINFO(4);pl:=ref(l,1);

kd1:=ref(c>openo,1);

thold:=ref(tholding,1);

kdc:=TSUBMIT(1);//开多

if kd1 and r1>1  and kdc=0 then
begin
 tbuy(pl<=pc and thold=0 and tholding=0,1,lmt,min(o+dw,pc-dw));
 tbuy(tholding<2 and thold<2,1,lmt,min(o+dw,pc-3*dw));
end

这是最大开2手的后台程序写法,可是总是会开出来超过2手的仓位,好像是识别不了持仓,实盘也试过,还是不行,怎么解决啊,急....


--  作者:jinzhe
--  发布时间:2016/11/23 15:40:51
--  

如果有1手未成交开空,如果有1手未成交平空,那么用户要怎么定义这两种仓位?

[此贴子已经被作者于2016-11-23 15:41:07编辑过]

--  作者:何拥华
--  发布时间:2016/11/23 15:41:30
--  

还有,我现在正在开发高频程序,可是每个周期后台只出一次信号,比如我想让一个周期重复开平仓,怎么写;

pc:=ref(c,1);po:=ref(o,1);dw:=mindiff;

kk1:=pc>po;

 

if kk1 then tbuy(tholding=0,1,lmt,pc+dw);

if kk1 then tbuy(tholding>-2 and tholding<0,1,lmt,pc+2*dw);

 

tsell(tholding=-1 ,1,lmt,pc-dw);

tsell(tholding=-2,1,lmt,pc-2*dw);

如何写才能让它持仓最大=2手,且可以在1根K线里按这个逻辑反复挂单并开平仓。我测试下来,总是会开出来超过2手,而且每个周期只能挂一次单,我后台设置的每1秒轮询;

到底问题出在哪里?我在开仓条件里设置上周期持仓=0都不行,还是会开出多余的仓位


--  作者:何拥华
--  发布时间:2016/11/23 15:45:07
--  
我加了,多单开多未成交单=0
--  作者:jinzhe
--  发布时间:2016/11/23 15:45:56
--  

首先请回答下我的问题

然后ref来获取上周期持仓是没用的,tholding是没有历史值的


--  作者:王锋
--  发布时间:2016/11/23 15:47:14
--  
tholding 是你真实的持仓,如果你是高频扫描,那么从你报单到最后成交是需要时间的,建议你高频工作模式下,自己用变量记录开仓的理论持仓量
--  作者:何拥华
--  发布时间:2016/11/23 15:48:03
--  

kdc:=TSUBMIT(1);//未成交的开多挂单

 

开多仓条件中 kdc=0 也就是没有未成交的开多挂单


--  作者:王锋
--  发布时间:2016/11/23 15:50:48
--  

那你用DEBUGFILE记录一下日志,看一下。

另外

tbuy(pl<=pc and thold=0 and tholding=0,1,lmt,min(o+dw,pc-dw));

这里你改成 <2试试


--  作者:jinzhe
--  发布时间:2016/11/23 16:09:10
--  
tbuy(pl<=pc and tbuyholdingex(\'\',\'\',2)=0 and TREMAINQTY(1,\'\',\'\')=0,1,lmt,min(o+dw,pc-dw));
tbuy(tbuyholdingex(\'\',\'\',2)<2 and TREMAINQTY(1,\'\',\'\')=0,1,lmt,min(o+dw,pc-3*dw));
你这样写试试呢
--  作者:何拥华
--  发布时间:2016/11/23 16:11:22
--  

如果有1手未成交开空,如果有1手未成交平空,那么用户要怎么定义这两种仓位?

答:我每个周期结束的时候会提前撤单;