//+------------------------------------------------------------------+
//| ÄÍÅÂÍÎÉ ÊÀÍÀË GLORINIKA.
//| Çà îñíîâó âçÿò è äîðàáîòàí i-DayRange.mq4 http://www.kimiv.ru
//| 17.11.2005 Èíäèêàòîð äíåâíîãî äèàïàçîíà. Êèì Èãîðü Â. aka KimIV
//+------------------------------------------------------------------+
//20090309 Nikita-Kiev 4 Glorinika http://forum.alpari-idc.ru/thread24588-297.html
/* Ýòîò èíäèêàòîð, ïîäàðîê òðåéäåðó Glorinika, â äåíü 8 Ìàðòà.
Ñðåäè Èíäèêàòîðîâ äíåâíîãî äèàïàçîíà, i-DayRange.mq4 îêàçàëñÿ ëó÷øå âñåõ,
è ïîýòîìó áûëî ðåøåíî åãî äîðàáîòàòü,
 èòîãå ïîëó÷èëñÿ äîâîëüíî ïðàêòè÷íûé èíäèêàòîð, ïîìîãàþùèé ðàçîáðàòüñÿ â ñèòóàöèè
íà ðûíêå â òå÷åíèè äíÿ, à òàêæå è çàðàáàòûâàòü.
Êàê ïîëüçîâàòüñÿ. Ýòîò èíäèêàòîð ýôôåêòèâíî íà÷èíàåò ðàáîòàòü ñ îòêðûòèåì åâðîïåéñêîé ñåññèè.
Ïðèìåíÿåòñÿ íà ìàëûõ òàéì ôðåéìàõ, íà÷èíàÿ îò 1 ìèí è âûøå. Ïðåäíàçíà÷åí äëÿ ïèïñîâêè,
èëè îïðåäåëåíèÿ ÷åòêîé òî÷êè âõîäà â ðûíîê. Ââåðõó ãðàôèêà â êîììåíòàðèÿõ
íàõîäèòñÿ íåîáõîäèìàÿ äëÿ àíàëèçà èíôîðìàöèÿ. Ñïðåä = â íåêîòîðûõ ÄÖ, èíîãäà èçìåíÿåòñÿ
(íåîáõîäèìî êîíòðîëèðîâàòü), Êàíàë = äèàïàçîí äíåâíîãî êàíàëà â ïóíêòàõ.
Ñëåäóþùèå òðè öèôðû, äèàïàçîí ïîñëåäíèõ òðåõ ñâå÷åé, ñ ïëþñîì - ââåðõ, ñ ìèíóñîì âíèç,
äâîåòî÷èå : îòêðûòèå ðàâíî çàêðûòèþ.
Äàëüøå, êàê ïðèìåð: 1/8 = 22 . 1/8 = ýòî äèàïàçîí â ïóíêòàõ, êàæäîãî èç 8 äåëåíèé Ôèáî.
Òî åñòü, âåñü äíåâíîé äèàïàçîí äåëèòñÿ íà 8, è òîãäà äèàïàçîí
ìåæäó 62% è 50% áóäåò ðàâåí 1/8 , èëè = 22 ïóíêòà.
Ñî âðåìåíåì ìîæíî ðàçîáðàòüñÿ, ñ èñïîëüçîâàíèåì ýòèõ êîììåíòàðèåâ.
Ñâåðõó è ñíèçó äíåâíîãî êàíàëà = Ôèáî, ñòîÿò öèôðû ïîêàçûâàþùèå â ïóíêòàõ
ðàññòîÿíèå îò öåíû äî Õàÿ èëè Ëîó, äíåâíîãî äèàïàçîíà.
Êàê ïîëüçîâàòüñÿ Ôèáî, ïðè îòêàòå â 12,5 è 25, èëè 38%% (â çàâèñèìîñòè îò ñèòóàöèè íà ðûíêå!!!),
ñòàíîâèìñÿ â ïîçèöèþ ïî íàïðàâëåíèþ äâèæåíèÿ, = (äîï. âàæíîå óñëîâèå,=òîëüêî ïðè äèàïàçîíå êàíàëà
áîëüøå 80-100 ïóíêòîâ, âîîáùå äëÿ êàæäîé âàëþòû, äèàïàçîí = äûõàíèå âàëþòû = îïðåäåëÿåòñÿ ïåðñîíàëüíî).
Êðàñíûå è ñèíèå ëèíèè íà ãðàôèêå ïîêàçûâàþò óðîâíè ïîääåðæêè è ñîïðîòèâëåíèÿ, íà äàííûé ìîìåíò.
Ïðè íàâåäåíèè íà íèõ êóðñîðîì, ïîêàçûâàþòñÿ èõ íàçâàíèå. Àëåðò, åñëè èñïîëüçîâàòü ïî óìîë÷àíèþ = íîëü,
(ëó÷øèé âàðèàíò) è íà íåñêîëüêèõ âàëþòàõ îäíîâðåìåííî,òî íàäîåäëèâîå è ÷àñòîå ïèùàíèå ãîâîðèò, ÷òî
íà÷àëîñü äâèæåíèå èëè òðåíä.
Òèøèíà ãîâîðèò, ÷òî ïðîèñõîäèò îòêàò èëè ôëåò. Âåðòèêàëüíûå ëèíèè = ïîêàçûâàþò î
ïðèáëèæåíèè îêîí÷àíèÿ 4-÷àñîâîê, èëè ÷àñîâîê
òîæå î÷åíü âàæíûé ìîìåíò â àíàëèçå. Âðîäå âñå. Íó, è åùå, ýòîò èíäþê èíîãäà íåîáõîäèìî ïåðåêëþ÷àòü
ñ îäíîãî òàéìôðåéìà íà äðóãîé.
(è èíîãäà (ëó÷øå ïî÷àøå) ïðîñìàòðèâàòü íà ëèíåéíûõ ãðàôèêàõ). Âðîäå âñå. ÓÑÏÅÕÎÂ.
*/
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 SteelBlue
#property indicator_color2 SteelBlue
#property indicator_color3 LightSlateGray
#property indicator_color4 DarkGray
#property indicator_color5 DarkGray
#property indicator_color6 DarkGray
#property indicator_color7 DarkGray
#property indicator_color8 DarkGray
//------- Îáíîâëåíèå èíäèêàòîðà ïðîèñõîäèò êàæäûé òèê -------------------------------
int ind_shift = 4;
int Range_N_bars = 2;
extern int NumberOfDays = 1; // Êîëè÷åñòâî äíåé (0-âñå)
extern int MaxRange = 500; // Ìàêñèìàëüíûé äèàïàçîí êàíàëà
extern string Alert_Line = " if set -1, will shut up ";//"Åñëè âûñòàâèòü -1 ïèùàòü íå áóäåò";//
extern int Alert_HighLine=0;
extern int Alert_LowLine=0;
extern bool PopupON = false ; // true false
extern bool scalp = false; // true false
bool ShowContinue = True; // Ïîêàçûâàòü ïðîäîëæåíèå ëèíèé True false
bool ShowPrice = false; // Ïîêàçûâàòü öåíîâûå óðîâíè
color clFont = Green; // Öâåò øðèôòà
int SizeFont = 8; // Ðàçìåð øðèôòà
int OffSet = 10; // Ñìåùåíèå //extern
string AlertSound="alert.wav";
// extern bool EmailON=false;
double nPoint = 0;
double shifthigh[], shiftlow[];
double Line1[], Line2[], Line3[], Line4[],Line5[],Line6[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void init() {
SetIndexBuffer (0, shifthigh);SetIndexDrawBegin(0, 0);
SetIndexLabel (0, "Up Channel"); SetIndexStyle (0, DRAW_LINE,2,0);
//+---------
SetIndexBuffer (1, shiftlow); SetIndexDrawBegin(1, 0);
SetIndexLabel (1, "Down Channel"); SetIndexStyle (1, DRAW_LINE,2,0);
//+---------
SetIndexStyle(2,DRAW_LINE,2,0); SetIndexBuffer(2,Line1);
SetIndexLabel(2," 12_percent ");SetIndexDrawBegin(2,0);
//+---------
SetIndexStyle(3,DRAW_LINE,2,0);SetIndexBuffer(3,Line2);
SetIndexLabel(3," 25_percent ");SetIndexDrawBegin(3,0);
//+---------
SetIndexStyle(4,DRAW_LINE,2,0);SetIndexBuffer(4,Line3);
SetIndexLabel(4," 38_percent ");SetIndexDrawBegin(4,0);
//+---------
SetIndexStyle(5,DRAW_LINE,2,0);SetIndexBuffer(5,Line4);
SetIndexLabel(5," 62_percent ");SetIndexDrawBegin(5,0);
//+---------
SetIndexStyle(6,DRAW_LINE,2,0);SetIndexBuffer(6,Line5);
SetIndexLabel(6," 75_percent ");SetIndexDrawBegin(6,0);
//+---------
SetIndexStyle(7,DRAW_LINE,2,0);SetIndexBuffer(7,Line6);
SetIndexLabel(7," 12_percent ");SetIndexDrawBegin(7,0);
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
ObjectsDeleteAll(); Comment("");
}
//+------------------------------------------------------------------+
int start(){
datetime dt=CurTime();
datetime t01 = iTime(NULL,0,0), t1 = iTime(NULL,0,1);
double dH,d2,dH2,dL2;
double HighLine=0, LowLine=0,AverLine1=0,AverLine2=0;
double AverLine3=0,AverLine4=0,AverLine5=0,AverLine6=0;
nPoint = GetPoint(Symbol());
int i, j, kb;
for (i=NumberBar(); i>=0; i--) {
if (TimeHour(Time[i])==0 && TimeMinute(Time[i])==0) {
HighLine=iHigh(Symbol(),0,i);
LowLine=iLow(Symbol(),0,i);
} else {
if (MaxRange<=0 || MaxRange*nPoint>HighLine-LowLine) {
if (iHigh(NULL,0,i)>HighLine) HighLine=iHigh(NULL,0,i);
if (iLow(NULL,0,i)<LowLine) LowLine=iLow(NULL,0,i);
}
}
AverLine1=LowLine+(HighLine-LowLine)*12/100;
AverLine2=LowLine+(HighLine-LowLine)*25/100;
AverLine3=LowLine+(HighLine-LowLine)*38/100;
AverLine4=LowLine+(HighLine-LowLine)*62/100;
AverLine5=LowLine+(HighLine-LowLine)*75/100;
AverLine6=LowLine + (HighLine-LowLine)*88/100;
//+---------
kb=(StrToTime(TimeToStr(Time[0], TIME_DATE)+" 23:59")-Time[0])/Period()/60;
if (i==0 && ShowContinue) {
SetIndexShift(0, kb); SetIndexShift(1, kb);
SetIndexShift(2, kb); SetIndexShift(3, kb);
SetIndexShift(4, kb); SetIndexShift(5, kb);
SetIndexShift(6, kb); SetIndexShift(7, kb);
//+---------
for (j=kb; j>=0; j--) {
shifthigh[j]=HighLine; shiftlow [j]=LowLine;
Line1[j]=AverLine1; Line2[j]=AverLine2;
Line3[j]=AverLine3; Line4[j]=AverLine4;
Line5[j]=AverLine5; Line6[j]=AverLine6;
}
}
shifthigh[i+kb]=HighLine; shiftlow [i+kb]=LowLine;
Line1[i+kb]=AverLine1; Line2[i+kb]=AverLine2;
Line3[i+kb]=AverLine3; Line4[i+kb]=AverLine4;
Line5[i+kb]=AverLine5; Line6[i+kb]=AverLine6;
//+---------
if (i==0 && ShowPrice) {
DrawPrices(dt, "Price", HighLine, LowLine);
}
}
//+--------- Äîáàâëåí èíäèêàòîð, Äèàïàçîí ïîñëåäíèõ áàðîâ -------------------
string name, value,Fibo,Fibo1, data;
for (int ii = Range_N_bars; ii >= 0; ii--){
data = DoubleToStr(High[ii]/nPoint-Low[ii]/nPoint,0);
if (Close[ii] > Open[ii])
{ value = " +" + data;
} if (Close[ii] < Open[ii])
{ value = " -" + data;
}if (Close[ii] == Open[ii])
{ value = " :" + data;}
name = name + value;
Fibo1 = DoubleToStr((HighLine-LowLine)/8/nPoint,0);
Fibo = DoubleToStr((HighLine-LowLine)/nPoint,0);
Comment( " Spread = ", (Ask-Bid)/nPoint,", Channel = " ,Fibo +" p, ", name +" p, 1/8 ( or 0.125) = " ,Fibo1 +" p.");
}
//+---------------------------------------------------------------------------------------
if(ObjectFind("Fibo22")<0)
ObjectCreate("Fibo22",OBJ_FIBO,0,Time[0],Low[0],Time[0],High[0]);
ObjectSet("Fibo22",OBJPROP_PRICE1,LowLine);
ObjectSet("Fibo22",OBJPROP_TIME1,iTime(NULL,PERIOD_M5,1));
ObjectSet("Fibo22",OBJPROP_PRICE2,HighLine);
ObjectSet("Fibo22",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1)+600000000);
ObjectSet("Fibo22", OBJPROP_COLOR,DarkGray ); //
ObjectSet("Fibo22",OBJPROP_RAY,0);
ObjectSet("Fibo22",OBJPROP_STYLE,2);
ObjectSet("Fibo22", OBJPROP_FIBOLEVELS, 9);//FIRSTLEVEL ìîæíî äîáàâëÿòü äî 22 øòóê ïî îáðàçöó
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+0, 0);
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+1, 0.875);
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+2, 0.75);
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+3, 0.62);
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+4, 0.5);
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+5, 0.38);
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+6, 0.25);
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+7, 0.125);
ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+8, 1.0);
//+---
ObjectSetFiboDescription("Fibo22",0,"%$");
ObjectSetFiboDescription("Fibo22",1,"0.125");
ObjectSetFiboDescription("Fibo22",2,"0.25");
ObjectSetFiboDescription("Fibo22",3,"0.38");
ObjectSetFiboDescription("Fibo22",4,"0.50");
ObjectSetFiboDescription("Fibo22",5,"0.62");
ObjectSetFiboDescription("Fibo22",6,"0.75");
ObjectSetFiboDescription("Fibo22",7,"0.125");
ObjectSetFiboDescription("Fibo22",8,"%$");
ObjectSetFiboDescription("Fibo22",9,"1.12");
ObjectSetFiboDescription("Fibo22",10,"1.12");
ObjectSetFiboDescription("Fibo22",11,"1.25");
ObjectSetFiboDescription("Fibo22",12,"1.25");
ObjectSet("Fibo22",OBJPROP_LEVELCOLOR,DarkGray);
ObjectSet("Fibo22",OBJPROP_LEVELSTYLE,2);
//+---
if (ObjectFind("Today\'s Open")==-1){
ObjectCreate("Today\'s Open",OBJ_TREND,0,0,0,0);
ObjectSet("Today\'s Open",OBJPROP_RAY,false);
ObjectSet("Today\'s Open",OBJPROP_STYLE,3); //0 1 2 3 4
ObjectSet("Today\'s Open",OBJPROP_COLOR,Blue);
}ObjectSet("Today\'s Open",OBJPROP_PRICE1, iOpen(NULL,PERIOD_D1,0));
ObjectSet("Today\'s Open",OBJPROP_TIME1,iTime(NULL,PERIOD_D1,0));
ObjectSet("Today\'s Open",OBJPROP_PRICE2,iOpen(NULL,PERIOD_D1,0));
ObjectSet("Today\'s Open",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1));
//+---
if (ObjectFind("Expected Today\'s Close")==-1){
ObjectCreate("Expected Today\'s Close",OBJ_ARROW,0,0,0,0,0);
ObjectSet("Expected Today\'s Close",OBJPROP_ARROWCODE,6);
ObjectSet("Expected Today\'s Close",OBJPROP_COLOR,Magenta);
} ObjectSet("Expected Today\'s Close",OBJPROP_PRICE1, iClose(NULL,PERIOD_D1,1)+ (iClose(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,2)));
ObjectSet("Expected Today\'s Close",OBJPROP_TIME1,iTime(NULL,PERIOD_D1,0)+86200);
//+---
if (ObjectFind("Week Open")==-1){
ObjectCreate("Week Open",OBJ_TREND,0,0,0,0);
ObjectSet("Week Open",OBJPROP_RAY,True); //false False True
ObjectSet("Week Open",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("Week Open",OBJPROP_COLOR,Blue);
}ObjectSet("Week Open",OBJPROP_PRICE1, iOpen(NULL,PERIOD_W1,0));
ObjectSet("Week Open",OBJPROP_TIME1,iTime(NULL,PERIOD_W1,0));
ObjectSet("Week Open",OBJPROP_PRICE2,iOpen(NULL,PERIOD_W1,0));
ObjectSet("Week Open",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1));
//+--
if (ObjectFind("Yesterday\'s Low")==-1){
ObjectCreate("Yesterday\'s Low",OBJ_TREND,0,0,0,0);
ObjectSet("Yesterday\'s Low",OBJPROP_RAY,false);
ObjectSet("Yesterday\'s Low",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("Yesterday\'s Low",OBJPROP_COLOR,Blue);
}ObjectSet("Yesterday\'s Low",OBJPROP_PRICE1, iLow(NULL,PERIOD_D1,1));
ObjectSet("Yesterday\'s Low",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));
ObjectSet("Yesterday\'s Low",OBJPROP_PRICE2,iLow(NULL,PERIOD_D1,1));
ObjectSet("Yesterday\'s Low",OBJPROP_TIME2,t01+(t01-t1)*ind_shift);
//+--
if (ObjectFind("Yesterday\'s High")==-1){
ObjectCreate("Yesterday\'s High",OBJ_TREND,0,0,0,0);
ObjectSet("Yesterday\'s High",OBJPROP_RAY,false);
ObjectSet("Yesterday\'s High",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("Yesterday\'s High",OBJPROP_COLOR,Red);
} ObjectSet("Yesterday\'s High",OBJPROP_PRICE1, iHigh(NULL,PERIOD_D1,1));
ObjectSet("Yesterday\'s High",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));
ObjectSet("Yesterday\'s High",OBJPROP_PRICE2,iHigh(NULL,PERIOD_D1,1));
ObjectSet("Yesterday\'s High",OBJPROP_TIME2,t01+(t01-t1)*ind_shift);
//+---
if (ObjectFind("Yesterday\'s_High")==-1){
ObjectCreate("Yesterday\'s_High",OBJ_ARROW,0,0,0,0,0);
ObjectSet("Yesterday\'s_High",OBJPROP_ARROWCODE,6);
ObjectSet("Yesterday\'s_High",OBJPROP_COLOR,Red);
ObjectSet("Yesterday\'s_High",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); // |OBJ_PERIOD_H4
} ObjectSet("Yesterday\'s_High",OBJPROP_PRICE1,dH2);
ObjectSet("Yesterday\'s_High",OBJPROP_TIME1,t01+(t01-t1)*ind_shift);
//+---
if (ObjectFind("Yesterday\'s_Low")==-1){
ObjectCreate("Yesterday\'s_Low",OBJ_ARROW,0,0,0,0,0);
ObjectSet("Yesterday\'s_Low",OBJPROP_ARROWCODE,6);
ObjectSet("Yesterday\'s_Low",OBJPROP_COLOR,Blue);
ObjectSet("Yesterday\'s_Low",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); // |OBJ_PERIOD_H4
} ObjectSet("Yesterday\'s_Low",OBJPROP_PRICE1,dL2);
ObjectSet("Yesterday\'s_Low",OBJPROP_TIME1,t01+(t01-t1)*ind_shift);
//+---
if (ObjectFind("Last_Wek\'s_Low")==-1){
ObjectCreate("Last_Wek\'s_Low",OBJ_ARROW,0,0,0,0,0);
ObjectSet("Last_Wek\'s_Low",OBJPROP_ARROWCODE,6);
ObjectSet("Last_Wek\'s_Low",OBJPROP_COLOR,Blue);
ObjectSet("Last_Wek\'s_Low",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); // |OBJ_PERIOD_H4
} ObjectSet("Last_Wek\'s_Low",OBJPROP_PRICE1,iLow(NULL, PERIOD_W1, 1));
ObjectSet("Last_Wek\'s_Low",OBJPROP_TIME1,t01+(t01-t1)*ind_shift);
//+---
if (ObjectFind("Last_Wek\'s_High")==-1){
ObjectCreate("Last_Wek\'s_High",OBJ_ARROW,0,0,0,0,0);
ObjectSet("Last_Wek\'s_High",OBJPROP_ARROWCODE,6);
ObjectSet("Last_Wek\'s_High",OBJPROP_COLOR,Magenta);
ObjectSet("Last_Wek\'s_High",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); // |OBJ_PERIOD_H4
} ObjectSet("Last_Wek\'s_High",OBJPROP_PRICE1,iHigh(NULL, PERIOD_W1, 1));
ObjectSet("Last_Wek\'s_High",OBJPROP_TIME1,t01+(t01-t1)*ind_shift);
//+---
if (ObjectFind("Expected Close, Weekly")==-1){
ObjectCreate("Expected Close, Weekly",OBJ_ARROW,0,0,0,0);
ObjectSet("Expected Close, Weekly",OBJPROP_ARROWCODE,115); // 167 159 115 4 5
ObjectSet("Expected Close, Weekly",OBJPROP_WIDTH ,1); //0,1,2,3
ObjectSet("Expected Close, Weekly",OBJPROP_COLOR,Magenta);
} ObjectSet("Expected Close, Weekly",OBJPROP_PRICE1, iClose(NULL,PERIOD_W1,1)+ (iClose(NULL,PERIOD_W1,1)-iClose(NULL,PERIOD_W1,2)));
ObjectSet("Expected Close, Weekly",OBJPROP_TIME1,iTime(NULL,PERIOD_W1,0)+(iTime(NULL,PERIOD_W1,0)-iTime(NULL,PERIOD_W1,1)));
//+--
if (ObjectFind("High 2 days ago")==-1){
ObjectCreate("High 2 days ago",OBJ_TREND,0,0,0,0);
ObjectSet("High 2 days ago",OBJPROP_RAY,false);
ObjectSet("High 2 days ago",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("High 2 days ago",OBJPROP_COLOR,FireBrick);
} ObjectSet("High 2 days ago",OBJPROP_PRICE1, iHigh(NULL,PERIOD_D1,2));
ObjectSet("High 2 days ago",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));
ObjectSet("High 2 days ago",OBJPROP_PRICE2,iHigh(NULL,PERIOD_D1,2));
ObjectSet("High 2 days ago",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1));
//+---
if (ObjectFind("Low 2 days ago")==-1){
ObjectCreate("Low 2 days ago",OBJ_TREND,0,0,0,0);
ObjectSet("Low 2 days ago",OBJPROP_RAY,false);
ObjectSet("Low 2 days ago",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("Low 2 days ago",OBJPROP_COLOR,MediumBlue);
}ObjectSet("Low 2 days ago",OBJPROP_PRICE1, iLow(NULL,PERIOD_D1,2));
ObjectSet("Low 2 days ago",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));
ObjectSet("Low 2 days ago",OBJPROP_PRICE2,iLow(NULL,PERIOD_D1,2));
ObjectSet("Low 2 days ago",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1));
//+--
if (ObjectFind("Next H1 Period Line")==-1){
ObjectCreate("Next H1 Period Line",OBJ_VLINE,0,0,0);
ObjectSet("Next H1 Period Line",OBJPROP_COLOR,DarkSlateBlue);
ObjectSet("Next H1 Period Line",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5 ); // | OBJ_PERIOD_M15
ObjectSet("Next H1 Period Line",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("Next H1 Period Line",OBJPROP_BACK,true);// true false
} ObjectSet("Next H1 Period Line",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,0)+3600);
ObjectSet("Next H1 Period Line",OBJPROP_PRICE1, 0);
//+------------------------------------------------------------------+
if (ObjectFind("H4 Period Line")==-1){
ObjectCreate("H4 Period Line",OBJ_VLINE,0,0,0);
ObjectSet("H4 Period Line",OBJPROP_COLOR,SlateBlue);
ObjectSet("H4 Period Line",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("H4 Period Line",OBJPROP_BACK,true);// true false
} ObjectSet("H4 Period Line",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,0));
ObjectSet("H4 Period Line",OBJPROP_PRICE1, 0);
//+---
if (ObjectFind("Next H4 Period")==-1){
ObjectCreate("Next H4 Period",OBJ_VLINE,0,0,0);
ObjectSet("Next H4 Period",OBJPROP_COLOR,SlateBlue);
ObjectSet("Next H4 Period",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("Next H4 Period",OBJPROP_BACK,true);// true false
} ObjectSet("Next H4 Period",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,0)+14400);
ObjectSet("Next H4 Period",OBJPROP_PRICE1, 0);
//+---
if (ObjectFind("H2 Period Line")==-1){
ObjectCreate("H2 Period Line",OBJ_VLINE,0,0,0);
ObjectSet("H2 Period Line",OBJPROP_COLOR,DarkSlateBlue);
ObjectSet("H2 Period Line",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5 | OBJ_PERIOD_M15 |OBJ_PERIOD_M30 );
ObjectSet("H2 Period Line",OBJPROP_STYLE,2); //0 1 2 3 4
ObjectSet("H2 Period Line",OBJPROP_BACK,true);// true false
} ObjectSet("H2 Period Line",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,0)+7200);
ObjectSet("H2 Period Line",OBJPROP_PRICE1, 0);
//+------------------------------------------------------------------+
if (scalp ) if (ObjectFind("STOPLEVEL by High + Spread")==-1){
ObjectCreate("STOPLEVEL by High + Spread",OBJ_ARROW,0,0,0,0);
ObjectSet("STOPLEVEL by High + Spread",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 170
ObjectSet("STOPLEVEL by High + Spread",OBJPROP_COLOR,Blue);
} ObjectSet("STOPLEVEL by High + Spread",OBJPROP_PRICE1,Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*nPoint);
ObjectSet("STOPLEVEL by High + Spread",OBJPROP_TIME1,Time[0]);
//+--
if (scalp ) if (ObjectFind("STOPLEVEL by High")==-1){
ObjectCreate("STOPLEVEL by High",OBJ_ARROW,0,0,0,0);
ObjectSet("STOPLEVEL by High",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 170
ObjectSet("STOPLEVEL by High",OBJPROP_COLOR,Blue);
} ObjectSet("STOPLEVEL by High",OBJPROP_PRICE1,Bid+MarketInfo(Symbol(),MODE_STOPLEVEL)*nPoint);
ObjectSet("STOPLEVEL by High",OBJPROP_TIME1,Time[0]);
//+--
if (scalp ) if (ObjectFind("STOPLEVEL by Low")==-1){
ObjectCreate("STOPLEVEL by Low",OBJ_ARROW,0,0,0,0);
ObjectSet("STOPLEVEL by Low",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 170
ObjectSet("STOPLEVEL by Low",OBJPROP_COLOR,Blue);
} ObjectSet("STOPLEVEL by Low",OBJPROP_PRICE1,Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*nPoint);
ObjectSet("STOPLEVEL by Low",OBJPROP_TIME1,Time[0]);
//+--
if (scalp ) if (ObjectFind("STOPLEVEL by Low + Spread")==-1){
ObjectCreate("STOPLEVEL by Low + Spread",OBJ_ARROW,0,0,0,0);
ObjectSet("STOPLEVEL by Low + Spread",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 170
ObjectSet("STOPLEVEL by Low + Spread",OBJPROP_COLOR,Blue);
} ObjectSet("STOPLEVEL by Low + Spread",OBJPROP_PRICE1,Bid-(Ask-Bid)-MarketInfo(Symbol(),MODE_STOPLEVEL)*nPoint);
ObjectSet("STOPLEVEL by Low + Spread",OBJPROP_TIME1,Time[0]);
//+--
if (ObjectFind("Channel 11")==-1){ ObjectCreate("Channel 11", OBJ_CHANNEL, 0, 0,0, 0, 0);
} ObjectSet("Channel 11",OBJPROP_TIME1,Time[1]); ObjectSet("Channel 11",OBJPROP_PRICE1,HighLine);
ObjectSet("Channel 11",OBJPROP_TIME2,Time[0]); ObjectSet("Channel 11",OBJPROP_PRICE2,HighLine);
ObjectSet("Channel 11",OBJPROP_TIME3,Time[0]); ObjectSet("Channel 11",OBJPROP_PRICE3,HighLine);
ObjectSet("Channel 11", OBJPROP_COLOR, SlateGray); ObjectSet("Channel 11",OBJPROP_RAY,0);
//+---------
if (ObjectFind("HighLine")==-1){ ObjectCreate("HighLine",OBJ_TEXT, 0, 0, 0);
} ObjectSetText("HighLine",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble
(ObjectGetValueByShift("Channel "+11,0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray);
ObjectSet("HighLine",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Channel "+11,0),Digits)+5*nPoint);
ObjectSet("HighLine",OBJPROP_TIME1,Time[0]) ;
//---------
double val1=ObjectGetValueByShift("Channel 11", 0);
if (Bid-Alert_HighLine*nPoint <= val1 && Bid+Alert_HighLine*nPoint >= val1)
{ PlaySound (AlertSound);
if (PopupON) Alert (Symbol()," price within ",Alert_HighLine," pips of ","Channel 11");
// if (EmailON) SendMail(Symbol()+" ",Alert_HighLine+" pips from "+"Channel 11");
}
//+-----------------------------------------------------------------------------------------------
if (ObjectFind("Channel 111")==-1){ ObjectCreate("Channel 111", OBJ_CHANNEL, 0, 0,0, 0, 0);
} ObjectSet("Channel 111",OBJPROP_TIME1,Time[1]); ObjectSet("Channel 111",OBJPROP_PRICE1,LowLine);
ObjectSet("Channel 111",OBJPROP_TIME2,Time[0]); ObjectSet("Channel 111",OBJPROP_PRICE2,LowLine);
ObjectSet("Channel 111",OBJPROP_TIME3,Time[0]); ObjectSet("Channel 111",OBJPROP_PRICE3,LowLine);
ObjectSet("Channel 111", OBJPROP_COLOR, SlateGray); ObjectSet("Channel 111",OBJPROP_RAY,0);
//+---------
if (ObjectFind("LowLine")==-1){ ObjectCreate("LowLine",OBJ_TEXT, 0, 0, 0);
} ObjectSetText("LowLine",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble
(ObjectGetValueByShift("Channel "+111,0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray);
ObjectSet("LowLine",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Channel "+111,0),Digits)-2*nPoint);
ObjectSet("LowLine",OBJPROP_TIME1,Time[0]) ;
//+-------
double val2=ObjectGetValueByShift("Channel 111", 0);
if (Bid-Alert_LowLine*nPoint <= val2 && Bid+Alert_LowLine*nPoint >= val2)
{ PlaySound (AlertSound);
if (PopupON) Alert (Symbol()," price within ",Alert_LowLine," pips of ","Channel 111");
//if (EmailON) SendMail(Symbol()+" ",Alert_LowLine+" pips from "+"Channel 111");
}
//+-----------------------------------------------------------------------------------------------
if (ObjectFind("Last_Week\'s_High")==-1){ ObjectCreate("Last_Week\'s_High", OBJ_TREND,0,0,0,0);
} ObjectSet("Last_Week\'s_High",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1)); ObjectSet("Last_Week\'s_High",OBJPROP_PRICE1,iHigh(NULL,PERIOD_W1,1));
ObjectSet("Last_Week\'s_High",OBJPROP_TIME2,t01+(t01-t1)*3); ObjectSet("Last_Week\'s_High",OBJPROP_PRICE2,iHigh(NULL,PERIOD_W1,1));
ObjectSet("Last_Week\'s_High", OBJPROP_COLOR, Magenta); ObjectSet("Last_Week\'s_High",OBJPROP_RAY,0);
ObjectSet("Last_Week\'s_High",OBJPROP_STYLE,2); //0 1 2 3 4
//+---------
if (ObjectFind("Distance from Price to Last Week\'s High")==-1){ ObjectCreate("Distance from Price to Last Week\'s High",OBJ_TEXT, 0, 0, 0);
} ObjectSetText("Distance from Price to Last Week\'s High",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble
(ObjectGetValueByShift("Last_Week\'s_High",0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray);
ObjectSet("Distance from Price to Last Week\'s High",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Last_Week\'s_High",0),Digits)+5*nPoint);
ObjectSet("Distance from Price to Last Week\'s High",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,1));
ObjectSet("Distance from Price to Last Week\'s High", OBJPROP_COLOR, Magenta);
//+-------
if (ObjectFind("Last Week\'s_Low")==-1){ ObjectCreate("Last Week\'s_Low", OBJ_TREND,0,0,0,0);
} ObjectSet("Last Week\'s_Low",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1)); ObjectSet("Last Week\'s_Low",OBJPROP_PRICE1,iLow(NULL,PERIOD_W1,1));
ObjectSet("Last Week\'s_Low",OBJPROP_TIME2,t01+(t01-t1)*3); ObjectSet("Last Week\'s_Low",OBJPROP_PRICE2,iLow(NULL,PERIOD_W1,1));
ObjectSet("Last Week\'s_Low", OBJPROP_COLOR, Blue); ObjectSet("Last Week\'s_Low",OBJPROP_RAY,0);
ObjectSet("Last Week\'s_Low",OBJPROP_STYLE,2); //0 1 2 3 4
//+---------
if (ObjectFind("Distance from Price to Last Week\'s Low")==-1){ ObjectCreate("Distance from Price to Last Week\'s Low",OBJ_TEXT, 0, 0, 0);
} ObjectSetText("Distance from Price to Last Week\'s Low",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble
(ObjectGetValueByShift("Last Week\'s_Low",0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray);
ObjectSet("Distance from Price to Last Week\'s Low",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Last Week\'s_Low",0),Digits)-2*nPoint);
ObjectSet("Distance from Price to Last Week\'s Low",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,1));// t01+(t01-t1)*1);
ObjectSet("Distance from Price to Last Week\'s Low", OBJPROP_COLOR, Blue);
}
//+-------------------------------------------------------------------------------------------------
//+------------------------------------------------------------------+
//| Ïðîðèñîâêà öåíîâûõ ìåòîê íà ãðàôèêå |
//| Ïàðàìåòðû: |
//| dt - äàòà òîðãîâîãî äíÿ |
//| no - íàèìåíîâàíèå îáúåêòà |
//| up - âåðõíèé öåíîâîé óðîâåíü |
//| dn - íèæíèé öåíîâîé óðîâåíü |
//+------------------------------------------------------------------+
void DrawPrices(datetime dt, string no, double up, double dn) {
if (ObjectFind("Up"+no)<0) ObjectCreate("Up"+no, OBJ_TEXT, 0, 0,0);
ObjectSet("Up"+no, OBJPROP_TIME1 , dt);
ObjectSet("Up"+no, OBJPROP_PRICE1 , up+(OffSet+SizeFont)*nPoint);
ObjectSet("Up"+no, OBJPROP_COLOR , clFont);
ObjectSet("Up"+no, OBJPROP_FONTSIZE, SizeFont);
ObjectSetText("Up"+no, DoubleToStr(up, Digits));
//+------
if (ObjectFind("Dn"+no)<0) ObjectCreate("Dn"+no, OBJ_TEXT, 0, 0,0);
ObjectSet("Dn"+no, OBJPROP_TIME1 , dt);
ObjectSet("Dn"+no, OBJPROP_PRICE1 , dn-OffSet*nPoint);
ObjectSet("Dn"+no, OBJPROP_COLOR , clFont);
ObjectSet("Dn"+no, OBJPROP_FONTSIZE, SizeFont);
ObjectSetText("Dn"+no, DoubleToStr(dn, Digits));
}
//+------------------------------------------------------------------+
//| Âîçâðàùàåò íîìåð áàðà |
//+------------------------------------------------------------------+
int NumberBar() {
int nd=0, i=0;
while (nd<NumberOfDays) {
i++;
if (TimeHour(Time[i])==0 && TimeMinute(Time[i])==0) nd++;
}
return(i);
}
//+------------------------------------------------------------------+
double GetPoint(string vSymbol)
{
int vres = StringFind(vSymbol,"JPY");
if (vres == -1) return(0.0001);
return(0.01);
}
//+-----------------------------------------------+
Comments