以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  关于信号重复及其他问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=3468)

--  作者:sue
--  发布时间:2010/10/26 10:04:22
--  关于信号重复及其他问题

1、TFILTER 可以用在后台程式化交易中吗?

2、tbuy这些后台程式化函数可以用在前台图表交易上吗?

 

以下句子哪地方有错么?在图表上都没有信号。其中,MA2,MA5前面已经定义了,是均线。

3、//平空开多

IF TSELLHOLDING(1)>0 THEN
 TSELLSHORT(MA2>MA5,1,THISCLOSE);
ELSE
 TBUY(MA2>MAXX,1,THISCLOSE);

//平多开空

IF TBUYHOLDING(1)>0 THEN
 TSELL(MA2<MINN,1,THISCLOSE);
ELSE
 TBUYSHORT(MA2<MINN,1,THISCLOSE);

 

4、(这个是信号重复出现)

//平空开多

IF HOLDING<0 THEN
 SELLSHORT(MA2>MAXX,0,THISCLOSE),TFILTER;
ELSE
 BUY(MA2>MAXX,1,THISCLOSE),TFILTER;

//平多开空

IF HOLDING>0 THEN
 SELL(MA2<MINN,0,THISCLOSE),TFILTER;
ELSE
 BUYSHORT(MA2<MINN,1,THISCLOSE),TFILTER;

 

5、

//平空开多

IF HOLDING<0 THEN
 EXITSHORT:MA2>MAXX,TFILTER;
ELSE
 ENTERLONG:MA2>MAXX,TFILTER;

//平多开空


IF HOLDING>0 THEN
 EXITLONG:MA2<MINN,TFILTER;
ELSE
 ENTERSHORT:MA2<MINN,TFILTER;


--  作者:fly
--  发布时间:2010/10/26 10:17:43
--  

1.TFILTER过滤交易信号
用于交易系统公式ENTERLONG, EXITLONG, ENTERSHORT, EXITSHORT后,以ENTER和EXIT为间隔,过滤连续的同种信号

 

2.不可以

 

3.BUY不是加个T就可以变成TBUY的,注意看两个函数的参数差异.编辑公式的左边就有函数列表的.

 

4.改成以下试试

 

//平空开多

IF MA2>MAXX THEN

begin
 SELLSHORT(HOLDING<0 ,0,THISCLOSE;
 BUY(HOLDING=0,1,THISCLOSE);

end

 

//平多开空

IF MA2<MINN THEN

begin
 SELL(HOLDING>0,0,THISCLOSE);
 BUYSHORT(HOLDING=0,1,THISCLOSE);

end

 

推荐楼主多学习教程,可以系统全面的学习,并且少走弯路.


--  作者:sue
--  发布时间:2010/10/26 10:19:20
--  

谢谢啊~

那我想问一下,我原来那样写的话,问题出现在哪?


--  作者:fly
--  发布时间:2010/10/26 10:55:03
--  

除了多了个TFILTER,你的语句本身没什么问题.

只是得不到你想要的结果.因为按照你的条件的设定,它就得不断的开仓

 

你可以按我给你改后的调试调试看看(把主图里的MA均线也打开),看是否有助于你理解!

 

ma5:=ma(c,5);
ma10:=ma(c,10);

 

//平空开多

IF HOLDING<0 THEN
 SELLSHORT(ma5>ma10,0,THISCLOSE);
ELSE
 BUY(ma5>ma10,1,THISCLOSE);

//平多开空
IF HOLDING>0 THEN
 SELL(ma5<ma10,0,THISCLOSE);
ELSE
 BUYSHORT(ma5<ma10,1,THISCLOSE);

 

持仓:HOLDING,LINETHICK0;


--  作者:sue
--  发布时间:2010/10/26 10:57:29
--  

这样写为什么后台里 也是不断的重复开仓呢?我是后台程式化交易,是因为我没有登录账号,所以持仓一直都是零,只是做预警,它就会一直开仓么?

 

//平空开多

IF MA2>MAXX THEN

begin
 TSELLSHORT(TSELLHOLDING(1)>0 ,0,LMT,THISCLOSE);
 TBUY(TBUYHOLDING(1)=0,1,LMT,THISCLOSE);

end

 

//平多开空

IF MA2<MINN THEN

begin
 TSELL(TBUYHOLDING(1)>0,0,LMT,THISCLOSE);
 TBUYSHORT(TSELLHOLDING(1)=0,1,LMT,THISCLOSE);

end


--  作者:fly
--  发布时间:2010/10/26 11:19:01
--  

跟你说了,多学习教程,可以系统全面的学习,少走弯路.

你这前后台整个还是一个一团糨糊呢.最好等前台学的通了,再去尝试碰后台,因为后台需要楼主学会调试.

 

帐号都没登,不会开仓.

即使登了帐号,你只预警,不下单,也不会开仓.

[此贴子已经被作者于2010-10-26 11:22:40编辑过]

--  作者:sue
--  发布时间:2010/10/26 14:13:33
--  

之前看了一点,有点糊了。~

重返锅炉再学习吧。