以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  后台多账户下单的问题请教  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=96711)

--  作者:dwjgwsm
--  发布时间:2016/4/25 16:50:29
--  后台多账户下单的问题请教
A:主账户,钱多一些
B:跟随账户,钱少一些

如果A与B的下单比例为1:0.8,那么当A账户下2手的时候,B账户下0.8*2=1.6,也就是1手。

                                          如果A账户下1手的时候,我希望B账户无论如何最低也要下1手。如何实现?

--  作者:王锋
--  发布时间:2016/4/25 16:51:24
--  
这个你后台的下单数量做下判断就可以,当计算的下单数量小于1手时调整为1手就可以了
[此贴子已经被作者于2016/4/25 16:51:59编辑过]

--  作者:dwjgwsm
--  发布时间:2016/4/25 17:11:29
--  
是不是这样的:
Tbuy(多开条件,max(手数,1),MKT,0,0,\'\',品种);

那么,如果我想B账户的1.6手不是向下取整为1手,而是四舍五入为2手.那么我只需要这样写就可以了?
Tbuy(多开条件,round(max(手数,1)),MKT,0,0,\'\',品种);

--  作者:wenarm
--  发布时间:2016/4/25 17:12:49
--  

你可以通过算法计算出开仓手数。然后通过这个资金多的手数计算资金少的。手数你用if语句判断,如果小于1,就将其手数从新设置为1.

手数:(TCASH*0.2)/(c*MULTIPLIER*TACCOUNT(41)); //20%资金开仓手数

资金少的手数:INTPART(a*0.8);

 

[此贴子已经被作者于2016/4/25 17:16:31编辑过]

--  作者:dwjgwsm
--  发布时间:2016/4/25 17:18:01
--  
因为是多账户交易,我没办法在策略中为每个账户去计算INTPART(a*0.8);

按照王锋的意思,似乎只要简单地按照3楼的写法就能实现.不知道我理解的对不对?

--  作者:dwjgwsm
--  发布时间:2016/4/25 17:21:38
--  
 另外,我的手数不是像4楼那样计算的,而是从其他策略中引用过来的一个值,你可以视为一个常量
[此贴子已经被作者于2016/4/25 17:22:50编辑过]

--  作者:wenarm
--  发布时间:2016/4/25 17:24:12
--  
 可以,