大家可能需要的乖离率BIAS公式
刚才编了一下,大家用用看有无问题,提出来再解决。:D
//+------------------------------------------------------------------+
//| BIAS.mq4 |
//| Copyright ?2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Silver
//---- input parameters
extern int MAPeriod=9;
//---- buffers
double ind_buffer;
double BiasBuffer;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
SetIndexBuffer(0, BiasBuffer);
SetIndexBuffer(1, ind_buffer);
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,BiasBuffer);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("BIAS("+MAPeriod+")");
SetIndexLabel(0,"BIAS");
//----
SetIndexDrawBegin(0,MAPeriod);
return(0);
//----
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i;
//----
if(Bars<=MAPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=MAPeriod;i++) BiasBuffer[Bars-i]=0.0;
//----
i=Bars-MAPeriod-1;
if(counted_bars>=MAPeriod) i=Bars-counted_bars-1;
while(i>=0)
{ind_buffer=iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,i);
BiasBuffer=(Close-ind_buffer)/Close;
i--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
[ Last edited by hawkie on 2005-6-20 at 21:34 ]
发表于:2005-06-21 02:48只看该作者
2楼
哈 谢谢哈 吃完饭回来研究下
遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
● 如何使用WinMTR查询平台连接流畅度
发表于:2005-06-21 05:20只看该作者
3楼
把指标传上来呵呵
再次谢谢啦talkforex-BIAS-BYhawkie.zip
遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
● 如何使用WinMTR查询平台连接流畅度
发表于:2005-06-22 17:42只看该作者
4楼
非常感谢
[ Last edited by 55555 on 2005-6-23 at 02:16 ]
汇市如人生 , 做汇如做人
发表于:2005-06-22 18:39只看该作者
5楼
您的乘离率BIAS计算工式是1还是2?
1:N日BIAS=[(当日收盘价—N日移动平均价)/N日移动平均价]—1
2:N日BIAS=[(当日收盘价—N日移动平均价)/当日收盘价]—1
正确的乘离率BIAS计算工式应该是1。
非常感谢。
[ Last edited by 55555 on 2005-6-23 at 02:43 ]
汇市如人生 , 做汇如做人
发表于:2005-06-23 04:25只看该作者
6楼
乖离率简称Y值,它是移动平均原理派生的一项技术指标,其功能主要是通过测算股价在流动过程中与移动平均线出现的偏离程度,从而得出股价在剧烈波动时因偏离移动平均线而造成的可能的回档与反弹,以及股价在波动过程中继续原有趋势的可信度。
当价位距离移动平均线太远时,不论价位在移动平均线上方或下方,都有可能随时返回移动平均线,从而是一个买进或卖出时机。但是,股价距移动平均线多远时才是买卖时机呢?后来人们发现这与行情的强弱有关,在强势多头市场,市场买气旺盛,涨势与涨幅往往出人意料,因此股价远高于移动平均线;同样,在非常弱势的空头市场,市场买意缺乏,跌势与跌幅也往往出入意料,股价远低于移动平均线。
乖离率正是针对这个问题提出的,是定量地表现当日指数或个别股价与移动平均线之间差距的技术指标。我们知道,移动平均线为一段时间中多头与空头力量的均衡点,而乖离率表示的是现价和均衡点之间的差异和乖离程度。一般说来,距离越远,则表示多空反转的可能性越大。
乖离率有正负之分,当股价位于平均线之上,为正乖离率;当股价位于平均线之下,则为负乖离率;当股价与平均线相交时,乖离率为零。正的乖离率愈大,表明短期内多头获利愈多,那么获利回吐的可能性也就愈大;负的乖离率的绝对值愈大,则空头回补的可能性也就愈大。因而随着股价走势的变动,乖离率的高低有一定的测市功能。
计算公式:
BIAS=(Ct-MAn)/MAn
Ct=(当日指数或收盘价)
MAn=(n日移动平均价)]
N的数值可按自己选用的移动平均线确定,一般有6日、12日、24日;也有10日、30日、75日。在实际运用中,深沪股市短线使用6日乖离率极为有效,中线则一般取12日或10日。
[ Last edited by 55555 on 2005-6-23 at 12:27 ]
7楼
按照5555提供的算法重新写了一下,大家各取所需吧。
最早发的bias算法是:
BIAS=(Ct-MAn)/Ct
Ct=(当日指数或收盘价)
MAn=(n日移动平均价)]
//+------------------------------------------------------------------+
//| BIAS.mq4 |
//| Copyright ?2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Silver
//---- input parameters
extern int MAPeriod=9;
//---- buffers
double ind_buffer;
double BiasBuffer;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
SetIndexBuffer(0, BiasBuffer);
SetIndexBuffer(1, ind_buffer);
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,BiasBuffer);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("BIAS("+MAPeriod+")");
SetIndexLabel(0,"BIAS");
//----
SetIndexDrawBegin(0,MAPeriod);
return(0);
//----
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i;
//----
if(Bars<=MAPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=MAPeriod;i++) BiasBuffer[Bars-i]=0.0;
//----
i=Bars-MAPeriod-1;
if(counted_bars>=MAPeriod) i=Bars-counted_bars-1;
while(i>=0)
{ind_buffer=iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,i);
BiasBuffer=(Close-ind_buffer)/ind_buffer;
i--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
发表于:2005-06-23 17:14只看该作者
8楼
非常感谢,我很喜欢用乘离率。
发表于:2005-07-02 01:34只看该作者
9楼
谢谢hawkie!:handshake:handshake
韬客社区www.talkfx.co
发表于:2005-07-08 02:11只看该作者
10楼
楼主能不能费心把这个改为MT3.83能用的,谢谢了。
发表于:2006-04-18 14:31只看该作者
11楼
老正兄,hawkie 已经更改了他的乖离率程式,把它传上来好吗? 谢了!
发表于:2006-10-08 02:15只看该作者
13楼
感谢
韬客社区www.talkfx.co
发表于:2007-12-22 14:41只看该作者
14楼
韬客社区www.talkfx.co
发表于:2007-12-31 11:28只看该作者
15楼
发表于:2008-02-29 04:04只看该作者
16楼
韬客社区www.talkfx.co
发表于:2008-03-17 09:19只看该作者
17楼
韬客社区www.talkfx.co
发表于:2008-07-09 14:58只看该作者
18楼
:D :( :) :M :L
韬客社区www.talkfx.co
发表于:2009-08-25 07:33只看该作者
19楼
:hua: :hua: :hua:
若於因地以生滅心為本修因,而求佛乘不生不滅,無有是處【楞嚴經 ...