как написать эту формулу в индикатор

 

макс.цена - мин.цена

результат умножить на 100 и все это разделить на volume

если не трудно скиньте на serg.noo28@rambler.ru

Спасибо!

 
121:

макс.цена - мин.цена

результат умножить на 100 и все это разделить на volume

если не трудно скиньте на serg.noo28@rambler.ru

Спасибо!


//+------------------------------------------------------------------+
//|                                                          Dwl.mq4 |
//|                                           Copyright © 2007, xeon |
//|                                                       xeon@nm.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, xeon"
#property link      "xeon@nm.ru"
#property  indicator_separate_window
#property  indicator_buffers 1
#property  indicator_color1  Navy
#property  indicator_width1  2
double Dwl;
//---- indicator buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorShortName("Dwl "+Dwl);
   SetIndexLabel(0,"Dwl");
 
//---- initialization done
   return(0);
  }
 
 
int start()
  {
   int i,limit;
   double Razn, vol;
   int counted_bars=IndicatorCounted();
 
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
 
   for(i=0; i<limit; i++){
       vol = Volume[i];
       Razn= (High[i]-Low[i])/Point;
       Dwl = Razn*100/vol; 
       if(Razn>0 && vol>0){
          ExtMapBuffer1[i]=Dwl;
       }}
  
   return(0); 
  }
 
  
//+------------------------------------------------------------------+
 
xeon:
121:

макс.цена - мин.цена

результат умножить на 100 и все это разделить на volume

если не трудно скиньте на serg.noo28@rambler.ru

Спасибо!


//+------------------------------------------------------------------+
//|                                                          Dwl.mq4 |
//|                                           Copyright © 2007, xeon |
//|                                                       xeon@nm.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, xeon"
#property link      "xeon@nm.ru"
#property  indicator_separate_window
#property  indicator_buffers 1
#property  indicator_color1  Navy
#property  indicator_width1  2
double Dwl;
//---- indicator buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorShortName("Dwl "+Dwl);
   SetIndexLabel(0,"Dwl");
 
//---- initialization done
   return(0);
  }
 
 
int start()
  {
   int i,limit;
   double Razn, vol;
   int counted_bars=IndicatorCounted();
 
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
 
   for(i=0; i<limit; i++){
       vol = Volume[i];
       Razn= (High[i]-Low[i])/Point;
       Dwl = Razn*100/vol; 
       if(Razn>0 && vol>0){
          ExtMapBuffer1[i]=Dwl;
       }}
  
   return(0); 
  }
 
  
//+------------------------------------------------------------------+

В коде условие

if(Razn>0 && vol>0){
ExtMapBuffer1[i]=Dwl;
}

будет выполняться всегда. Он не имеет смысла.Лишний оператор

 

В коде условие

if(Razn>0 && vol>0){
ExtMapBuffer1[i]=Dwl;
}

будет выполняться всегда. Он не имеет смысла.Лишний оператор

в коде ошибка (sorry - спешка) -

не так:

for(i=0; i<limit; i++){
vol = Volume[i];
Razn= (High[i]-Low[i])/Point;
Dwl = Razn*100/vol;

if(Razn>0 && vol>0){
ExtMapBuffer1[i]=Dwl;
}}

а так:

for(i=0; i<limit; i++){
vol = Volume[i];
Razn= (High[i]-Low[i])/Point;
if(Razn>0 && vol>0){

Dwl = Razn*100/vol;
ExtMapBuffer1[i]=Dwl;
}}

это условие - защита от деления на 0

 
xeon:

В коде условие

if(Razn>0 && vol>0){
ExtMapBuffer1[i]=Dwl;
}

будет выполняться всегда. Он не имеет смысла.Лишний оператор

в коде ошибка (sorry - спешка) -

не так:

for(i=0; i<limit; i++){
vol = Volume[i];
Razn= (High[i]-Low[i])/Point;
Dwl = Razn*100/vol;

if(Razn>0 && vol>0){
ExtMapBuffer1[i]=Dwl;
}}

а так:

for(i=0; i<limit; i++){
vol = Volume[i];
Razn= (High[i]-Low[i])/Point;
if(Razn>0 && vol>0){

Dwl = Razn*100/vol;
ExtMapBuffer1[i]=Dwl;
}}

это условие - защита от деления на 0



Тогда должно было быть

if(vol>0)

 
118
Vinin 07.07.2007 19:44

Тогда должно было быть

if(vol>0)

я думаю вместо того что бы спорить и териотеризировать просто стоит попробовать, тогда подобные вопросы отпадут сами собой :-)

Причина обращения: