以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]请教如何把连续开仓的同方向信号过滤  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=288)

--  作者:kedeguo
--  发布时间:2009/11/27 21:38:18
--  TB的早盘突破公式转金字塔公式

下面是我的一个多头排列的交易模型,在文华财经里面是自动过滤的,金字塔里面满足开仓条件,会不断发出同方向的买入或者卖出开仓信号,这个应该怎么处理。

资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓:HOLDING,LINETHICK0;
ma3:=ma(c,3);
ma5:=ma(c,5);
ma8:=ma(c,8);
ma13:=ma(c,13);
dt:=c>ma3 and ma3>ma5 and ma5>ma8 and ma8>ma13,0;
kt:= c<ma3 and ma3<ma5 and ma5<ma8 and ma8<ma13,0;
if dt then begin
sellshort(holding<0,holding,0);
buy(dt,10%,0),tfilter;
end;
if kt then begin
sell(holding>0,holding,0);
buyshort(kt,10%,0),tfilter;
end;


--  作者:金字塔
--  发布时间:2009/11/27 21:46:57
--  

 

if dt then begin
sellshort(holding<0,holding,0);
buy(dt and NOT(TYPE(1)=1),10%,0),tfilter;
end;
if kt then begin
sell(holding>0,holding,0);
buyshort(kt and NOT(TYPE(1)=3),10%,0),tfilter;
end;

[此贴子已经被作者于2009-11-29 12:27:09编辑过]

--  作者:kedeguo
--  发布时间:2009/11/27 22:00:54
--  
拷用你的公式,没有信号显示。
--  作者:kedeguo
--  发布时间:2009/11/27 22:31:53
--  
我照你改的,发现用了以后信号全部都没有了。是我软件问题吗?
--  作者:金字塔
--  发布时间:2009/11/28 8:54:44
--  

对不起!当时手误,参见代码中蓝色部分

另外,tfilter过滤交易信号,用于交易系统公式ENTERLONG, EXITLONG, ENTERSHORT, 在这里无效

 

资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓:HOLDING,LINETHICK0;
ma3:=ma(c,3);
ma5:=ma(c,5);
ma8:=ma(c,8);
ma13:=ma(c,13);
dt:=c>ma3 and ma3>ma5 and ma5>ma8 and ma8>ma13,0;
kt:= c<ma3 and ma3<ma5 and ma5<ma8 and ma8<ma13,0;

if dt then begin
sellshort(holding<0,holding,0);
buy(dt and NOT(TYPE(1)=1),10%,0);
end;
if kt then begin
sell(holding>0,holding,0);
buyshort(kt and NOT(TYPE(1)=3),10%,0);
end;

[此贴子已经被作者于2009-11-29 12:26:33编辑过]

--  作者:kedeguo
--  发布时间:2009/11/28 9:42:17
--  [求助]为什么只用tfilter函数不能过滤?
谢谢,如题!为什么用了这个函数,连续同方向的开仓信号还是有呢?
--  作者:kedeguo
--  发布时间:2009/11/28 9:45:16
--  [求助]后面加逗号,加0是什么意思?

dt:=c>ma3 and ma3>ma5 and ma5>ma8 and ma8>ma13,0;
kt:= c<ma3 and ma3<ma5 and ma5<ma8 and ma8<ma13,0;

谢谢!


--  作者:金字塔
--  发布时间:2009/11/28 9:48:48
--  

tfilter过滤交易信号,仅用于交易系统函数ENTERLONG, EXITLONG, ENTERSHORT

 

BUY等语句用NOT(TYPE(1)=1),NOT(TYPE(3)=1)过滤,如图所示

 

图片点击可在新窗口打开查看


--  作者:金字塔
--  发布时间:2009/11/28 9:53:08
--  

仅过滤几个信号,也可以用

dt1:=FILTER(dt,N);{过滤信号后N个周期的信号}

buy(dt1 ,10%,0);


--  作者:金字塔
--  发布时间:2009/11/28 10:03:56
--  
以下是引用kedeguo在2009-11-28 9:45:16的发言:

dt:=c>ma3 and ma3>ma5 and ma5>ma8 and ma8>ma13,0;
kt:= c<ma3 and ma3<ma5 and ma5<ma8 and ma8<ma13,0;

谢谢!

加0是 从你的代码拷贝过来的,我没注意,可去掉。