0
Views
0
Downloads
0
Favorites
KillGap
//+------------------------------------------------------------------+
//| ProjectName |
//| Copyright 2012, CompanyName |
//| http://www.companyname.net |
//+------------------------------------------------------------------+
/*
âûçîâ èç êîäîâ
iCustom(
string symbol, // ñèìâîëüíîå èìÿ èíñòðóìåíòà (NULL- òåêóùèé)
int timeframe, // òàéì-ôðåéì (0- òåêóùèé)
"KillGap", // èìÿ ýòîãî èíäèêàòîðà
//
int GapPoints, // ïîðîã èäåíòèôèêàöèè ãýïà â ïï.; <0 - áåç àçïîëíåíèÿ 1-ãî áóôåðà - ñìåùåíèÿ
int GapHours, // ïîðîã ïî âðåìåíè ìåæäó ñìåæíûìè áàðàìè
// >0 - â ÷àñàõ
// <0 - â ìèíóòàõ
int applied_price, // òèï öåíû:
// 0 - PRICE_CLOSE - öåíà çàêðûòèÿ
// 1 - PRICE_OPEN - öåíà îòêðûòèÿ
// 2 - PRICE_HIGH - ìàêñ.öåíà
// 3 - PRICE_LOW - ìèí.öåíà
// 4 - PRICE_MEDIAN - ñðåäíÿÿ öåíà,(high+low)/2
// 5 - PRICE_TYPICAL - òèïè÷íàÿ öåíà,(high+low+close)/3
// 6 - PRICE_WEIGHTED - âçâåøåííàÿ öåíà çàêðûòèÿ,(high+low+close+close)/4
// 7 - îáúåì
//
int mode, // mode - íîìåð áóôåðà èíäèêàòîðà:
// 0- áóôåð áåçãýïîâûõ êîòèðîâîê
// 1- áóôåð ñìåùåíèÿ - íàêîïèòåëüíàÿ ðàçíèöà ãýïîâ
int shift // ñäâèã
);
==============
iCustom(NULL,0,"KillGap",GapPoints,GapHours,Price, 0,i); // êîòèðîâêè
iCustom(NULL,0,"KillGap",GapPoints,GapHours,Price, 1,i); // ñìåùåíèå
*/
#property indicator_chart_window
#property indicator_buffers 2
// âõîäíûå ïàðàìåòðû
extern int GapPoints=33; // ïîðîã èäåíòèôèêàöèè ãýïà â ïï.
double gp; // ïîðîã èäåíòèôèêàöèè ãýïà â öåíàõ
bool kg=0; // 1- óáèâàòü ãýï
bool ZeroBase=1; // 0 - áåç ñìåùåíèÿ; áóôåð base[] çàïîëíÿåòñÿ íóëÿìè
extern int GapHours=24; // ïîðîã ïî âðåìåíè ñìåæíûõ áàðîâ â ÷àñàõ (>0) èëè ìèíóòàõ (<0)
int gt; // ïîðîã ïî âðåìåíè â ñåêóíäàõ
extern int Price=0; // òèï öåíû
// èíä.áóôåðû
double price[],// áóôåð áåçãýïîâûõ êîòèðîâîê
base[]; // áóôåð ñìåùåíèÿ
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
if(GapPoints<0) {kg=1; GapPoints=-GapPoints; ZeroBase=0;} // 0 - áåç ñìåùåíèÿ
if(GapPoints>0) {kg=1; gp=GapPoints*Point;} // ïîðîã èäåíòèôèêàöèè ãýïà â öåíàõ
if(GapHours>0) gt=GapHours*3600; else gt=-GapHours*60; // ïîðîã ïî âðåìåíè â ñåêóíäàõ
SetIndexBuffer(0,price); // áóôåð áåçãýïîâûõ êîòèðîâîê
SetIndexLabel(0,"Price "+GapPoints+"p.");
SetIndexBuffer(1,base); // áóôåð ñìåùåíèÿ
SetIndexLabel(1,"Base "+GapHours+"h.");
IndicatorDigits(5);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void start()
{
// ãðàíèöà ïåðåñ÷åòà
static datetime gtime; // âðåìÿ ãýïà
// int limit=Bars-IndicatorCounted()-1;
// if(limit>1) {limit=Bars-1; gtime=0;}
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
if(counted_bars==0) limit-=1+1;
// çàïîëíåíèå ìàññèâà áåçãýïîâûìè êîòèðîâêàìè
for(int i=limit; i>=0; i--)
{
if(kg*(gtime!=Time[i]))
{
static double base_i; // ñìåùåíèå, êîððåêòèðóþùåå ãýï
double gap=Close[i+1]-Open[i]; // âåëè÷èíà ãýïà â öåíàõ
if((MathAbs(gap)>=gp)*(Time[i]-Time[i+1]>gt))
{
base_i+=gap; // âû÷èñëåíèå ñìåùåíèÿ
gtime=Time[i]; // âðåìÿ ãýïà
}
}
if(i==limit && i>1) base_i=0; // èíèöèàëèçàöèÿ
base[i]=ZeroBase*base_i; // ñìåùåíèå
// âûáîð öåíû
switch(Price)
{
case 0: double p=Close[i]; break;
case 1: p=Open[i]; break;
case 2: p=High[i]; break;
case 20: p=(2*High[i]+Low[i]+Close[i])/4; break; // Weighted High
case 3: p=Low[i]; break;
case 30: p=(High[i]+2*Low[i]+Close[i])/4; break; // Weighted Low
case 4: p=(High[i]+Low[i])/2; break; // Middle
case 5: p=(High[i]+Low[i]+Close[i])/3; break; // Typical
case 6: p=(High[i]+Low[i]+2*Close[i])/4; break; // Weighted
case 7: p=Volume[i]-base_i; break;
default: p=Close[i];
}
price[i]=p+base_i; // êîòèðîâêè
}
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---