作者:shaq
点击:
回复:

如何使买入信号、卖出信号一一对应

在设计公式时,我们经常遇到这样的问题,如何使买卖信号一一对应?
  比如下面的代码:
input:n(26,5,300),p(2,0.1,10);
close;
mid :  ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);

tjb:=cross(close,lower);
tjs:=cross(upper,close);
drawicon(tjb,close,4);
drawicon(tjs,close,5);

图示如下,可以看出,买入信号连续发出多次后,才出现卖出信号,卖出信号连续发出多次后,才发出买入信号。

obj_ID += ",message7486105";

 

如何过滤连续的买入、卖出信号,使买入后只要没有发出卖出信号,就不再发出买入信号;同样,卖出后只要没有出现买入信号,就不再发出卖出信号。即买入、卖出信号一一对应。
  容易想到的是使用过滤函数filter(),但这个函数是难以实现的,因为未来有多少个连续的买入(或卖出)信号是未知的。
  另一种方法是,从前一次卖出(或买入)信号开始累加买入(或卖出)信号,如果累加次数等于1,则发出真正的买入(或卖出)信号。

  但这里还有一个问题,如果首次信号是卖出信号的话,也应该过滤,因为没有买入哪来卖出?应让首次信号是买入信号才合理。方法是,在第1根K线的位置,虚拟一个卖出信号。
  以下是实现上述想法的常规函数代码:

input:n(26,5,300),p(2,0.1,10);
close;
mid :  ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);

//以下为常规函数处理代码//
tjb:=cross(close,lower);//初始买入信号,可换成其它任意买入条件
tjs:=cross(upper,close);//初始卖出信号,可换成其它任意卖出条件

{以下代码,使买、卖信号一一对应}
tsb:=barssince(tjb);
tss:=barssince(tjs);
if tjs[datacount]<tjb[datacount] then begin
  a:=setlbound(tjs,1);
  tjs:=tjs or barpos=1;
end;
tjbuy:=count(tjb,barslast(tjs))=1 and tjb;  //买入信号
tjsell:=count(tjs,barslast(tjb))=1 and tjs; //卖出信号

drawicon(tjbuy,low,4);
drawicon(tjsell,high,5);


图示如下:

 

从上图可以看出,原来连续出现的买入、卖出信号,都消失了。达到了我们预定的目的。

  大家有兴趣的话,可以试试以下问题
  1、如果使用飞狐内置循环语句,如何实现以上代码?
  2、如果要求,允许连续出现2次买入信号或卖出信号,代码应该怎么编?

作者:shaq  2008-1-7 12:58:05  [回复此主题] 
 2楼   回复:如何使买入信号、卖出信号一一对应
友交流群:3397638
作者: 60.28.166.*    2008-1-12 14:37:56  [回复此主题]
 3楼   回复:如何使买入信号、卖出信号一一对应
怎么使用?
作者: 60.28.167.*    2008-1-13 0:31:23  [回复此主题]
 4楼   回复:如何使买入信号、卖出信号一一对应
怎么就不说说使用?  
作者: 219.136.83.*    2008-1-23 18:21:03  [回复此主题]
 5楼   回复:如何使买入信号、卖出信号一一对应

中国经济虽然要经受多事之秋的时刻,但是,我们完全有理由相信,中国能够做到经济的软着陆,有能力做到中国经济平稳健康的发展。

  奥运在即,四川地震,我们怀着即激动又惶恐的心情面对中国的股市。没有了07年的一路高歌,也没有了08年初的一路狂泻。我们对待投资更加的趋于理性。也真是因为理性投资的存在,所以,我们有必要相信,3000点将是一个绝好的进入机会。

  有人告诉我,6000点进入的是疯子,3000点不进入的是傻子。话有点偏激,但是也说明了一个道理,那就是,3000点这样的点位进入,等待的就是赚钱的机会。

  而如今的中国股市之所以令人灰心意冷,最主要的原因不就是存在一批不理性投资人在高位的进入吗?高位进入,一当被套牢就开始委屈,但是他们不曾考虑到,为什么自己会被套牢,为什么股市会下挫。

  被套牢的人多了,开始唾骂股市;股市形成了一个很好的进入点,也开始被许多人说成了“资金的坟墓”。何其哀哉!!

  机会就摆在你面前,如果你没有去珍惜,那后悔的必将是你!

作者: 218.97.243.*    2008-5-16 15:25:30  [回复此主题]
 6楼   回复:如何使买入信号、卖出信号一一对应

怎么使用啊

作者: 123.186.130.*    2008-6-1 18:42:46  [回复此主题]