以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  关于比例下单语句,求解  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=99755)

--  作者:skylands
--  发布时间:2016/6/28 21:42:44
--  关于比例下单语句,求解
比例下单手数,我用的如下代码:SS:INTPART(((BJ*(BL/100))/(ref(c,1)*MULTIPLIER*TACCOUNT(41)))),linethick0; 
其中BJ代表本金,BL代表下单比例。设了这两个参数后,我就可以任意根据当时的账户实际资金来调整下单数量。但实盘中发现一个问题:
就是当平仓的时候,经常平不干净,总会留那么几手不平,这是因为随着行情上涨,ref(c,1)数值变大,计算出来的SS手数变小,到高位平仓时的下单手数小于低位开仓时的手数。
我不明白的是,平仓语句中我用的是holding,系统并没有自动判断出开仓时的手数,而是重新按ref(c,1)来计算持仓的手数,这样计算出来的持仓与实际持仓是有差距的,因为ref(c,1)的值不一样了。
请问有什么解决之道?谢谢

--  作者:王锋
--  发布时间:2016/6/28 21:53:32
--  
http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=99738
--  作者:skylands
--  发布时间:2016/6/29 8:31:08
--  
我不太确定荐贴中的情况与我是否同一回事。烦请进一步解惑:
SS:INTPART(((BJ*(BL/100))/(ref(c,1)*MULTIPLIER*TACCOUNT(41)))),linethick0;
sell(翻空信号 and holding>0,holding,thisclose),pertrader;   
1. 上述语句中,平仓语句中加了pertrader控制符后,就能确保全部平干净所持仓位?(在价格高位时平掉低位时买进的仓位)
2. 这个pertrader控制符的内在原理是什么,是代表着会在下单时实时扫描账户的实际持仓吗?


--  作者:wenarm
--  发布时间:2016/6/29 8:41:43
--  

1.

2.全平持仓,你可以直接在手数位置填0,它代表实际持仓全平。sell(翻空信号 and holding>0,0,thisclose)。

或者你的手数使用百分比开仓,而不用自己程序化去计算手数。pertrader函数的说明,其实就是实际操作真实的持仓


--  作者:skylands
--  发布时间:2016/6/29 8:49:49
--  
了解了0的作用。我上述第一个问题的答案是YES吗?
如果用0,我可能有一个麻烦,那就是我多策略同时值守交易,如果填0应会把别的策略的持仓都给平掉吧?

--  作者:pyd
--  发布时间:2016/6/29 8:52:44
--  

1,全平写0,

SS:INTPART(((BJ*(BL/100))/(ref(c,1)*MULTIPLIER*TACCOUNT(41)))),linethick0;
sell(翻空信号 and holding>0,0,thisclose);

2,是的


--  作者:skylands
--  发布时间:2016/6/29 8:52:47
--  
我希望的是能准确判断策略中的持仓,并准确平掉该策略的实际持仓。如何能做到?
--  作者:pyd
--  发布时间:2016/6/29 8:54:25
--  

平掉该策略的是holding,平掉该品种所有持仓是写0


--  作者:skylands
--  发布时间:2016/6/29 9:15:16
--  
这就回到我一开始的问题了:写holding时无法平干净,总会留那么几手,就因为价格变动之后计算的结果变了,我一直以为holding会自动判断开仓时所计算出来的手数,目前来看似乎是在平仓时重新按当前价位计算手数……有没有什么好建议解决这个问题?
--  作者:wenarm
--  发布时间:2016/6/29 9:20:29
--  

可以采用全局变量进行记录手数手数变化,在全平时,只要读取当前的全局变量记录的持仓情况