以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  测试的怪问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=12093)

--  作者:TIANS
--  发布时间:2012/6/1 21:37:40
--  测试的怪问题
新编了个公式5月1号到6月1号测试有结果 4月1号到6月1号没结果 3月1号到6月1号也可以 1月1号到6月1号有没结果了 程序中平仓条件中用了ENTERBARS ENTERPRICE 删掉后测试没问题。 或者加一个收盘平仓测试也没问题。想不出到底是咋回事,请老师们解决了,以前也碰到类似的问题。
--  作者:TIANS
--  发布时间:2012/6/2 7:18:49
--  
在全局变量赋值条件中加入islastbar 测试结果出来 可图表上没有买卖信号了 晕
--  作者:阿火
--  发布时间:2012/6/2 21:04:16
--  

自言自语?

把代码贴出来啊

 


--  作者:TIANS
--  发布时间:2012/6/3 10:37:09
--  
VARIABLE:做空控制=0;
//********************************开空条件 开空条件***********************************************
开空条件:做空控制=0 AND C-LLV(L,30)>8;

//*******************************平空条件
空平止盈1:做空控制<>0 AND c<ENTERPRICE-20;
空平止盈2:做空控制<>0 AND c<ENTERPRICE-7 AND ENTERBARS<50;
空平止损:=做空控制<>0 AND C>ENTERPRICE+10;
平空条件:=空平止盈1 OR 空平止盈2 OR 空平止损;

//开空委托程序
IF 开空条件 AND 交易时间 THEN//开空
   BEGIN
   BUYSHORT(1,交易数量,MARKET),ORDERQUEUE;
   IF 开空条件 THEN 做空控制:=1;//AND ISLASTBAR
END

//平空委托程序
IF 平空条件  THEN 
BEGIN
  SELLSHORT(1,0,MARKET),ORDERQUEUE;
  做空控制:=0;
END

//强制平仓
IF TYPE(1) AND ENTERPRICE-CLOSE>=3 THEN 
   BEGIN
   SELL(HOLDING>0,HOLDING,MARKET),ORDERQUEUE;
END

IF TYPE(3) AND CLOSE-ENTERPRICE>=3 THEN 
   BEGIN
   SELLSHORT(HOLDING<0,HOLDING,MARKET),ORDERQUEUE;
   做空控制:=0;
END
//收盘前全部平仓
//IF TIME>150000  THEN 
//BEGIN
//  SELL(1,0,MARKET);
//  SELLSHORT(1,0,MARKET);
//  空反弹空开关:=0;
//END


测试时间段不同 有的测得出 有的测不出 如果加上收盘全部平仓就没问题了 不知道问题出在哪? 请大侠解答


--  作者:TIANS
--  发布时间:2012/6/3 10:38:45
--  
是1分钟周期的
--  作者:TIANS
--  发布时间:2012/6/6 8:43:56
--  
公式贴了几天了 有劳老师们看一下
--  作者:rushtaotao
--  发布时间:2012/6/6 8:56:27
--  
我加载了你的公式,连信号都没?
--  作者:just
--  发布时间:2012/6/6 8:58:40
--  

代码问题很多啊

 


--  作者:rushtaotao
--  发布时间:2012/6/6 9:00:35
--  
要不把你的思路写出来 我们好修改
[此贴子已经被作者于2012-6-6 9:01:51编辑过]

--  作者:just
--  发布时间:2012/6/6 9:04:51
--  
IF 开空条件 AND 交易时间 THEN//开空
   BEGIN
   BUYSHORT(1,交易数量,MARKET),ORDERQUEUE;
   IF 开空条件 THEN 做空控制:=1;//AND ISLASTBAR
  //改为 做空控制:=1;
END

//强制平仓
IF TYPE(1) AND ENTERPRICE-CLOSE>=3 THEN 
IF TYPE(3) AND CLOSE-ENTERPRICE>=3 THEN 
这两句语句里的type(1)和type(3)用法有问题。不清楚楼主想表达什么?
是想表示之前有开多开空情况的话,应该这么写,type(1)=1 ,type(3)=1;