Индикаторы: Open Interest - страница 7

 
Пример
Файлы:
tik1.jpg  198 kb
tik2.jpg  194 kb
tik3.jpg  190 kb
 
miillad:
Пример

1. Пожалуйста, ВСТАВЛЯЙТЕ картинку. ПриКРЕПЛЯТЬ картинку - неправильное действие.

2. Я в пятый раз прошу Вас: "Покажи код, с помощью которого ты выводишь на экран данные".

 
Vladimir Karputov:

1. Пожалуйста, ВСТАВЛЯЙТЕ картинку. ПриКРЕПЛЯТЬ картинку - неправильное действие.

2. Я в пятый раз прошу Вас: "Покажи код, с помощью которого ты выводишь на экран данные".

//+------------------------------------------------------------------+
//|Открытый интерес.mq5 |
//|Copyright © 2016, Владимир Карпутов |
//| http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Владимир Карпутов"
#property link      "http://wmua.ru/slesar/"
#property version   "1.001"
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   2
//--- сюжет Max
#property indicator_label1  "Interest Max"
#property indicator_type1   DRAW_HISTOGRAM2
#property indicator_color1  clrBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  3
//--- сюжет Текущий
#property indicator_label2  "Interest Min"
#property indicator_type2   DRAW_HISTOGRAM2
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  3
//--- индикаторные буферы
double         BufferMaxUp[];
double         BufferMaxDown[];
double         BufferMinUp[];
double         BufferMinDown[];
//---
datetime       StartDate=0;
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(__FUNCTION__);
//--- отображение индикаторных буферов
   SetIndexBuffer(0,BufferMaxUp,INDICATOR_DATA);
   SetIndexBuffer(1,BufferMaxDown,INDICATOR_DATA);
   SetIndexBuffer(2,BufferMinUp,INDICATOR_DATA);
   SetIndexBuffer(3,BufferMinDown,INDICATOR_DATA);
   ArraySetAsSeries(BufferMaxUp,true);
   ArraySetAsSeries(BufferMaxDown,true);
   ArraySetAsSeries(BufferMinUp,true);
   ArraySetAsSeries(BufferMinDown,true);
//---
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0);
   PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0);
   PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,0);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора|
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   if(prev_calculated==0)
     {
      Print("prev_calculated==0, StartDate=",StartDate);
      if(StartDate<D'2015.01.01 00:00')
        {
         StartDate=TimeCurrent();
        }
      else
        {
         return(rates_total);
        }
     }
//---
   double interest=SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST);
   Comment("Open interest= ",interest);
//---
   int limit=rates_total-prev_calculated;
   for(int i=0;i<limit;i++) // в случае, когда prev_calculated==0 или когда limit>1
     {
      BufferMaxUp[i]=interest;
      BufferMaxDown[i]=interest;
      BufferMinUp[i]=interest;
      BufferMinDown[i]=interest;
     }
//---
   if(interest>BufferMaxUp[0])
     {
      BufferMaxUp[0]=interest;
     }
   if(interest<BufferMinDown[0])
     {
      BufferMinDown[0]=interest;
     }
//--- возвращаем значение prev_calculated для следующего вызова
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

@Vladimir Karputov

спрашивал ,Вы проигнорили вопрос. повторю .

как я понял при смене ТФ на графике вся история торговой сессии обнуляется ?  бкс ,открытие  .одинаково -начинается сначала ! так и задумано ?

С ув

[Удален]  
motoRND:

@Vladimir Karputov

спрашивал ,Вы проигнорили вопрос. повторю .

как я понял при смене ТФ на графике вся история торговой сессии обнуляется ?  бкс ,открытие  .одинаково -начинается сначала ! так и задумано ?

С ув

Я, конечно, не Владимир, но да, так и задумано. Нет записи в файл!

 

Индикатор этот очень тормозной - не знаю что там тормозит, но это факт.

А что касается записи в файл, конечно, при появлении нового бара было бы не плохо делать запись, а при инициализации считывать...

 
motoRND:

@Vladimir Karputov

спрашивал ,Вы проигнорили вопрос. повторю .

как я понял при смене ТФ на графике вся история торговой сессии обнуляется ?  бкс ,открытие  .одинаково -начинается сначала ! так и задумано ?

С ув

Не один раз говорил: так и задумано. Кто не верит - может посмотреть к код.

 

Привет,

Я скачал zip-файл и распаковал его: У меня есть только маленький файл 8 Ko, я не знаю, в каком farmat. Как я могу сделать, пожалуйста.

Заранее спасибо.

 
maboudi:

Привет,

Я скачал zip-файл и распаковал его: У меня есть только маленький файл 8 Ko, я не знаю, в каком farmat. Как я могу сделать, пожалуйста.

Заранее спасибо.

Как загрузить код из MetaEditor

Toolbox - Workspace - MetaTrader 5
Toolbox - Workspace - MetaTrader 5
  • www.metatrader5.com
Double-click an error message, to open an appropriate file. The cursor is immediately set to the error location. A similar action is performed using the Go to Line command in the context menu. Search The search is performed using the toolbar and the Online Search command in the Help menu. Search results are conveniently displayed by categories...
 

Я использую MT4, может ли это работать?