系统交易论坛 - 开拓者期货自动交易平台's Archiver

dhhbeitang 发表于 2010-5-24 21:25

能定制一个确保先平仓,后开仓的buy/sellshort系统函数吗?

能定制一个确保先平仓,后开仓的buy/sellshort系统函数吗?

欲速不达 发表于 2010-5-24 22:23

平仓和开仓分开写,在平仓后用通过设置记录时间的全局变量来记录平仓的时间,在设定一个等待时间如10秒,写一句小于等待时间就返回就应该可以解决

lh948 发表于 2010-5-25 08:31

加入持仓判断。
例如:
持多仓时
if(marketposition==1 && 平多仓条件)
{
         sell(..);
}
if(marketposition==0)
{
         sellshort(..);
}

dhhbeitang 发表于 2010-5-25 10:53

谢谢楼上两位,问题是要确保。没有实际帐户仓位检测,就做不到这一点。我加入了实际仓位检测,又遭遇了倒数第二Bar重复发单问题。头痛!!

欲速不达 发表于 2010-5-26 11:51

检测账户实际持仓要用A函数才能检测,即A_BuyPosition()>0 多仓大于0;marketposition只是图表上多空方向判别,但A函数对buy,sell无用,这时只能用A_SendOrder进行平仓了

lh948 发表于 2010-5-26 13:41

回复 5# 欲速不达 的帖子

是的,你的理解正确的
A_SendOrder才能操作实际的账户,buysell取到的持仓是根据图表上的信号的
使用buysell时,用CurrentContracts取得持仓合约数,正数为多仓,负数为空仓

dhhbeitang 发表于 2010-5-26 23:11

谢谢楼上两位。实盘测试,A_totalposition和Buy/sell配合可以达到先平后开的目标。但不要buy/sell的倒数第二Bar发单问题解决不了。看来只能改A_sendorder了。

奇怪,直接反手时,buy/sell不存在倒数第二Bar发单问题。引入A_totalposition后就发生问题了。TB的倒数第二Bar重算绝对不是简单的重新计算一遍,吗marketposition, currentbar==barcount-2等过滤控制都无法屏蔽重复发单。

真得建议TB重新考虑倒数第二Bar重算的机制,个人认为弊大于利。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.