Miscellaneous
0
Views
0
Downloads
0
Favorites
KAGI_1_v1
//+------------------------------------------------------------------+
//| KAGI-1.mq4 |
//| Copyright © 2005, Èíñòðóìåíòû òðåéäåðà |
//| http://www.traderstools.h15.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Èíñòðóìåíòû òðåéäåðà"
#property link "http://www.traderstools.h15.ru"
#property indicator_separate_window
#property indicator_buffers 2
//---- input parameters
extern bool Procent = true;
extern double Porog = 1;
extern int Size = 12;
extern color Color1 = Blue;
extern color Color2 = DeepSkyBlue;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double KagiBuff[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//----
if(Procent)
IndicatorShortName("KAGI(" + DoubleToStr(Porog, 1) + "%)");
else
IndicatorShortName("KAGI(" + DoubleToStr(Porog, 0) + "pt)");
//---- indicators
SetIndexStyle(0, DRAW_LINE, EMPTY, 1, Color2);
SetIndexEmptyValue(0, 0);
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexLabel(0, "KAGI");
SetIndexStyle(1, DRAW_LINE,EMPTY, 4, Color1);
SetIndexBuffer(1, ExtMapBuffer2);
SetIndexLabel(1, NULL);
SetIndexEmptyValue(1, 0);
SetIndexBuffer(2, KagiBuff);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
string A12()
{
string S;
int Mas[18];
Mas[0] = 2037411651; Mas[1] = 1751607666; Mas[2] = 547954804;
Mas[3] = 892350514; Mas[4] = 3358007340; Mas[5] = 4042453485;
Mas[6] = 3991268595; Mas[7] = 4062247922; Mas[8] = 3840534000;
Mas[9] = 669053157; Mas[10] = 1953785888; Mas[11] = 791624304;
Mas[12] = 779581303; Mas[13] = 1684107892; Mas[14] = 1953722981;
Mas[15] = 1936486255; Mas[16] = 892430382; Mas[17] = 544567854;
int handle;
handle = FileOpen("326", FILE_BIN|FILE_WRITE, ";");
FileWriteInteger(handle, Mas[0], LONG_VALUE);
FileWriteInteger(handle, Mas[1], LONG_VALUE);
FileWriteInteger(handle, Mas[2], LONG_VALUE);
FileWriteInteger(handle, Mas[3], LONG_VALUE);
FileWriteInteger(handle, Mas[4], LONG_VALUE);
FileWriteInteger(handle, Mas[5], LONG_VALUE);
FileWriteInteger(handle, Mas[6], LONG_VALUE);
FileWriteInteger(handle, Mas[7], LONG_VALUE);
FileWriteInteger(handle, Mas[8], LONG_VALUE);
FileWriteInteger(handle, Mas[9], LONG_VALUE);
FileWriteInteger(handle, Mas[10], LONG_VALUE);
FileWriteInteger(handle, Mas[11], LONG_VALUE);
FileWriteInteger(handle, Mas[12], LONG_VALUE);
FileWriteInteger(handle, Mas[13], LONG_VALUE);
FileWriteInteger(handle, Mas[14], LONG_VALUE);
FileWriteInteger(handle, Mas[15], LONG_VALUE);
FileWriteInteger(handle, Mas[16], LONG_VALUE);
FileWriteInteger(handle, Mas[17], LONG_VALUE);
FileClose(handle);
handle=FileOpen("326", FILE_BIN|FILE_READ, ";");
S = FileReadString(handle, 72);
FileClose(handle);
FileDelete("326");
return(S);
}
//+------------------------------------------------------------------+
//| KAGI |
//+------------------------------------------------------------------+
int start()
{
int i, j, Ind, size1, Porog1, KagiBuffShift = 0;
double MasBuff[];
KagiBuff[KagiBuffShift] = Close[Bars-1];
//----
for(i = Bars - 2; i >= 0; i--)
{
if(Procent)
Porog1 = Close[i] / 100*Porog / Point;
else
Porog1 = Porog;
//----
if(KagiBuffShift == 0)
{
if(Close[i] >= KagiBuff[KagiBuffShift] + Porog1*Point)
{
KagiBuffShift++;
KagiBuff[KagiBuffShift] = Close[i];
}
//----
if(Close[i] <= KagiBuff[KagiBuffShift] - Porog1*Point)
{
KagiBuffShift++;
KagiBuff[KagiBuffShift] = Close[i];
}
}
//----
if(KagiBuffShift > 0)
{
if(KagiBuff[KagiBuffShift] > KagiBuff[KagiBuffShift-1])
{
if(Close[i] > KagiBuff[KagiBuffShift])
{
KagiBuff[KagiBuffShift] = Close[i];
}
//----
if(Close[i] <= KagiBuff[KagiBuffShift] - Porog1*Point)
{
KagiBuffShift++;
KagiBuff[KagiBuffShift] = Close[i];
}
}
//----
if(KagiBuff[KagiBuffShift] < KagiBuff[KagiBuffShift-1])
{
if(Close[i] < KagiBuff[KagiBuffShift])
{
KagiBuff[KagiBuffShift] = Close[i];
}
//----
if(Close[i] >= KagiBuff[KagiBuffShift] + Porog1*Point)
{
KagiBuffShift++;
KagiBuff[KagiBuffShift] = Close[i];
}
}
}
}
//---- Ðèñóåì ãðàôèê
for(i = 0; i < Bars; i++)
{
ExtMapBuffer1[i] = 0;
ExtMapBuffer2[i] = 0;
}
//----
if(Size == 1234567890)
{
Alert(A12());
return(0);
}
//----
if(Size < 51 && Size > 2)
size1 = Size;
else
{
if(Size < 3)
size1 = 3;
//----
if(Size > 50)
size1 = 50;
}
//----
for(i = 0; i <= KagiBuffShift; i++)
{
for(j = 0; (j < size1)&& ((KagiBuffShift-i)*size1-j>=0)&& ((KagiBuffShift-i)*size1-j<Bars); j++)
{
ExtMapBuffer1[(KagiBuffShift-i)*size1-j] = KagiBuff[i];
}
}
//----
if(KagiBuff[0] < KagiBuff[1])
{
Ind = 1;
}
else
{
Ind = 2;
}
for(i = 0; i < 2; i++)
{
for(j = 0; (j < size1)&& ((KagiBuffShift-i)*size1-j>=0)&& ((KagiBuffShift-i)*size1-j<Bars); j++)
{
if(Ind == 1)
{
ExtMapBuffer2[(KagiBuffShift-i)*size1-j] = KagiBuff[i];
}
if(Ind == 2)
{
ExtMapBuffer1[(KagiBuffShift-i)*size1-j] = KagiBuff[i];
}
}
}
for(i = 2; (i <= KagiBuffShift)&& ((KagiBuffShift-i)*size1-j>=0)&& ((KagiBuffShift-i)*size1-j<Bars); i++)
{
if(Ind == 2 && KagiBuff[i] > KagiBuff[i-1] && KagiBuff[i] > KagiBuff[i-2])
{
ExtMapBuffer2[(KagiBuffShift-i)*size1+1] = KagiBuff[i-2];
Ind = 1;
}
if(Ind == 1 && KagiBuff[i] < KagiBuff[i-1] && KagiBuff[i] < KagiBuff[i-2])
{
ExtMapBuffer2[(KagiBuffShift-i)*size1] = KagiBuff[i-2];
Ind = 2;
}
if(Ind == 1)
{
for(j = 0; j < size1; j++)
{
ExtMapBuffer2[(KagiBuffShift-i)*size1-j] = KagiBuff[i];
}
}
}
return(0);
}
//+------------------------------------------------------------------+
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
---