Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Вся история MQL5.community в одном месте!
EugenioKP1983
166
EugenioKP1983 2016.08.12 15:24 

Всем привет. У меня проблема с индикатором

Вырубается сам.


//+------------------------------------------------------------------+
//|                                                       1-0BCH.mq4 |
//|                                             Yevheniy Kopanitskyy |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Yevheniy Kopanitskyy"
#property indicator_separate_window 
#property indicator_buffers 4       
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Green
#property indicator_minimum -100
#property indicator_maximum 100
#property strict

string GV_Summa1="GV_Summa1";
string GV_Summa0="GV_Summa0";
string GV_Summa2="GV_Summa2";
string GV_Summa3="GV_Summa3";
double one_BE; 
double zero_BE; 
double one_CH; 
double zero_CH; 
double Rez_BE;
double Buffer[]; 
double Buffer1[]; 
double Buffer2[]; 
double Buffer3[]; 
extern int Delitel=10;

double Rez_Plus;
datetime vremya;
string vremyatekst;
string vremyatekst1;
datetime time_bar;
string GV_minusZERO="GV_minusZERO";
double GV_minusZero;
bool confirmSM;
int sendMail;
double Summa,Raznica;
double Open1,Close1;


int OnInit()
{
  
        Alert("Старт Советника");
        /*---------------------------------------------------*/
  SetIndexBuffer(0,Buffer); /*Буфер начинается с наля*/
  SetIndexStyle(0,DRAW_SECTION,STYLE_SOLID,1,clrBlue); /*Установка параметра Стиль линии для линии первого буфер*/
  SetIndexBuffer(1,Buffer1); /*Буфер начинается с наля*/
  SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,1,clrGreen); /*Установка параметра Стиль линии для линии первого буфер*/
  SetIndexBuffer(2,Buffer2); /*Буфер начинается с наля*/
  SetIndexStyle(2,DRAW_SECTION,STYLE_SOLID,1,clrRed); /*Установка параметра Стиль линии для линии первого буфер*/
  SetIndexBuffer(3,Buffer2); /*Буфер начинается с наля*/
  SetIndexStyle(3,DRAW_SECTION,STYLE_SOLID,1,clrBrown); /*Установка параметра Стиль линии для линии первого буфер*/
  
  return(INIT_SUCCEEDED);
}


void start()
{
     one_BE = GlobalVariableGet(GV_Summa1);      
     zero_BE = GlobalVariableGet(GV_Summa0);
     one_CH = GlobalVariableGet(GV_Summa1);      
     zero_CH = GlobalVariableGet(GV_Summa0);
   

    Open1 =iOpen(Symbol(),0,1); 
    Close1=iClose(Symbol(),0,1);
   
     Rez_BE=one_BE-zero_BE;
     Raznica = Rez_BE/Delitel;
     Buffer[1]= Raznica; 
   
     
     Rez_Plus=one_CH+zero_CH;
     Summa = Rez_Plus/Rez_BE;   
     //Buffer2[1]= Summa;
     
     
     
     if(Raznica < 0.1&&IsNewBar())
     {
         
          
      double SM=Rez_BE;// Колличество потерь
      string NSM=DoubleToStr(SM,5);
      SendNotification(NSM);
      Buffer1[1]=Raznica;  
      Print(Rez_Plus);
      Print(NSM);
      Alert(NSM);
      Alert("Сумма тиков в свече ",Rez_Plus);      
      Alert("Время открытия свечи 1", Time[1]);
      }

   
  }
  

     
    
      
       
     
   
 

/* ------------------------- -*/
bool IsNewBar()
 {
  static int nBars = 0;
  if (nBars == 0) 
   {
    nBars = Bars;
    return(false);
   }
  if (nBars != Bars)
   {
    nBars = Bars;
    return(true);
   }
  return(false);
 } 



На глобальные передаются значения раз в минуту чётко.

Vitalie Postolache
10989
Vitalie Postolache 2016.08.12 15:45  

 void start() ???

И деление на 0 присутствует, перед делением надо вобще-то проверять, не равен ли делитель нулю.

А GV  создаете вручную?

EugenioKP1983
166
EugenioKP1983 2016.08.12 18:19  
evillive:

 void start() ???

И деление на 0 присутствует, перед делением надо вобще-то проверять, не равен ли делитель нулю.

А GV  создаете вручную?

А где деление на 0?
Vitalie Postolache
10989
Vitalie Postolache 2016.08.12 18:21  
EugenioKP1983:
А где деление на 0?

78 строка вроде

Summa = Rez_Plus/Rez_BE; 

EugenioKP1983
166
EugenioKP1983 2016.08.12 21:46  
evillive:

78 строка вроде

Summa = Rez_Plus/Rez_BE; 

Да в этом и была причина вылета индикатора

спасибо что ткнули

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