Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересует активность в Маркете? Заходи и отслеживай!
bird0
81
bird0 2014.01.03 19:11 

У меня два буфера : ExtMapBuffer2 и ExtMapBuffer1

ExtMapBuffer2 в 10 раз больше ExtMapBuffer1

ExtMapBuffer1[i]=MathRand();
ExtMapBuffer2[i]=10*MathRand();

ExtMapBuffer2 невидимый. Как здклать так чтоб ExtMapBuffer1 показывался в окне индикатора во весь экран а не на одну десятую


#property indicator_separate_window

#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 DeepSkyBlue
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(1,DRAW_NONE);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
for(int i=Bars-counted_bars; i>=0; i--){
ExtMapBuffer1[i]=MathRand();
ExtMapBuffer2[i]=10*MathRand();
}

//----
return(0);
}
//+------------------------------------------------------------------+




RekkeR
1818
RekkeR 2014.01.03 19:36  

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
for(int i=Bars-counted_bars; i>=0; i--){
ExtMapBuffer1[i]=MathRand();
ExtMapBuffer2[i]=10*MathRand()*100/1000;
}

//----
return(0);
}
//+------------------------------------------------------------------+

))

bird0
81
bird0 2014.01.03 20:22  
RekkeR:

//+------------------------------------------------------------------+

ExtMapBuffer2[i]=10*MathRand()*100/1000;

Это всёравно что разделить на 10ю

Ты пытаешся прировнять ExtMapBuffer2 к ExtMapBuffer1

а мне нужно чтобы ExtMapBuffer1 вобще невлеял на высоту индекатора, чтобы значения ExtMapBuffer2 и ExtMapBuffer1 остались неизменёнными

я пытался добавить DRAW_NONE но это просто зделало его невидимым

SetIndexStyle(1,DRAW_NONE);
Vitalie Postolache
11968
Vitalie Postolache 2014.01.03 20:43  
bird:

У меня два буфера : ExtMapBuffer2 и ExtMapBuffer1

ExtMapBuffer2 в 10 раз больше ExtMapBuffer1

ExtMapBuffer2 невидимый. Как здклать так чтоб ExtMapBuffer1 показывался в окне индикатора во весь экран а не на одну десятую

Не выводить второй буфер. Не делать невидимым, вообще НЕ ВЫВОДИТЬ. А если он таки нужен, тогда уж умножать на 10 и первый буфер.


Какоё вообще смысл в этом индикаторе?

bird0
81
bird0 2014.01.03 21:09  
evillive:

Не выводить второй буфер. Не делать невидимым, вообще НЕ ВЫВОДИТЬ. А если он таки нужен, тогда уж умножать на 10 и первый буфер.

Второй буфер мне нужен так как я буду использовать IMAOnarray и iCCIOnArray


ExtMapBuffer2[i]=10*MathRand(); // значения в пределе 0..3000

ExtMapBuffer1[i]=iCCIOnArray(ExtMapBuffer2,total,12,0); // значения в пределе 0..100

поэтому я хочу чтоб ExtMapBuffer1 был во весь экран. а не на одну 10

Какоё вообще смысл в этом индикаторе?

Для наглядности вопроса чтобы не на 1/10 показывало а на всё окно

Vitalie Postolache
11968
Vitalie Postolache 2014.01.03 21:21  
bird:

ExtMapBuffer2[i]=10*MathRand(); // значения в пределе 0..3000

ExtMapBuffer1[i]=iCCIOnArray(ExtMapBuffer2,total,12,0); // значения в пределе 0..100



ошибочка. Значения второго буфера будут 0..327670 при таком применении.

bird0
81
bird0 2014.01.03 21:25  
evillive:

ошибочка.Значения первого буфера будут 0..327690 а второго - 0..32769 при таком применении.

Ну вы поняли один буфкр в 10 раз больше другого и поэтому второй буфер показывает на 1/10 окна
Vitalie Postolache
11968
Vitalie Postolache 2014.01.03 21:32  
bird:
Ну вы поняли один буфкр в 10 раз больше другого и поэтому второй буфер показывает на 1/10 окна


да не в 10 раз больше, а в 3277 раз ;)

СС! 0..100 а второй буфер 0..327670, я там вверху поправил, перепутал поначалу. А исправить никак, масштабы разные, так что или уравнивать масштаб, или выводить только конечный результат вычисления в буфер, одного буфера тогда хватит.

Victor Nikolaev
Модератор
14372
Victor Nikolaev 2014.01.03 21:45  
//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window

#property indicator_buffers 1
#property indicator_color1 Red

//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
  {

//---- indicators
   IndicatorBuffers(2);

   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);

   SetIndexBuffer(1,ExtMapBuffer2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
//----
   for(int i=Bars-counted_bars; i>=0; i--)
     {
      ExtMapBuffer1[i]=MathRand();
      ExtMapBuffer2[i]=10*MathRand();
     }

//----
   return(0);
  }
//+------------------------------------------------------------------+
bird0
81
bird0 2014.01.03 21:45  
evillive:

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


или использовать три буфера :два промежуточных и один для наглядного вывода результатов

третий буфер я и буду маштабировать

ExtMapBuffer2[i]=10*MathRand(); // значения в пределе 0..3000

ExtMapBuffer1[i]=iCCIOnArray(ExtMapBuffer2,total,12,0); // значения в пределе 0..100

ExtMapBuffer3[i]=100*ExtMapBuffer1[i];

bird0
81
bird0 2014.01.03 21:52  
Vinin:

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window

#property indicator_buffers 1

....

Тоже самое:

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий