以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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 这是最大开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手未成交平空,那么用户要怎么定义这两种仓位? 答:我每个周期结束的时候会提前撤单; |