Volume_futures_for_cross

Author: jax1000&grunt
Price Data Components
Series array that contains tick volumes of each bar
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
Volume_futures_for_cross
//+------------------------------------------------------------------+
//|                                                      Volumes.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "jax1000&grunt"
#property link      "jax1000@list.ru"
//---- indicator settings
#property  indicator_separate_window
extern string Futures_ticket1="6EM9";
extern string Futures_ticket2="6JM9";
extern datetime Begin_trade = D'2008.01.01 00:00';

#property indicator_minimum 0
#property indicator_buffers 3
#property indicator_color1  Black
#property indicator_color2  Green
#property indicator_color3  Red
#property indicator_width2  2
#property indicator_width3  2
//---- indicator buffers
double ExtVolumesBuffer[];
double ExtVolumesUpBuffer[];
double ExtVolumesDownBuffer[];

int recalculation_bars = 0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtVolumesBuffer);       
   SetIndexBuffer(1,ExtVolumesUpBuffer);
   SetIndexBuffer(2,ExtVolumesDownBuffer);
//---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
//---- sets default precision format for indicators visualization
   IndicatorDigits(0);   
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Volumes");
   SetIndexLabel(0,"Volumes");      
   SetIndexLabel(1,NULL);
   SetIndexLabel(2,NULL);
//---- sets drawing line empty value
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);       
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Volumes                                                          |
//+------------------------------------------------------------------+
int start()
  {
   int    i,nLimit,nCountedBars;
   nCountedBars=IndicatorCounted();
   if(nCountedBars>0) nCountedBars--;
   nLimit=MathMax(Bars-nCountedBars, recalculation_bars);
   recalculation_bars = 0;

   for(i=0; i<nLimit; i++)
     {
      datetime Time_shift = Time[i];
      if (Time_shift < Begin_trade) break;
      
      int Shift_bar_futures1 = iBarShift(Futures_ticket1, 0, Time_shift);
      int Shift_bar_futures2 = iBarShift(Futures_ticket2, 0, Time_shift);
      double dVolume = iVolume(Futures_ticket1, 0, Shift_bar_futures1)+iVolume(Futures_ticket2, 0, Shift_bar_futures2);
      if (dVolume == 0) {
         recalculation_bars = MathMax(recalculation_bars, i); 
         Print("Íåò êîòèðîâêè ïî "+Futures_ticket1+" èëè "+Futures_ticket2+" íà " + TimeToStr(Time_shift) + ". Ïîïðîáóåì ïîçæå...");
         }
      
      Shift_bar_futures1 = iBarShift(Futures_ticket1, 0, Time[i+1]);
      Shift_bar_futures2 = iBarShift(Futures_ticket2, 0, Time[i+1]);
      double dVolumePrev=iVolume(Futures_ticket1, 0, Shift_bar_futures1)+iVolume(Futures_ticket2, 0, Shift_bar_futures2);
      if (dVolumePrev == 0) {
         recalculation_bars = MathMax(recalculation_bars, i); 
         Print("Íåò êîòèðîâêè ïî "+Futures_ticket1+" èëè "+Futures_ticket2+" íà " + TimeToStr(Time_shift) + ". Ïîïðîáóåì ïîçæå...");
         }

      if(i==Bars-1 || dVolume > dVolumePrev)
        {
         ExtVolumesBuffer[i]=dVolume;
         ExtVolumesUpBuffer[i]=dVolume;
         ExtVolumesDownBuffer[i]=0.0;
        }
      else
        {
         ExtVolumesBuffer[i]=dVolume;
         ExtVolumesUpBuffer[i]=0.0;
         ExtVolumesDownBuffer[i]=dVolume;
        }
     }        
//---- done
   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 ---