以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]为什么它在图表上每根K线均显示有开平仓  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=29891)

--  作者:lcgs005
--  发布时间:2012/10/17 11:34:24
--  [求助]为什么它在图表上每根K线均显示有开平仓

在下面公式中,想通过状态值与真实仓位来控制只开一次多单,(状态值与仓位开仓与根据金叉点开仓相比的好处在于可以随时检验是否有漏单并纠错)

但在实际测试时,在图表上每根K线上都显示开多信号,不知什么原因?

 

ma1:=ma(c,5);

ma2:=ma(c,10);

jczt:ma1>ma2;

//

aa:=tholding;

a:=holding;

//

if(aa=0 and a>0) then sell(1,0,market);//平仓后保证虚拟帐户资金可以开多单

if(aa=0 and a<0) then sellshort(1,0,market);//平仓后保证虚拟资金帐户可以开空单

 

if(jczt and aa=0) then buy(1,1,market);//满足条件且真实帐户上无仓位时开一次多单


--  作者:every
--  发布时间:2012/10/17 13:27:25
--  

问题在于

THOLDING是与你真实持仓一致的函数,但仅限在最后一根K线上----在历史K线上都是0

 

从你的代码推测你的意图: 

1.会手工平仓,手工平仓之后希望虚拟帐户马上帮你也显现出来

 

2.开仓条件为:ma1>ma2

   而非5日均线上穿10日均线


--  作者:lcgs005
--  发布时间:2012/10/17 14:08:53
--  
以下是引用every在2012-10-17 13:27:25的发言:

问题在于

THOLDING是与你真实持仓一致的函数,但仅限在最后一根K线上----在历史K线上都是0

 

从你的代码推测你的意图: 

1.会手工平仓,手工平仓之后希望虚拟帐户马上帮你也显现出来

 

2.开仓条件为:ma1>ma2

   而非5日均线上穿10日均线

是的,会手工平仓,手工平仓后希望下一次满足条件时虚拟帐户能自动开仓;

2也是对的,希望开仓条件是ma1>ma2的状态值,但配合仓位的检查,它只开一次仓

能否详细说说如何修改代码,做到这两点,谢谢