carmens_eyes_v1.03

carmens_eyes_v1.03
Indicators Used
Moving average indicator
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
carmens_eyes_v1.03
//        +-------------------------------------------------------------------------------------------------------+
//        |                                                                                      carmens_eyes.mq4 |
//        |                                                                                     October 29th 2009 |
//                                                                                              aicccia@gmail.com |
//        +-------------------------------------------------------------------------------------------------------+   

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 White
#property indicator_color2 Blue
#property indicator_color3 Yellow

       int    average=3;
extern double breakeven_buffer=6;
extern double space=1;
extern double expand_rate=75;
extern double till_breakeven_rate=1;

double AverageFX[];
double Top[];
double Bottom[];

int max,order;
double bed,tal,atr,step,deviation,bu,sl,maxlow,maxhigh,isranging,istime,dif;
bool ranging;

int init()
  {
   max=50;  
   
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,AverageFX);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,Top);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,Bottom);
   
   SetIndexDrawBegin(0,max);
   SetIndexDrawBegin(1,max);
   SetIndexDrawBegin(2,max);
   
   if(Digits==5 || Digits==3)  { dif=Point*10; } else dif=Point; 
   
   return(0);
  }

int start()
  {
   int    i,k,x,counted_bars=IndicatorCounted();
   double buffer,sum,newres,BandsDeviation,distance,sub,expandingx=till_breakeven_rate,mh;
   bool condition1=false;
   
   if(Bars<=max) { return(0); }
   if(counted_bars<1)
      for(i=1;i<=max;i++)
        {
         AverageFX[Bars-i]=EMPTY_VALUE;
         Top[Bars-i]=EMPTY_VALUE;
         Bottom[Bars-i]=EMPTY_VALUE;
         }

   int limit=Bars-counted_bars;
   if(counted_bars>0) limit++;
   for(i=0; i<limit; i++)
      AverageFX[i]=iMA(NULL,0,average,0,MODE_EMA,PRICE_CLOSE,i);

   i=Bars-max+1;
   if(counted_bars>max-1) i=Bars-counted_bars-1;
   while(i>=0)
     {       
      buffer=6*space*dif;

      if((order==1) && (step<(bu+(breakeven_buffer*dif))))   { expandingx=(till_breakeven_rate*dif); }
      if((order==1) && (step>(bu+(breakeven_buffer*dif))))   { expandingx=(expand_rate*dif);  }
      if((order==2) && (step>(sl-(breakeven_buffer*dif))))   { expandingx=(till_breakeven_rate*dif); }
      if((order==2) && (step<(sl-(breakeven_buffer*dif))))   { expandingx=(expand_rate*dif);  }
     
      if(order==0) { step=AverageFX[i]-(till_breakeven_rate*dif); }
      if(order==1) { // Buy
         if((AverageFX[i]>step) && MathAbs(AverageFX[i]-step)>expandingx)                    { step=AverageFX[i]-expandingx;         }}
      if(order==2) { // Sell
         if((AverageFX[i]<(step-buffer)) && MathAbs(AverageFX[i]-(step-buffer))>expandingx)  { step=AverageFX[i]+expandingx+buffer;  }}
 
      Top[i]=step;
      Bottom[i]=step-buffer; 

      if(AverageFX[i]>Top[i])    { order=1; if(bu==0) { bu=AverageFX[i]; sl=0; }}
      if(AverageFX[i]<Bottom[i]) { order=2; if(sl==0) { sl=AverageFX[i]; bu=0; }}

      i--; }
 
   return(0);
  }

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---