[MT4指标]T3 Trix crossing signals指标
主图指标
mt4指标类型:趋势指标
是否能用在mt4手机版上:否
是否含有未来函数:无
//+---------------------------------------------------------+
//| T3 Trix crossing  signals.mq4 
//|
//| Perky..(Based on xxDavidxSxx\'s Ewocci Method)
//+------------------------------------------------------------------+
#property  copyright \"Author - Perky Aint no Porky\"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LightBlue
#property indicator_width1 3
#property indicator_color2 Red
#property indicator_width2 3
//---- input parameters
extern int smoothing=13;
extern int  timeframe=0;
extern int       A_t3_period=18; 
extern int       num_bars=350; 
extern int CountBars=350;
extern bool UseAlert=True;
extern bool SignalCandle=1;
//---- buffers
double val1;
double val2;
double CCI,CCIb4;
double EWO;
 double MA5,MA34;
int Timer;
string UD=\"\";
double PrevPrice;
double PrevHigh  ;
double PrevLow  ;
double P  ;
double Price;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,108);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,108);
   SetIndexBuffer(0,val1);
   SetIndexBuffer(1,val2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2                                            |
//+------------------------------------------------------------------+
int start()
  {   
  // if (CountBars>=500) CountBars=500;
  // SetIndexDrawBegin(0,500-CountBars);
  // SetIndexDrawBegin(1,500-CountBars);
  int i,shift,counted_bars=IndicatorCounted();
   //---- check for possible errors
  // if(counted_bars<0) return(-1);
   //---- initial zero
  // if(counted_bars<1)
   //  {
    //  for(i=1;i<=CountBars;i++) val1[CountBars-i]=0.0;
    //  for(i=1;i<=CountBars;i++) val2[CountBars-i]=0.0;
    // } 
for ( shift = CountBars; shift>=0; shift--) 
{ 
      PrevPrice = iClose(NULL,PERIOD_D1,SignalCandle);
      PrevHigh  = iHigh(NULL,PERIOD_D1,SignalCandle);
      PrevLow   = iLow(NULL,PERIOD_D1,SignalCandle);
      P = (PrevHigh + PrevLow + PrevPrice)/3;
      Price = iClose(NULL,PERIOD_H1,1); //gets close of last closed candle
   
    CCI =iCCI(NULL,0,55,PRICE_CLOSE,SignalCandle+shift);
    CCIb4=iCCI(NULL,0,55,PRICE_CLOSE,SignalCandle+shift+1);
    //Elliot Wave
    MA5=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,SignalCandle+shift);
    MA34=iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,SignalCandle+shift);
    EWO=MA5-MA34;  // yes thats it - Elliot Wave
//Comment ( \"mtfstochs=\",mtfstochs,\"mtfstochsb4=\",mtfstochsb4,\"\\nmtfstochs1=\",mtfstochs1,\"mtfstochs1b4=\",mtfstochs1b4);
 	   val1[shift]=0;
		val2[shift]=0;
if(ObjectFind(\"P label\") != 0)
      {
      ObjectCreate(\"P label\", OBJ_TEXT, 0, Time[20], P);
      ObjectSetText(\"P label\", \"Pivot\", 8, \"Arial\", Orange);
      }
       if(ObjectFind(\"P line\") != 0)
      {
      ObjectCreate(\"P line\", OBJ_HLINE, 0, Time[40], P);
      ObjectSet(\"P line\", OBJPROP_STYLE, STYLE_DOT);
      ObjectSet(\"P line\", OBJPROP_COLOR, Orange);
      }
//if ( TTb4>TT1b4 && TT=0 && CCIb4<0 &&   EWO>0)
{
		val1[shift]=Low[shift]-8*Point;
	
	if (shift < 2 )
	
	{
	   UD=\" UP.\";
		DoAlert(UD);
	}
}
// if ( TTb4TT1) 
 if ( CCI<=0 && CCIb4> 0 &&  EWO<0)
{
	val2[shift]=High[shift]+8*Point;
	
	
	 if (shift < 2 )
  { 
  UD=\" DOWN.\";	
  DoAlert(UD);
  }
}
}
   //return(0);
  }
 
void DoAlert(string UD)
{
   if (!NewBar() || !UseAlert)
      return;
     Alert (Symbol(),\" \",Period(),\" EWOCCI cross \",UD);
}
  bool NewBar()
{
   static datetime dt  = 0;
   if (dt != Time[0])
   {
      dt = Time[0];
      return(true);
   }
  
}
//+------------------------------------------------------------------+  
发表于:2017-08-11 08:05只看该作者
2楼 
谢谢分享!!
韬客社区www.talkfx.co











