Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
New_Fractals_Lines_v1_0_1
//+------------------------------------------------------------------+
//| New_Fractals_Lines v1.0.1 |
//| Copyright © -2007, olyakish |
//| plutonia-dmb#yandex.ru |
//+------------------------------------------------------------------+
// èñïðàâèë ãëþê ñ "invalid time value for ObjectMove function"
#property copyright "olyakish"
#property link "plutonia-dmb#yandex.ru"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Green // Ïðèñåäàþùèé
#property indicator_color2 Red // Ïðèñåäàþùèé
//----
extern int Pips = 5;
double ExtLimeBuffer[];
double ExtRedBuffer[];
//----
double AllHLDown, AllVolDown, AllHLUp, AllVolUp, AllMFIDown, AllMFIUp;
int OldFractal = 2;
bool Up = false, Down = false;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
SetIndexShift(0, 0);
SetIndexShift(1, 0);
//----
SetIndexBuffer(0, ExtLimeBuffer);
SetIndexBuffer(1, ExtRedBuffer);
//----
SetIndexStyle(0, DRAW_ARROW, 0, 1);
SetIndexStyle(1, DRAW_ARROW, 0, 1);
//----
SetIndexArrow(0, 177);
SetIndexArrow(1, 177);
//----
ObjectCreate("Up", OBJ_TREND, 0, iTime(NULL, 0, 2), High[2],
iTime(NULL, 0, 1), High[1],0,0);
ObjectSet("Up", OBJPROP_COLOR, Blue);
ObjectSet("Up", OBJPROP_RAY, true);
//----
ObjectCreate("Down", OBJ_TREND, 0, iTime(NULL, 0, 2), Low[2],
iTime(NULL, 0, 1), Low[1],0,0);
ObjectSet("Down", OBJPROP_COLOR, Brown);
ObjectSet("Down", OBJPROP_RAY, true);
//----
Comment("New_Fractals_Lines v1.0.1");
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int deinit()
{
ObjectDelete("Up");
ObjectDelete("Down");
//----
Comment("");
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
ArrayInitialize(ExtLimeBuffer, NULL);
ArrayInitialize(ExtRedBuffer, NULL);
for(int i = 1000; i >= 3; i--)
{
// íàñ èíòåðåñóåò òîëüêî ñèòóàöèÿ êîãäà íà áàðå îäèí ôðàêòàë
// (â ëþáóþ ñòîðîíó)
// åñëè äâà ôðàêòàëà íà îäíîì áàðå, òî îòñåèâàåì òàêèå ñèòóàöèè
if(iFractals(NULL, 0, MODE_UPPER, i) != 0)
{
Up = true;
Down = false;
}
if(iFractals(NULL, 0, MODE_LOWER, i) != 0)
{
Up = false;
Down = true;
}
// äâà ôðàêòàëà ñðàçó - èãíîðèðóåì
if(iFractals(NULL, 0, MODE_UPPER, i) != 0 &&
iFractals(NULL, 0, MODE_LOWER,i) != 0)
{
Up = false;
Down = false;
}
// íà òåêóùåì áàðå åñòü ôðàêòàë âíèç
if(Up == false && Down == true)
{
AllHLDown = 0;
AllVolDown = 0;
AllHLDown = High[i+2] - Low[i+2] + High[i+1] -
Low[i+1] + High[i] - Low[i] + High[i-1] -
Low[i-1] + High[i-2] - Low[i-2];
AllVolDown = Volume[i+2] + Volume[i+1] + Volume[i] +
Volume[i-1] + Volume[i-2];
AllMFIDown = AllHLDown / AllVolDown;
// ïðåäûäóùèé ôðàêòàë áûë ââåðõ - ñðàâíèâàåì äâà ôðàêòàëà
// (ââåðõ è òåêóùèé âíèç)
if(OldFractal == 1)
{
// èìååì ïðèñåäàþùèé ôðàêòàë (MFI - îáúåì +)
if(AllMFIDown < AllMFIUp && AllVolDown > AllVolUp)
{
// çàïîëíÿåì áóôåðû
ExtLimeBuffer[i] = NULL;
ExtRedBuffer[i] = Low[i]; // - Pips*Point;
}
}
OldFractal = 0;
}
// íà òåêóùåì áàðå åñòü ôðàêòàë ââåðõ
if(Up == true && Down == false)
{
AllHLUp = 0;
AllVolUp = 0;
AllHLUp = High[i+2] - Low[i+2] + High[i+1] - Low[i+1] +
High[i] - Low[i] + High[i-1] - Low[i-1] +
High[i-2] - Low[i-2];
AllVolUp = Volume[i+2] + Volume[i+1] + Volume[i] +
Volume[i-1] + Volume[i-2];
AllMFIUp = AllHLUp / AllVolUp;
// ïðåäûäóùèé ôðàêòàë áûë âíèç - ñðàâíèâàåì äâà ôðàêòàëà
// (ââåðõ è òåêóùèé âíèç)
if(OldFractal == 0)
{
// èìååì ïðèñåäàþùèé ôðàêòàë (MFI - îáúåì +)
if(AllMFIUp < AllMFIDown && AllVolUp > AllVolDown)
{
// çàïîëíÿåì áóôåðû
ExtLimeBuffer[i] = High[i]; // + Pips*Point;
ExtRedBuffer[i] = NULL;
}
}
OldFractal = 1;
}
}
double _Price[2,2];
int _Time[2,2];
ArrayInitialize(_Price, -1);
ArrayInitialize(_Time, -1);
for(i = 3; i <= 1000; i++)
{
//up
if(ExtLimeBuffer[i] != NULL && _Price[0,0] != -1 &&
_Price[1,0] == -1 )
{
_Price[1,0] = ExtLimeBuffer[i];
_Time[1,0] = iTime(NULL, 0, i);
}
if(ExtLimeBuffer[i]!=NULL && _Price[0,0]==-1)
{
_Price[0,0] = ExtLimeBuffer[i];
_Time[0,0] = iTime(NULL, 0, i);
}
// down
if(ExtRedBuffer[i] != NULL && _Price[0,1] != -1 &&
_Price[1,1] == -1)
{
_Price[1,1] = ExtRedBuffer[i];
_Time[1,1] = iTime(NULL, 0, i);
}
if(ExtRedBuffer[i] != NULL && _Price[0,1] == -1)
{
_Price[0,1] = ExtRedBuffer[i];
_Time[0,1] = iTime(NULL, 0, i);
}
}
ObjectMove("Up", 1, _Time[0,0], _Price[0,0]);
ObjectMove("Up", 0, _Time[1,0], _Price[1,0]);
//----
ObjectMove("Down", 1, _Time[0,1], _Price[0,1]);
ObjectMove("Down", 0, _Time[1,1], _Price[1,1]);
//----
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
---