Author: Copyright � 2005, MetaQuotes Software Corp.
Speed_001
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
Speed_001
//+------------------------------------------------------------------+
//|                                                 Speed.mq4        |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 Red
#property indicator_color3 Lime

extern bool cumulat=true;
extern int pips_min=10;
extern int pips_max=300;
extern int pips_min1=10;
extern int pips_max1=20;
extern int pips_min2=10;
extern int pips_max2=30;

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   IndicatorShortName("Speed ((C0-C1)/Cm) / ((V0-V1)/Vm)");
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);   
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Accumulation/Distribution                                        |
//+------------------------------------------------------------------+
int start()
  {
   int i,n,Bars1,counted_bars=IndicatorCounted();
   RefreshRates();
//----
   //i=0;
   //n=Bars-counted_bars-1;
   //while(i<=n)
   Bars1=Bars/2;
   i=Bars1;//Bars-counted_bars-1;
   while(i>=0)   
   {
      double high0 =High[i];
      double low0  =Low[i];
      double open0 =Open[i];
      double close0=Close[i];
      double pips0=close0/Point;
      double vol0=Volume[i];
      
      double high1 =High[i+1];
      double low1  =Low[i+1];
      double open1 =Open[i+1];
      double close1=Close[i+1];
      double pips1=close1/Point;
      double vol1=Volume[i+1];
      
      double high2 =High[i+2];
      double low2  =Low[i+2];
      double open2 =Open[i+2];
      double close2=Close[i+2];
      double pips2=close2/Point;
      double vol2=Volume[i+2];     

      double high3 =High[i+3];
      double low3  =Low[i+3];
      double open3 =Open[i+3];
      double close3=Close[i+3];
      double pips3=close0/Point;
      double vol3=Volume[i+3];
      
      double high4 =High[i+4];
      double low4  =Low[i+4];
      double open4 =Open[i+4];
      double close4=Close[i+4];
      double pips4=close1/Point;
      double vol4=Volume[i+4];
      
      double high5 =High[i+5];
      double low5  =Low[i+5];
      double open5 =Open[i+5];
      double close5=Close[i+5];
      double pips5=close5/Point;
      double vol5=Volume[i+5];    

      double close_med = (close0+close1+close2+close3+close4+close5)/6;
      double vol_med= (vol0+vol1+vol2+vol3+vol4+vol5)/6;
      double pips_med= (pips0+pips1+pips2+pips3+pips4+pips5)/6;

      
      double vit1;
      if (((pips0-pips1)>pips_min) && ((pips0-pips1)<pips_max) ) 
      {
        vit1=((pips0-pips1)/pips_med)/((vol0-vol1)/vol_med);             
        ExtMapBuffer1[i]=vit1;//(close0-close1);//vit1;  //(close-low)-(high-close);
      }  
      else
        ExtMapBuffer1[i]=0;        

      if (((pips0-pips1)>pips_min1) && ((pips0-pips1)<pips_max1) ) 
      {
        vit1=((pips0-pips1)/pips_med)/((vol0-vol1)/vol_med);             
        ExtMapBuffer2[i]=vit1;//(close0-close1);//vit1;  //(close-low)-(high-close);
      }  
      else
        ExtMapBuffer2[i]=0;      
 /*       
      if (((pips0-pips1)>pips_min2) && ((pips0-pips1)<pips_max2) ) 
      {
        vit1=((pips0-pips1)/pips_med)/((vol0-vol1)/vol_med);             
        ExtMapBuffer3[i]=vit1;//(close0-close1);//vit1;  //(close-low)-(high-close);
      }  
      else
        ExtMapBuffer3[i]=0;                 
      
 */     
      double vit2=(pips1-pips2)/(vol1-vol2);  
      //ExtMapBuffer1[i]=ExtMapBuffer1[i+1]+Volume[i];             
      //ExtMapBuffer1[i]=vit1;  //(close-low)-(high-close);
      /*
      if(ExtMapBuffer1[i]!=0)
      {
         double diff=high-low;
         if(0==diff)
            ExtMapBuffer1[i]=0;
         else
         {
            ExtMapBuffer1[i]/=diff;
            ExtMapBuffer1[i]*=Volume[i];
         }
      }*/
      if((i<Bars1-1) && cumulat) 
      {
        ExtMapBuffer1[i]-=ExtMapBuffer1[i+1];
        ExtMapBuffer2[i]-=ExtMapBuffer2[i+1];
        //ExtMapBuffer3[i]-=ExtMapBuffer3[i+1];
      }  
      
      
      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 ---