//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+
))
//+------------------------------------------------------------------+
ExtMapBuffer2[i]=10*MathRand()*100/1000;Это всёравно что разделить на 10ю
Ты пытаешся прировнять ExtMapBuffer2 к ExtMapBuffer1
а мне нужно чтобы ExtMapBuffer1 вобще невлеял на высоту индекатора, чтобы значения ExtMapBuffer2 и ExtMapBuffer1 остались неизменёнными
я пытался добавить DRAW_NONE но это просто зделало его невидимым
У меня два буфера : ExtMapBuffer2 и ExtMapBuffer1
ExtMapBuffer2 в 10 раз больше ExtMapBuffer1
ExtMapBuffer2 невидимый. Как здклать так чтоб ExtMapBuffer1 показывался в окне индикатора во весь экран а не на одну десятуюНе выводить второй буфер. Не делать невидимым, вообще НЕ ВЫВОДИТЬ. А если он таки нужен, тогда уж умножать на 10 и первый буфер.
Какоё вообще смысл в этом индикаторе?
Не выводить второй буфер. Не делать невидимым, вообще НЕ ВЫВОДИТЬ. А если он таки нужен, тогда уж умножать на 10 и первый буфер.
Второй буфер мне нужен так как я буду использовать IMAOnarray и iCCIOnArray
ExtMapBuffer2[i]=10*MathRand(); // значения в пределе 0..3000
ExtMapBuffer1[i]=iCCIOnArray(ExtMapBuffer2,total,12,0); // значения в пределе 0..100
поэтому я хочу чтоб ExtMapBuffer1 был во весь экран. а не на одну 10
Какоё вообще смысл в этом индикаторе?
Для наглядности вопроса чтобы не на 1/10 показывало а на всё окно
ExtMapBuffer2[i]=10*MathRand(); // значения в пределе 0..3000
ExtMapBuffer1[i]=iCCIOnArray(ExtMapBuffer2,total,12,0); // значения в пределе 0..100
ошибочка. Значения второго буфера будут 0..327670 при таком применении.
ошибочка.Значения первого буфера будут 0..327690 а второго - 0..32769 при таком применении.
Ну вы поняли один буфкр в 10 раз больше другого и поэтому второй буфер показывает на 1/10 окна
да не в 10 раз больше, а в 3277 раз ;)
СС! 0..100 а второй буфер 0..327670, я там вверху поправил, перепутал поначалу. А исправить никак, масштабы разные, так что или уравнивать масштаб, или выводить только конечный результат вычисления в буфер, одного буфера тогда хватит.
//+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+
или выводить только конечный результат вычисления в буфер, одного буфера тогда хватит.
или использовать три буфера :два промежуточных и один для наглядного вывода результатов
третий буфер я и буду маштабировать
ExtMapBuffer2[i]=10*MathRand(); // значения в пределе 0..3000
ExtMapBuffer1[i]=iCCIOnArray(ExtMapBuffer2,total,12,0); // значения в пределе 0..100
ExtMapBuffer3[i]=100*ExtMapBuffer1[i];
//+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2012, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 1
....
Тоже самое:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
У меня два буфера : ExtMapBuffer2 и ExtMapBuffer1
ExtMapBuffer2 в 10 раз больше ExtMapBuffer1
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);
}
//+------------------------------------------------------------------+