Price Data Components
2
Views
0
Downloads
0
Favorites
Flet
//+-- Áëîê 1: Íà÷àëî -----------------------------------------------+
//| Flet.mq4|
//| Idea - 2006-2014- Dr. Arhimed |
//| Prodaction - Copyright 2006-2014, Dr. Arhimed |
//| All rights reserved |
#property copyright "Copyright 2006-2014, Dr. Arhimed"
#property link "https://login.mql5.com/ru/users/arhimed1973"
#property version "1.00"
#property description " Ðàáîòà èíäèêàòîðà îñíîâàíà íà ïîèñêå òî÷åê âõîäà â ðûíîê ïî 2-ì ïîñëåäíèì áàðàì íà ëþáîì ãðàôèêå â ñîîîòâåñòâèè ñ äàííûìè âíåøíèõ ïåðåìåííûõ."
#property description " Îáðàùàþ âíèìàíèå, ÷òî èíäèêàòîð îïòèìèçèðîâàí ïîä ëþáûå ãðàôèêè (â òîì ÷èñëå è ïîä çîëîòî), ïîýòîìó ðàñ÷åò çíà÷åíèé â ïóíêòàõ íàäî ïðîâîäèòü äëÿ 4-õ çíàêîâ ïîñëå çàïÿòîé."
#property indicator_chart_window
//+-- Êîíåö áëîêà 1: Íà÷àëî ----------------------------------------+
//+-- Áëîê 2: Âíåøíèå ïåðåìåííûå --------------------------------+
extern string _000="***** ÏÅÐÅÌÅÍÍÛÅ ÄËß ÈÍÄÈÊÀÒÎÐÀ *****";
extern string _001="----- Max ðàññòîÿíèå ìåæäó High/Low( â ïóíêòàõ) -----";
extern int HighLow=3;
extern string _002="----- Max ðàññòîÿíèå ìåæäó Open/Close( â ïóíêòàõ) -----";
extern int OpenClose=2;
extern string _003="----- Öâåò ñèãíàëüíîé ëèíèè íà ËÎÍÃ -----";
extern color Clr_Bull=clrBlue;
extern string _004="----- Öâåò ñèãíàëüíîé ëèíèè íà ØÎÐÒ -----";
extern color Clr_Beer=clrRed;
extern string _005="----- Äëèíà ñèãíàëüíîé ëèíèè (â áàðàõ)-----";
extern int BarLine=20;
extern string _006="----- Ðàññòîÿíèå ëèíèè îò áàðîâ (â ïóíêòàõ) -----";
extern double Distance=5;
extern string _007="----- Êîëè÷åñòâî áàðîâ â èñòîðèè (íå >20000) -----";
extern int Bar0 = 20000;
//+-- Êîíåö áëîêà 2: Âíåøíèå ïåðåìåííûå -------------------------+
//+-- Áëîê 3: Âíóòðåííèå ïåðåìåííûå -----------------------------+
int P=Period(); // Ïåðåìåííàÿ òåêóùåãî òàéìôðåéìà äëÿ ðàáîòû ñ ìàññèâàìè
int i, kk, sss; // îïðåäåëåíèå öåëî÷èñëåííûõ ïåðìåííûõ
datetime dt, dt0, dt1; // ïåðåìåííûå âðåìåíè
double B_open[20002],B_close[20002]; // Ìàññèâû öåí Open è Close áàðîâ äëÿ îòîáðàæåíèÿ èñòîðèè
double B_high[20002],B_low[20002]; // Ìàññèâû öåí High è Low áàðîâ äëÿ îòîáðàæåíèÿ èñòîðèè
int HL[20002],OC[20002]; // Ìàññèâû ðàçíèö ìåæäó High è Low, ìåæäó Open è Close äëÿ ïîèñêà ôëåòà
datetime Date1[200002]; // Ìàññèâ âðåìåíè îòêðûòèÿ áàðîâ äëÿ ïîëó÷åíèÿ ïåðâîé ëåâîé êîîðäèíàòû ïðÿìîóãîëüíèêà
int prevtime;
//+-- Êîíåö áëîêà 3: Âíóòðåííèå ïåðåìåííûå ----------------------+
//+-- Áëîê 4: Èíèöèëèçàöèÿ ñîâåòíèêà ----------------------------+
int init()
{
kk=1;
if (Digits==2 || Digits==5) {kk=10;}
if (Digits==3) {kk=100;}
if (Symbol()=="XAUUSD") {kk=100;}
if (HighLow<2) {HighLow=2;}
if (OpenClose<2) {OpenClose=2;}
if (Distance<2) {Distance=2;}
if (Bar0>20000) {Bar0=20000;}
HighLow=HighLow*kk;
OpenClose=OpenClose*kk;
Distance=Distance*kk*MathPow(10, -1*Digits);
sss=0;
dt=TimeCurrent();
prevtime = Time[0];
Starter_History(Bar0);
return(0);
}
//+-- Êîíåö áëîêà 4: Èíèöèëèçàöèÿ ñîâåòíèêà ---------------------+
//+-- Áëîê 5: Äåèíèöèëèçàöèÿ ñîâåòíèêà --------------------------+
int deinit()
{
Deletes("Ïîääåðæêà");
Deletes("Ñîïðîòèâëåíèå");
sss=0;
return(0);
}
//+-- Êîíåö áëîêà 5: Äåèíèöèëèçàöèÿ ñîâåòíèêà -------------------+
//+-- Áëîê 6: Ñòàðò ñîâåòíèêà -----------------------------------+
int start()
{
dt=TimeCurrent();
if (Time[0]==prevtime) {return(0);}
prevtime = Time[0];
Starter_History(1);
RefreshRates();
return(0);
}
//+-- Êîíåö áëîêà 6: Ñòàðò ñîâåòíèêà ----------------------------+
//+- ********************************************************** -+
//+- Ñàìîñòîÿòåëüíî íàïèñàííûå ôóíêöèè +
//+- ********************************************************** -+
//+-- Ôóíêöèÿ ïîëó÷åíèÿ èíôîðìàöèè î ôëåòå-----------------------+
void Starter_History(int BarSize)
{
// Ïîëó÷àåì äàííûå ïî ïîñëåäíèì äâóì áàðàì â òåêóùåì ÒÔ
for(i=BarSize+1;i>=0;i--)
{
B_open[i]=iOpen(Symbol(),P,i);
B_close[i]=iClose(Symbol(),P,i);
B_high[i]=iHigh(Symbol(),P,i);
B_low[i]=iLow(Symbol(),P,i);
Date1[i]=iTime(Symbol(),P,i);
HL[i]=MathAbs(B_high[i]-B_low[i])/MathPow(10, -1*Digits);
OC[i]=MathAbs(B_open[i]-B_close[i])/MathPow(10, -1*Digits);
// Èùåì ôëåò
if (i>0)
{
if ( (OC[i]<=OpenClose)&&(HL[i]<=HighLow)&&(B_open[i]==B_close[i]) )
{
dt0=Date1[i];dt1=Date1[i]+P*60*BarLine;sss++;
Create_Line("Ïîääåðæêà"+IntegerToString(sss),iHigh(Symbol(),P,i)+Distance,iHigh(Symbol(),P,i)+Distance+1*kk*MathPow(10, -1*Digits),Clr_Bull);
Create_Line("Ñîïðîòèâëåíèå"+IntegerToString(sss),iLow(Symbol(),P,i)-Distance,iLow(Symbol(),P,i)-Distance-1*kk*MathPow(10, -1*Digits),Clr_Beer);
}
}
// Êîíåö ïîèñêà ôëåòà
}
}
//+-- Êîíåö ôóíêöèè ïîëó÷åíèÿ èíôîðìàöèè î ôëåòå-----------------+
//+-- Ôóíêöèÿ ðèñîâàíèÿ ïðÿìîóãîëüíèêà â 1 ïóíêò ----------------+
void Create_Line(string ObjName, double PP1, double PP2,color ObjColor)
{
RefreshRates();
if(ObjectFind(0,ObjName)!=-1) {ObjectDelete(ObjName);} //×òîáû ñëó÷àéíî íå îñòàâèòü ñëåäû îò èíäèêàòîðà, ïðîâåðÿåì åñòü ëè ñòàðûé îáúåêò. Åñëè åñòü, óäàëÿåì åãî.
ChartRedraw(0); // Ïðåðûñîâûâàåì ýêðàí
if(ObjectFind(0,ObjName)==-1) // Åñëè íåò îáúåêòà ñîçäàåì åãî
{
ObjectCreate (ObjName, OBJ_RECTANGLE, 0,0,0,0,0); // ñîçäàíèå ïðÿìîóãîëüíèêà
ObjectSet (ObjName, OBJPROP_STYLE, STYLE_SOLID); // Òèï ëèíèè
ObjectSet (ObjName, OBJPROP_COLOR, ObjColor); // Öâåò ëèíèé ïðÿìîóãîëüíèêà
ObjectSet (ObjName, OBJPROP_FILL, ObjColor); // çàëèâêà ïðÿìîóãîëüíèêà
ObjectSet (ObjName, OBJPROP_BACK, true); // ôîíîâûé ðèñóíîê
ObjectSet (ObjName, OBJPROP_TIME1 , dt0); // 1-ÿ âðåìåííàÿ êîîðäèíàòà ïðÿìîóãîëüíèêà (ñëåâà)
ObjectSet (ObjName, OBJPROP_PRICE1, PP1); // 1-ÿ öåíîâàÿ êîîðäèíàòà ïðÿìîóãîëüíèêà (ñëåâà)
ObjectSet (ObjName, OBJPROP_TIME2 , dt1); // 2-ÿ âðåìåííàÿ êîîðäèíàòà ïðÿìîóãîëüíèêà (ñïðàâà)
ObjectSet (ObjName, OBJPROP_PRICE2, PP2); // 2-ÿ öåíîâàÿ êîîðäèíàòà ïðÿìîóãîëüíèêà (ñïðàâà)
ObjectSetInteger(0,ObjName,OBJPROP_SELECTABLE,false); //--- çàïðåò âûäåëåíèÿ îáúåêòà ìûøêîé
ObjectSetInteger(0,ObjName,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1|OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); // Îòîáðàæàåì íà ÒÔ îò Ì1 äî Í1
}
ChartRedraw(0);
}
//+-- Êîíåö ôóíêöèè ðèñîâàíèÿ ïðÿìîóãîëüíèêà â 1 ïóíêò ----------+
//+-- Ôóíêöèÿ óäàëåíèÿ îáúåêòîâ, íàðèñîâàííûõ èíäèêàòîðîì -------+
void Deletes(string prefix)
{
for (i = ObjectsTotal() - 1; i >= 0; i--)
{
string name = ObjectName(i);
if (StringFind(name, prefix) == 0) {ObjectDelete(name);}
}
}
//+-- Êîíåö ôóíêöèÿ óäàëåíèÿ îáúåêòîâ, íàðèñîâàííûõ èíäèêàòîðîì -+
//+- Êîíåö ñàìîñòîÿòåëüíî íàïèñàííûõ ôóíêöèé +
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
---