#property copyright "Copyright ?2007, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
//>=16根线在平均线上/下,并且最远的一个K线开盘价格与当前收盘价差价>20点
extern int MA_Period=20;
extern int MA_Mode=0;
extern int JC=20;
extern int Kxsl=16; //K线数量
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if(CheckTrend()==1)
Print("趋势成立");
//Print("pjjg="+pjjg);
return (0);
}
// 返回1趋势成立,0不成立
int CheckTrend()
{
int upcount=0; //在平均线以上的K线数量
int downcount=0;//在平均线以下的K线数量
int counted_bars=IndicatorCounted();
if(counted_bars<0) return (-1);
double pjjg=iMA(NULL,0,MA_Period,0,MA_Mode,PRICE_CLOSE,1); //从最近已经完成的K线计算的平均价
double iClosesum=0;
for(int i=0;i<MA_Period;i++)
{
//iClosesum=iClosesum+iClose(NULL,0,i+1);
iClosesum=iClose(NULL,0,i+1);
if(iClosesum>pjjg)
{
upcount++;
}
else if(iClosesum<pjjg)
downcount++;
}
double kpj=iOpen(NULL,0,MA_Period);//取最远的那根K线的开盘价
double spj=iClose(NULL,0,1);//取最近K线的收盘价
if(upcount>=Kxsl)
{
if(MathAbs(kpj-spj)>JC )
{
return (1);
}
}
return (0);
}
//+------------------------------------------------------------------+