飞狐公式:如何使买入信号、卖出信号一一对应
总目录 > 上一级目录
下一篇:backset()函数的高级用法
在设计公式时,我们经常遇到这样的问题,如何使买卖信号一一对应?
比如下面的代码:
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);
图示如下,可以看出,买入信号连续发出多次后,才出现卖出信号,卖出信号连续发出多次后,才发出买入信号。
如何过滤连续的买入、卖出信号,使买入后只要没有发出卖出信号,就不再发出买入信号;同样,卖出后只要没有出现买入信号,就不再发出卖出信号。即买入、卖出信号一一对应。
容易想到的是使用过滤函数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);
图示如下:
比如下面的代码:
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);
图示如下,可以看出,买入信号连续发出多次后,才出现卖出信号,卖出信号连续发出多次后,才发出买入信号。
![]() |
容易想到的是使用过滤函数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);
图示如下:
![]() |
总目录 > 上一级目录
下一篇:backset()函数的高级用法
搜索 “飞狐公式:如何使买入信号、卖出信号一一对应” 相关内容
| 评论 |
与 飞狐公式:如何使买入信号、卖出信号一一对应 相关
证券新闻
股票常识
- 资本公积金和盈余公积金指什么
- 谁来告诉我利率升降对股市的影响怎么样
- 新股认购中,一个中签号码可以认购多少股...
- 炒股到底是什么
- 谁了解盛大老板陈天桥
- 什么是股东大会股权登记日,董事会征集投...
- 证券公司开户怎么办?
- 我持有锌业股份的股票,我是该股票的流通...
- "change"中...
- 股票PMA是指
- 我国上市公司的股票现在还有有流通股和非...
- 庄家可以通过那些方式对股票做手脚??
- 是什么使得股票涨?为什么又会跌?涨和跌...
- 关于股票买单和卖单的两个疑问
- 谁知道一个人多点的 虚拟股票网站啊
- 在网上股票交易,如果有IP攻击,会不会...
- 赎回基金是怎么一回事情?要不要交手续费...
- 我最近看了社科院出的蓝皮书,说在股市中...
- 股市中,换手的概念是什么
- 股改实施后我发现每股收益和每股净资产都...
- 华夏证券被谁收购了
- 证券在线实时信息
- 为什么要有股市呢?
- 买股票必须要有介绍人和经纪人吗??
- 各位介绍一些股市顶部的特征好吗
- 是不是所有国家都有股市
- 股改对我国股市的影响

