Axel S

A present.

Channelin’ The House

In order to start channeling, the Alex Foley aka the market has to trade in the E-32 for an Axel S. E-32 itself would become one end of the channel and the distance doubled would be the other end.

In the example above you can see that the encounter with the E-16 viaduct brought on the channeling move.

#property copyright "by Macdulio" 
#property link      "forexfore.blog" 
#property description "Axel S"

#property indicator_chart_window
#property indicator_buffers 9

int lookback = 300;

double e16d1[], e16d2[], e16d3[], e16d4[], E16[], RSI2[];
double E32L[], AxelU[], AxelU1[], AxelL[], AxelL2[];
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  
   SetIndexBuffer(0,AxelU);
   SetIndexStyle(0,DRAW_LINE,4,1,clrCyan); 

   SetIndexBuffer(1,AxelL);
   SetIndexStyle(1,DRAW_LINE,4,1,clrYellow); 
   
    SetIndexBuffer(2,AxelU1);
   SetIndexStyle(2,DRAW_LINE,1,1,clrCyan); 
  
  SetIndexBuffer(3,E32L);
   SetIndexStyle(3,DRAW_LINE,3,3,clrYellow);   
  
   SetIndexBuffer(4,e16d1);
   SetIndexStyle(4,DRAW_LINE,1,1,clrBlue);  
      SetIndexBuffer(5,e16d2);
   SetIndexStyle(5,DRAW_LINE,1,1,clrBlue);  
  
  SetIndexBuffer(6,e16d3);
   SetIndexStyle(6,DRAW_LINE,1,1,clrRed);  
      SetIndexBuffer(7,e16d4);
   SetIndexStyle(7,DRAW_LINE,1,1,clrGreen);  
    
 SetIndexBuffer(8,AxelL2);
   SetIndexStyle(8,DRAW_LINE,1,1,clrYellow); 

   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{

   int    i;             // Number of counted bars
  
   
  string symbol = Symbol();
  
    ArrayResize(E16, Bars);   
 ArrayInitialize(E16, EMPTY_VALUE); 
   ArrayResize(e16d1, Bars);   
 ArrayInitialize(e16d1, EMPTY_VALUE);  
    ArrayResize(e16d2, lookback);   
 ArrayInitialize(e16d2, EMPTY_VALUE); 
    ArrayResize(e16d3, lookback);   
 ArrayInitialize(e16d3, EMPTY_VALUE);  
    ArrayResize(e16d4, lookback);   
 ArrayInitialize(e16d4, EMPTY_VALUE); 
    ArrayResize(E16, lookback);   
 ArrayInitialize(E16, EMPTY_VALUE);  
    ArrayResize(RSI2, lookback);   
 ArrayInitialize(RSI2, EMPTY_VALUE);  
     ArrayResize(AxelU, lookback);   
 ArrayInitialize(AxelU, EMPTY_VALUE); 
      ArrayResize(AxelU1, lookback);   
 ArrayInitialize(AxelU1, EMPTY_VALUE); 
      ArrayResize(AxelL, lookback);   
 ArrayInitialize(AxelL, EMPTY_VALUE); 
      ArrayResize(AxelL2, lookback);   
 ArrayInitialize(AxelL2, EMPTY_VALUE); 
 
       ArrayResize(E32L, Bars);  
  ArrayInitialize(E32L, EMPTY_VALUE);  
 

//--------------------------------------------------------------------
        

for (i = lookback ; i >=0; i--) {

   if (Period()==30) E16[i]=iMA(NULL,0,32,0,MODE_EMA, PRICE_MEDIAN,i);       
   else E16[i]=iMA(NULL,0,16,0,MODE_EMA, PRICE_MEDIAN,i);
          
   if (Period()==60) E32L[i]=iMA(NULL,0,32,0,MODE_EMA, PRICE_MEDIAN,i);
   else E32L[i]=iMA(NULL,0,32*2,0,MODE_EMA, PRICE_MEDIAN,i);
   
         e16d1[i]=E16[i]+450*Point;
         
         e16d2[i]=E16[i]-450*Point;
           
        if (iMA(NULL,60,67,0,MODE_EMA, PRICE_HIGH,0)>iMA(NULL,60,207,0,MODE_EMA, PRICE_HIGH,0)) e16d4[i]=e16d2[i];
        if (iMA(NULL,60,67,0,MODE_EMA, PRICE_HIGH,0)<iMA(NULL,60,207,0,MODE_EMA, PRICE_HIGH,0)) e16d3[i]=e16d1[i];
        
     AxelU[i]=E32L[i]+280*Point;
     AxelU1[i]=AxelU[i]+280*Point;
    
     AxelL[i]=E32L[i]-280*Point;
     AxelL2[i]=AxelL[i]-280*Point;
   
} 
  return(0);
  }

Should work both on 60 and 30M


Add on from the super saver menu: RSI2 30M