以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 平仓出现资金不足 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=2771) |
-- 作者:paulshen -- 发布时间:2010/9/9 12:11:21 -- 平仓出现资金不足 实盘,后台,最新版 在只有一手单子的情况下,发出平仓指令后,出现资金不足的错误,下面交易状态窗口显示的信息: 2010-09-09 11:17:57 2010-09-09 11:17:57 2010-09-09 11:17:57
该窗口没有显示开仓指令,似乎开仓指令还没有发出。监控窗口里显示了开仓指令,成交数量为0。
我的平开仓公式如下: if BPK then Begin 其中,S1=3,P=mindiff
请帮忙看看什么原因。会是开仓指令在平仓未结束就发出吗? |
-- 作者:paulshen -- 发布时间:2010/9/9 12:21:03 -- 还有我设的扫描间隔为2秒 |
-- 作者:admin -- 发布时间:2010/9/9 13:18:04 -- 2010-09-09 11:17:57 2010-09-09 11:17:57 2010-09-09 11:17:57
从以上报单看出,你得系统再没有平仓成交的情况就去同时开仓,资金当然会不足了。 还有你的代码存在致命缺陷if THOLDING=0 then 等写法是图表交易用到的,后台交易不要这么使用,具体请参考置顶帖子公式常见问题。 |
-- 作者:paulshen -- 发布时间:2010/9/9 13:44:25 -- 请教 我开仓用了orderqueue, 在这里没有起作用吗? |
-- 作者:paulshen -- 发布时间:2010/9/9 14:08:05 -- 平仓出现资金不足 你让我看应该是问题15吧: 15、有关后台自动交易THOLDING的使用 初学者在使用后台自动交易时,通常认为将函数前简单加T就可以,但实际不行的,比如: tSELL(bp and THOLDING>0,0,LMT,C); tSELLSHORT(sp and THOLDING<0,0,LMT,C); tBUY(bk and THOLDING=0,1,LMT,C); tBUYSHORT(sk and THOLDING=0, 1,LMT,C);
THOLDING与图表HOLDING最大的不同在于,THOLDING是与你真实持仓一致的函数,只有当我们的委托下单成交后才会有所变化,而HOLDING是虚拟持仓,BUY执行过后立即变化。 由于我们前面的代码在执行了平仓操作后,THOLDING不会马上变成0,故会导致TBUY的THOLDING=0条件不被成立,导致没有反手信号。 正确的反手写法
if bp > 0 and THOLDING>0 then begin tSELL(1,0,MKT),ORDERQUEUE; tBUYSHORT(1, 1,MKT),ORDERQUEUE; end
if sp > 0 and THOLDING<0 then begin tSELLSHORT(1,0,MKT),ORDERQUEUE; tBUY(1,1,MKT),ORDERQUEUE; end
清注意上述代码使用了市价委托,如在CTP接口上模拟交易,请注意一定要在上期所品种下进行 ============== admin,你说的是这条吧?嗯,我再好好看看。有个问题: 按照上面说的,由于我的开仓指令判断了Tholding, 平仓指令没有执行完前,应该没有发出才对,怎么会出现平仓刚发出,立刻就发出开仓指令呢?
|
-- 作者:admin -- 发布时间:2010/9/9 14:16:33 -- Tholding 是判断当前的可用持仓量,如果你发出了平仓指令后,即便没有成交,也会被扣掉。 如果你只希望得到当前的实际持仓不包含委托扣除,那么请用THLDONG2 |
-- 作者:paulshen -- 发布时间:2010/9/9 14:17:33 -- 还有,如果我的系统不是反手的话,我是必须判断THolding是否为零的,为什么说If tholding=0 写法不对呢?在这种情况下,应该怎么做呢? |
-- 作者:董小球 -- 发布时间:2010/9/9 14:19:25 -- (TBUYHOLDING(0)+TREMAINQTY(2 ,\'\',\'\' ))<>0 |
-- 作者:paulshen -- 发布时间:2010/9/9 14:43:30 -- 嗯,看来需要看的更加仔细一点。我再改改试试吧,我可是真金白银的在测啊! 还有一个问题,如果我想用限价指令,问题15中的示例指令应该怎么改好?问题15中提到,用了orderqueue,就必须用市价指令。 |
-- 作者:wattwei -- 发布时间:2010/9/9 14:46:19 -- 楼主,如果是真金白银地测试,建议搞便宜点的品种。测试好了再推广 |