//+---------------------------------------------------------+ //| T3 Trix crossing signals.mq4 //| //| Perky.. //+------------------------------------------------------------------+ #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,MA35; 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+1); PrevHigh = iHigh(NULL,PERIOD_D1,SignalCandle+1); PrevLow = iLow(NULL,PERIOD_D1,SignalCandle+1); 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); MA35=iMA(NULL,0,35,0,MODE_SMA,PRICE_MEDIAN,SignalCandle+shift); EWO=MA5-MA35; // 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", Magenta); } 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, Magenta); } //if ( TTb4>TT1b4 && TT<TT1 ) if ( CCI>=0 && CCIb4<0 && EWO>0) { val1[shift]=Low[shift]-8*Point; if (shift < 2 ) { UD=" UP."; DoAlert(UD); } } // if ( TTb4<TT1b4 && TT>TT1) 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(),"T3 TRIX cross ",UD); } bool NewBar() { static datetime dt = 0; if (dt != Time[0]) { dt = Time[0]; return(true); } } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains open time of each bar
Indicator Curves created:
Implements a curve of type DRAW_ARROW
Indicators Used:
Commodity channel index
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen