Author: fartarantula
Price Data Components
Series array that contains close prices for each barSeries array that contains the highest prices of each barSeries array that contains the lowest prices of each bar
0 Views
0 Downloads
0 Favorites
GapView
//+------------------------------------------------------------------+
//|                                                        Sonar.mq4 |
//|                                                     fartarantula |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "fartarantula"
#property link      ""
#property indicator_chart_window
extern bool      Ïîêàçûâàòü_óðîâíè_ãýïà=true;
extern bool      Ïîêàçûâàòü_äàòó_ãýïà=true;
extern bool      Ãýï_M5=true;
extern color     UplineM5=Red;
extern color     DwnlineM5=Blue;
extern bool      Ãýï_M15=false;
extern color     UplineM15=Green;
extern color     DwnlineM15=BlueViolet;
extern bool      Ãýï_M30=false;
extern color     UplineM30=Yellow;
extern color     DwnlineM30=DarkSlateBlue;
extern bool      Ãýï_H1=false;
extern color     UplineH1=Sienna;
extern color     DwnlineH1=DarkSlateGray;
extern bool      Ãýï_H4=false;
extern color     UplineH4=Maroon;
extern color     DwnlineH4=SaddleBrown;
extern bool      Ãýï_D1=false;
extern color     UplineD1=MediumVioletRed;
extern color     DwnlineD1=OliveDrab;
extern bool      Ãýï_W1=false;
extern color     UplineW1=SpringGreen;
extern color     DwnlineW1=Teal;

extern int       ÄàëüíîñòüÃýïîâ=60;
extern int       Òî÷íîñòü_öåíû=4;

int init()
{
ObjectsDeleteAll(0,OBJ_HLINE);
return(0);
}
int deinit()
  {
ObjectsDeleteAll(0,OBJ_HLINE);
   return(0);
  }
int start()
{
init();
int i,b;
double price1,price2,price3;
datetime DALNOSTGAP=iTime(NULL,PERIOD_D1,ÄàëüíîñòüÃýïîâ); 


//////////////////////////M5
if (Ãýï_M5==true)
{
int shiftDALNOSTGAP=iBarShift(NULL,5,DALNOSTGAP,false);
int DG=shiftDALNOSTGAP;
for (i=DG;i>1;i--)
{
if (Ïîêàçûâàòü_óðîâíè_ãýïà==true)
{
price1=NormalizeDouble(iClose(NULL,5,i),Òî÷íîñòü_öåíû);     
price2=NormalizeDouble(iHigh(NULL,5,i-1),Òî÷íîñòü_öåíû);    
price3=NormalizeDouble(iLow(NULL,5,i-1),Òî÷íîñòü_öåíû);                
//*****************************************************
if (price1>price2)                                      
{     
for (b=i-1;b>=1;b--)
{
price2=NormalizeDouble(iHigh(NULL,5,b),Òî÷íîñòü_öåíû);
if (price2>=price1) 
{
break;
} 
if (b==1)
{
string name =DoubleToStr( price1, 4);                     
ObjectCreate(name, OBJ_HLINE,0, 0,price1) ;              
ObjectSet(name,OBJPROP_COLOR,UplineM5);                    
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
datetime SecondUP=iTime(NULL,5,i); 
string opisanieUP=TimeToStr(SecondUP,TIME_DATE|TIME_MINUTES);
ObjectSetText(name, opisanieUP+"  M5"); 
}
}
}
}   
if (price1<price3)                                          
{     
for (b=i-1;b>=1;b--)
{
price3=NormalizeDouble(iLow(NULL,5,b),Òî÷íîñòü_öåíû);
if (price3<=price1) 
{
break;
} 
if (b==1)
{
string name2 =DoubleToStr( price1, 4);                    
ObjectCreate(name2, OBJ_HLINE,0, 0,price1) ;            
ObjectSet(name2,OBJPROP_COLOR,DwnlineM5);                
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
datetime SecondDWN=iTime(NULL,5, i); 
string opisanieDWN=TimeToStr(SecondDWN,TIME_DATE|TIME_MINUTES);
ObjectSetText(name2, opisanieDWN+"  M5"); 
}
}
}
}
}
}
}
//////////////////////////M5

//////////////////////////M15
if (Ãýï_M15==true)
{
 shiftDALNOSTGAP=iBarShift(NULL,15,DALNOSTGAP,false);
DG=shiftDALNOSTGAP;
for (i=DG;i>1;i--)
{
if (Ïîêàçûâàòü_óðîâíè_ãýïà==true)
{
price1=NormalizeDouble(iClose(NULL,15,i),Òî÷íîñòü_öåíû);     
price2=NormalizeDouble(iHigh(NULL,15,i-1),Òî÷íîñòü_öåíû);    
price3=NormalizeDouble(iLow(NULL,15,i-1),Òî÷íîñòü_öåíû);                
//*****************************************************
if (price1>price2)                                      
{     
for (b=i-1;b>=1;b--)
{
price2=NormalizeDouble(iHigh(NULL,15,b),Òî÷íîñòü_öåíû);
if (price2>=price1) 
{
break;
} 
if (b==1)
{
name =DoubleToStr( price1, 4);                     
ObjectCreate(name, OBJ_HLINE,0, 0,price1) ;              
ObjectSet(name,OBJPROP_COLOR,UplineM15);                    
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondUP=iTime(NULL,15,i); 
opisanieUP=TimeToStr(SecondUP,TIME_DATE|TIME_MINUTES);
ObjectSetText(name, opisanieUP+"  M15"); 
}
}
}
}   
if (price1<price3)                                          
{     
for (b=i-1;b>=1;b--)
{
price3=NormalizeDouble(iLow(NULL,15,b),Òî÷íîñòü_öåíû);
if (price3<=price1) 
{
break;
} 
if (b==1)
{
name2 =DoubleToStr( price1, 4);                    
ObjectCreate(name2, OBJ_HLINE,0, 0,price1) ;            
ObjectSet(name2,OBJPROP_COLOR,DwnlineM15);                
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondDWN=iTime(NULL,15, i); 
opisanieDWN=TimeToStr(SecondDWN,TIME_DATE|TIME_MINUTES);
ObjectSetText(name2, opisanieDWN+"  M15"); 
}
}
}
}
}
}
}
//////////////////////////M15

//////////////////////////M30

if (Ãýï_M30==true)
{
 shiftDALNOSTGAP=iBarShift(NULL,30,DALNOSTGAP,false);
DG=shiftDALNOSTGAP;
for (i=DG;i>1;i--)
{
if (Ïîêàçûâàòü_óðîâíè_ãýïà==true)
{
price1=NormalizeDouble(iClose(NULL,30,i),Òî÷íîñòü_öåíû);     
price2=NormalizeDouble(iHigh(NULL,30,i-1),Òî÷íîñòü_öåíû);    
price3=NormalizeDouble(iLow(NULL,30,i-1),Òî÷íîñòü_öåíû);                
//*****************************************************
if (price1>price2)                                      
{     
for (b=i-1;b>=1;b--)
{
price2=NormalizeDouble(iHigh(NULL,30,b),Òî÷íîñòü_öåíû);
if (price2>=price1) 
{
break;
} 
if (b==1)
{
name =DoubleToStr( price1, 4);                     
ObjectCreate(name, OBJ_HLINE,0, 0,price1) ;              
ObjectSet(name,OBJPROP_COLOR,UplineM30);                    
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondUP=iTime(NULL,30,i); 
opisanieUP=TimeToStr(SecondUP,TIME_DATE|TIME_MINUTES);
ObjectSetText(name, opisanieUP+"  M30"); 
}
}
}
}   
if (price1<price3)                                          
{     
for (b=i-1;b>=1;b--)
{
price3=NormalizeDouble(iLow(NULL,30,b),Òî÷íîñòü_öåíû);
if (price3<=price1) 
{
break;
} 
if (b==1)
{
name2 =DoubleToStr( price1, 4);                    
ObjectCreate(name2, OBJ_HLINE,0, 0,price1) ;            
ObjectSet(name2,OBJPROP_COLOR,DwnlineM30);                
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondDWN=iTime(NULL,30, i); 
opisanieDWN=TimeToStr(SecondDWN,TIME_DATE|TIME_MINUTES);
ObjectSetText(name2, opisanieDWN+"  M30"); 
}
}
}
}
}
}
}
///////m30
//////////////////////////H1

if (Ãýï_H1==true)
{
shiftDALNOSTGAP=iBarShift(NULL,60,DALNOSTGAP,false);
DG=shiftDALNOSTGAP;
for (i=DG;i>1;i--)
{
if (Ïîêàçûâàòü_óðîâíè_ãýïà==true)
{
price1=NormalizeDouble(iClose(NULL,60,i),Òî÷íîñòü_öåíû);     
price2=NormalizeDouble(iHigh(NULL,60,i-1),Òî÷íîñòü_öåíû);    
price3=NormalizeDouble(iLow(NULL,60,i-1),Òî÷íîñòü_öåíû);                
//*****************************************************
if (price1>price2)                                      
{     
for (b=i-1;b>=1;b--)
{
price2=NormalizeDouble(iHigh(NULL,60,b),Òî÷íîñòü_öåíû);
if (price2>=price1) 
{
break;
} 
if (b==1)
{
name =DoubleToStr( price1, 4);                     
ObjectCreate(name, OBJ_HLINE,0, 0,price1) ;              
ObjectSet(name,OBJPROP_COLOR,UplineH1);                    
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondUP=iTime(NULL,60,i); 
opisanieUP=TimeToStr(SecondUP,TIME_DATE|TIME_MINUTES);
ObjectSetText(name, opisanieUP+"  H1"); 
}
}
}
}   
if (price1<price3)                                          
{     
for (b=i-1;b>=1;b--)
{
price3=NormalizeDouble(iLow(NULL,60,b),Òî÷íîñòü_öåíû);
if (price3<=price1) 
{
break;
} 
if (b==1)
{
name2 =DoubleToStr( price1, 4);                    
ObjectCreate(name2, OBJ_HLINE,0, 0,price1) ;            
ObjectSet(name2,OBJPROP_COLOR,DwnlineH1);                
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondDWN=iTime(NULL,60, i); 
opisanieDWN=TimeToStr(SecondDWN,TIME_DATE|TIME_MINUTES);
ObjectSetText(name2, opisanieDWN+"  H1"); 
}
}
}
}
}
}
}
///////////H4
if (Ãýï_H4==true)
{
shiftDALNOSTGAP=iBarShift(NULL,240,DALNOSTGAP,false);
DG=shiftDALNOSTGAP;
for (i=DG;i>1;i--)
{
if (Ïîêàçûâàòü_óðîâíè_ãýïà==true)
{
price1=NormalizeDouble(iClose(NULL,240,i),Òî÷íîñòü_öåíû);     
price2=NormalizeDouble(iHigh(NULL,240,i-1),Òî÷íîñòü_öåíû);    
price3=NormalizeDouble(iLow(NULL,240,i-1),Òî÷íîñòü_öåíû);                
//*****************************************************
if (price1>price2)                                      
{     
for (b=i-1;b>=1;b--)
{
price2=NormalizeDouble(iHigh(NULL,240,b),Òî÷íîñòü_öåíû);
if (price2>=price1) 
{
break;
} 
if (b==1)
{
name =DoubleToStr(price1, 4);                     
ObjectCreate(name, OBJ_HLINE,0, 0,price1) ;              
ObjectSet(name,OBJPROP_COLOR,UplineH4);                    
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondUP=iTime(NULL,240,i); 
opisanieUP=TimeToStr(SecondUP,TIME_DATE|TIME_MINUTES);
ObjectSetText(name, opisanieUP+"  H4"); 
}
}
}
}   
if (price1<price3)                                          
{     
for (b=i-1;b>=1;b--)
{
price3=NormalizeDouble(iLow(NULL,240,b),Òî÷íîñòü_öåíû);
if (price3<=price1) 
{
break;
} 
if (b==1)
{
name2 =DoubleToStr( price1, 4);                    
ObjectCreate(name2, OBJ_HLINE,0, 0,price1) ;            
ObjectSet(name2,OBJPROP_COLOR,DwnlineH4);                
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondDWN=iTime(NULL,240, i); 
opisanieDWN=TimeToStr(SecondDWN,TIME_DATE|TIME_MINUTES);
ObjectSetText(name2, opisanieDWN+"  H4"); 
}
}
}
}
}
}
}
///////////D1
if (Ãýï_H4==true)
{
shiftDALNOSTGAP=iBarShift(NULL,1440,DALNOSTGAP,false);
DG=shiftDALNOSTGAP;
for (i=DG;i>1;i--)
{
if (Ïîêàçûâàòü_óðîâíè_ãýïà==true)
{
price1=NormalizeDouble(iClose(NULL,1440,i),Òî÷íîñòü_öåíû);     
price2=NormalizeDouble(iHigh(NULL,1440,i-1),Òî÷íîñòü_öåíû);    
price3=NormalizeDouble(iLow(NULL,1440,i-1),Òî÷íîñòü_öåíû);                
//*****************************************************
if (price1>price2)                                      
{     
for (b=i-1;b>=1;b--)
{
price2=NormalizeDouble(iHigh(NULL,1440,b),Òî÷íîñòü_öåíû);
if (price2>=price1) 
{
break;
} 
if (b==1)
{
name =DoubleToStr(price1, 4);                     
ObjectCreate(name, OBJ_HLINE,0, 0,price1) ;              
ObjectSet(name,OBJPROP_COLOR,UplineD1);                    
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondUP=iTime(NULL,1440,i); 
opisanieUP=TimeToStr(SecondUP,TIME_DATE|TIME_MINUTES);
ObjectSetText(name, opisanieUP+"  D1"); 
}
}
}
}   
if (price1<price3)                                          
{     
for (b=i-1;b>=1;b--)
{
price3=NormalizeDouble(iLow(NULL,1440,b),Òî÷íîñòü_öåíû);
if (price3<=price1) 
{
break;
} 
if (b==1)
{
name2 =DoubleToStr( price1, 4);                    
ObjectCreate(name2, OBJ_HLINE,0, 0,price1) ;            
ObjectSet(name2,OBJPROP_COLOR,DwnlineD1);                
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondDWN=iTime(NULL,1440, i); 
opisanieDWN=TimeToStr(SecondDWN,TIME_DATE|TIME_MINUTES);
ObjectSetText(name2, opisanieDWN+"  D1"); 
}
}
}
}
}
}
}
///////////W1
if (Ãýï_W1==true)
{
shiftDALNOSTGAP=iBarShift(NULL,240,DALNOSTGAP,false);
DG=shiftDALNOSTGAP;
for (i=DG;i>1;i--)
{
if (Ïîêàçûâàòü_óðîâíè_ãýïà==true)
{
price1=NormalizeDouble(iClose(NULL,10080,i),Òî÷íîñòü_öåíû);     
price2=NormalizeDouble(iHigh(NULL,10080,i-1),Òî÷íîñòü_öåíû);    
price3=NormalizeDouble(iLow(NULL,10080,i-1),Òî÷íîñòü_öåíû);                
//*****************************************************
if (price1>price2)                                      
{     
for (b=i-1;b>=1;b--)
{
price2=NormalizeDouble(iHigh(NULL,10080,b),Òî÷íîñòü_öåíû);
if (price2>=price1) 
{
break;
} 
if (b==1)
{
name =DoubleToStr(price1, 4);                     
ObjectCreate(name, OBJ_HLINE,0, 0,price1) ;              
ObjectSet(name,OBJPROP_COLOR,UplineW1);                    
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondUP=iTime(NULL,10080,i); 
opisanieUP=TimeToStr(SecondUP,TIME_DATE|TIME_MINUTES);
ObjectSetText(name, opisanieUP+"  W1"); 
}
}
}
}   
if (price1<price3)                                          
{     
for (b=i-1;b>=1;b--)
{
price3=NormalizeDouble(iLow(NULL,10080,b),Òî÷íîñòü_öåíû);
if (price3<=price1) 
{
break;
} 
if (b==1)
{
name2 =DoubleToStr( price1, 4);                    
ObjectCreate(name2, OBJ_HLINE,0, 0,price1) ;            
ObjectSet(name2,OBJPROP_COLOR,DwnlineW1);                
if (Ïîêàçûâàòü_äàòó_ãýïà==true)
{
SecondDWN=iTime(NULL,10080, i); 
opisanieDWN=TimeToStr(SecondDWN,TIME_DATE|TIME_MINUTES);
ObjectSetText(name2, opisanieDWN+"  W1"); 
}
}
}
}
}
}
}

return(0);
}

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---