Indicadores: Open Interest - página 7

 
Exemplo
Arquivos anexados:
tik1.jpg  198 kb
tik2.jpg  194 kb
tik3.jpg  190 kb
 
miillad:
Exemplo

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

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

 
Vladimir Karputov:

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

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

//+------------------------------------------------------------------+
//|Juros abertos.mq5
//|Direitos autorais © 2016, Vladimir Karputov |
//| http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Direitos autorais © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.001"
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   2
//--- plotar Max
#property indicator_label1  "Interest Max"
#property indicator_type1   DRAW_HISTOGRAM2
#property indicator_color1  clrBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  3
//--- plot Сurrent
#property indicator_label2  "Interest Min"
#property indicator_type2   DRAW_HISTOGRAM2
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  3
//--- buffers de indicadores
double         BufferMaxUp[];
double         BufferMaxDown[];
double         BufferMinUp[];
double         BufferMinDown[];
//---
datetime       StartDate=0;
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(__FUNCTION__);
//--- mapeamento de buffers de indicadores
   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);
  }
//+------------------------------------------------------------------+
//| Função de iteração de indicador personalizado|
//+------------------------------------------------------------------+
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;
     }
//--- valor de retorno de prev_calculated para a próxima chamada
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

@Vladimir Karputov

Eu perguntei, você ignorou a pergunta. Vou perguntar novamente.

Pelo que entendi, ao alterar o TF no gráfico, todo o histórico da sessão de negociação é redefinido? bx, abertura... o mesmo - começa de novo!

Meus cumprimentos

[Excluído]  
motoRND:

@Vladimir Karputov

perguntou, você ignorou a pergunta. Vou repetir.

Pelo que entendi, ao alterar o TF no gráfico, todo o histórico da sessão de negociação é redefinido... bx, abertura... o mesmo... começa de novo... é assim que ele foi projetado?

Sv

Não sou Vladimir, é claro, mas sim, foi assim que ele foi projetado. Não há gravação no arquivo!

 

Esse indicador é muito lento - não sei o que o está deixando lento, mas é um fato.

Quanto à gravação em um arquivo, é claro que, quando uma nova barra aparecer, seria bom gravá-la e lê-la ao inicializar....

 
motoRND:

@Vladimir Karputov

perguntou, você ignorou a pergunta. Vou repetir.

Pelo que entendi, ao alterar o TF no gráfico, todo o histórico da sessão de negociação é redefinido... bx, abertura... o mesmo... começa de novo... é assim que ele foi projetado?

Sv

Eu já disse mais de uma vez: ele foi projetado dessa forma. Quem não acredita, pode dar uma olhada no código.

 

Hi,

Fiz o download do arquivo zip e o extraí: Só tenho um pequeno arquivo de 8 Ko, não sei em qual farmat. Como posso fazer isso, por favor.

Desde já agradeço.

 
maboudi:

Hi,

Fiz o download do arquivo zip e o extraí: Só tenho um pequeno arquivo de 8 Ko, não sei em qual farmat. Como posso fazer isso, por favor.

Desde já agradeço.

Como fazer download do código do 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...
 

Estou usando o MT4, ele pode funcionar?