iCCI_Revercy_v1_4

Author: Copyright � Evgeniy Trofimov, 2009
Indicators Used
Commodity channel indexMoving average indicator
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
iCCI_Revercy_v1_4
//+------------------------------------------------------------------+
//|                                                 iCCI_Revercy.mq4 |
//|                                                        EvgeTrofi |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © Evgeniy Trofimov, 2009"
#property link      "http://vkontakte.ru/id5374887/"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Red
extern int  CCIPeriod = 14;
extern double FindCCI = 100.0;

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() 
  {
   IndicatorBuffers(2);
   IndicatorDigits(Digits);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexDrawBegin(0,CCIPeriod);
   SetIndexLabel(0,"CloseUP");
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexDrawBegin(1,CCIPeriod);
   SetIndexLabel(1,"CloseDN");
   IndicatorShortName("CCI_Revercy("+CCIPeriod+", "+FindCCI+")");
   return(0);
  }//init()
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() 
  {
   int BeginBar;
//---- íîâûå áàðû íå ïîÿâèëèñü è ïîýòîìó íè÷åãî ðèñîâàòü íå íóæíî 
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   BeginBar=Bars-counted_bars;
   if(counted_bars==0) BeginBar-=1+CCIPeriod;

//---- îñíîâíûå ïåðåìåííûå
   double Price,CCILast,CCI;
   for(int t=BeginBar; t>=0; t--) 
     {
      ExtMapBuffer1[t]=PriceCCI(FindCCI, t, 0);
      ExtMapBuffer2[t]=PriceCCI(FindCCI, t, 1);
/*
      CCILast=iCCI(NULL,0,CCIPeriod,PRICE_TYPICAL,t+2);
      CCI=iCCI(NULL,0,CCIPeriod,PRICE_TYPICAL,t+1);
      if((CCILast>0 && CCI<0) || 
         (CCILast<0 && CCI>0))  {
         ExtMapBuffer1[t+2]=EMPTY_VALUE;
      }
      */
     }//Next t
   return(0);
  } //start()
//+------------------------------------------------------------------+
double PriceCCI(double LevelCCI,int CurrentCandle=0,int index=0) 
  {
//Âû÷èñëÿåì òåêóùèé CCI
   double MovBuffer;
   double Price,SummPrice,Abs,SummAbs;
   double K=0.015;
   int j;
   for(int i=CCIPeriod-1; i>=0; i--) 
     {
      j=i+CurrentCandle;
      Price=(High[j]+Low[j]+Close[j])/3;
      MovBuffer=iMA(NULL,0,CCIPeriod,0,MODE_SMA,PRICE_TYPICAL,CurrentCandle);
      Abs=MathAbs(Price-MovBuffer);
      if(i>0) 
        {
         SummPrice+=Price;
         SummAbs+=Abs;
        }
     }//Next i
   double CCI=(Price-MovBuffer)/((SummAbs+Abs)*K/CCIPeriod);
   Comment("CCI("+CCIPeriod+") = "+DoubleToStr(CCI,4)+"\nFindCCI = "+DoubleToStr(LevelCCI,1));
// çàâèñèìîñòè îò çíàêà CCI äëÿ ðàñ÷¸òà íåîáõîäèìîé öåíû èñïîëüçóåòñÿ ñîîòâåòñòâóþùàÿ ôîðìóëà
   double H = High[CurrentCandle];
   double L =  Low[CurrentCandle];
   i = CCIPeriod;
   if(index==0) 
     {
      CCI=LevelCCI;
      Price=-(H*i-L*i*i-H*i*i+L*i-CCI*H*K-CCI*L*K+3*SummPrice*i-
              CCI*3*K*SummPrice+CCI*H*K*i+CCI*L*K*i+CCI*3*K*SummAbs*i)/
              (i-i*i-CCI*K+CCI*K*i);
        } else {
      CCI=-LevelCCI;
      Price=-(H*i-L*i*i-H*i*i+L*i+CCI*H*K+CCI*L*K+3*SummPrice*i+
              CCI*3*K*SummPrice-CCI*H*K*i-CCI*L*K*i+CCI*3*K*SummAbs*i)/
              (i-i*i+CCI*K-CCI*K*i);
     }
   return(Price);
  }//PriceCCI()
//+------------------------------------------------------------------+

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 ---