Miscellaneous
0
Views
0
Downloads
0
Favorites
RENKO_2
//+------------------------------------------------------------------+
//| RENKO-2.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 4
//---- input parameters
extern int Porog = 40;
extern color ColorOfFon = White;
extern color Color1 = Blue;
extern color Color2 = Red;
//---- buffers
double Lab[];
double HU[];
double HD[];
double Fon[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(4);
IndicatorShortName("RENKO(" + Porog + "pt)");
//---- indicators
SetIndexStyle(0, DRAW_LINE,EMPTY, 0, ColorOfFon);
SetIndexBuffer(0, Lab);
SetIndexLabel(0, "RENKO");
SetIndexEmptyValue(0,0);
SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 8, Color1);
SetIndexBuffer(1, HU);
SetIndexLabel(1, NULL);
SetIndexEmptyValue(1,0);
SetIndexStyle(2, DRAW_HISTOGRAM,EMPTY, 8, Color2);
SetIndexBuffer(2, HD);
SetIndexLabel(2, NULL);
SetIndexEmptyValue(2,0);
SetIndexStyle(3, DRAW_HISTOGRAM,EMPTY, 8, ColorOfFon);
SetIndexBuffer(3, Fon);
SetIndexLabel(3, NULL);
SetIndexEmptyValue(3, 0);
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectDelete("RENKO-" + Porog);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int i, ii, j, RenkoBuffShift = 0;
double RenkoBuff[];
double RenkoBuff2[];
//----
if(Porog == 1234567890)
{
Alert(A12());
return(0);
}
ArrayResize(RenkoBuff, Bars);
ArrayResize(RenkoBuff2, Bars);
RenkoBuff[RenkoBuffShift] = Close[Bars-1];
//----
for(i = Bars - 2; i >= 0; i--)
{
if(RenkoBuffShift > ArraySize(RenkoBuff) - 100)
{
ArrayCopy(RenkoBuff2, RenkoBuff);
ArrayResize(RenkoBuff, ArraySize(RenkoBuff) + Bars);
ArrayCopy(RenkoBuff, RenkoBuff2, 0, 0, RenkoBuffShift + 1);
ArrayResize(RenkoBuff2, ArraySize(RenkoBuff2) + Bars);
}
//----
if(RenkoBuffShift == 0)
{
while(Close[i] > RenkoBuff[RenkoBuffShift] + Porog*Point)
{
RenkoBuffShift++;
RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + Porog*Point;
}
//----
while(Close[i]<RenkoBuff[RenkoBuffShift]-Porog*Point)
{
RenkoBuffShift++;
RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-Porog*Point;
}
}
//----
if(RenkoBuff[RenkoBuffShift] > RenkoBuff[RenkoBuffShift-1])
{
if(Close[i] > RenkoBuff[RenkoBuffShift] + Porog*Point)
{
while(Close[i] > RenkoBuff[RenkoBuffShift] + Porog*Point)
{
RenkoBuffShift++;
RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + Porog*Point;
}
}
if(Close[i] < RenkoBuff[RenkoBuffShift] - 2*Porog*Point)
{
RenkoBuffShift++;
RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - 2*Porog*Point;
while(Close[i] < RenkoBuff[RenkoBuffShift] - Porog*Point)
{
RenkoBuffShift++;
RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-Porog*Point;
}
}
}
//----
if(RenkoBuff[RenkoBuffShift] < RenkoBuff[RenkoBuffShift-1])
{
if(Close[i] < RenkoBuff[RenkoBuffShift] - Porog*Point)
{
while(Close[i] < RenkoBuff[RenkoBuffShift] - Porog*Point)
{
RenkoBuffShift++;
RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - Porog*Point;
}
}
if(Close[i] > RenkoBuff[RenkoBuffShift] + 2*Porog*Point)
{
RenkoBuffShift++;
RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + 2*Porog*Point;
while(Close[i] > RenkoBuff[RenkoBuffShift] + Porog*Point)
{
RenkoBuffShift++;
RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + Porog*Point;
}
}
}
}
//---- Ðèñóåì ãðàôèê
ObjectCreate("RENKO-" + Porog, OBJ_RECTANGLE, WindowFind("RENKO(" + Porog + "pt)"),
0, 0, 0, 0);
ObjectSet("RENKO-" + Porog, OBJPROP_TIME2, Time[0]);
ObjectSet("RENKO-" + Porog, OBJPROP_PRICE2, High[ArrayMaximum(RenkoBuff)]*2);
ObjectSet("RENKO-" + Porog, OBJPROP_COLOR, ColorOfFon);
for(i = 0; i < Bars; i++)
{
Lab[i] = 0;
HU[i] = 0;
HD[i] = 0;
Fon[i] = 0;
}
if(RenkoBuffShift > Bars - 100)
{
for(i = 0; i <= Bars - 100; i++)
RenkoBuff[i] = RenkoBuff[i+RenkoBuffShift-(Bars-100)];
RenkoBuffShift = Bars - 100;
}
for(i = 1; i <= RenkoBuffShift; i++)
Lab[RenkoBuffShift-i] = RenkoBuff[i];
for(i = 1; i <= RenkoBuffShift; i++)
{
if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
{
HU[RenkoBuffShift-i] = RenkoBuff[i];
HD[RenkoBuffShift-i] = RenkoBuff[i-1];
Fon[RenkoBuffShift-i] = RenkoBuff[i-1];
}
if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
{
HU[RenkoBuffShift-i] = RenkoBuff[i];
HD[RenkoBuffShift-i] = RenkoBuff[i] - Porog*Point;
Fon[RenkoBuffShift-i] = RenkoBuff[i] - Porog*Point;
}
if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
{
HD[RenkoBuffShift-i] = RenkoBuff[i-1];
HU[RenkoBuffShift-i] = RenkoBuff[i];
Fon[RenkoBuffShift-i] = RenkoBuff[i];
}
if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
{
HD[RenkoBuffShift-i] = RenkoBuff[i] + Porog*Point;
HU[RenkoBuffShift-i] = RenkoBuff[i];
Fon[RenkoBuffShift-i] = RenkoBuff[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
---