//+------------------------------------------------------------------+
//| ChanelPrice.mq4 |
//| Copyright 2016, AVG Software Corp. (e-mail= softmt4@gmail.com) |
//| Alexander Gershkevich |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AVG Software Corp. (e-mail= softmt4@gmail.com)"
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//-----------------------------------------
//ôóíêöèÿ âîçâðàùàåò öåíó íà ãðàíèöå îáúåêòà "ðàâíîóäàëåííûé êàíàë"
double GetPriceChanel(string wChanel, int wPeriod, int sdvig, int ur)
//îïðåäåëÿåò öåíó êàíàëà íà áàðå ñî ñäâèãîì sdvig îò ïîñëåäíåãî (òåêóùåãî = 0)
//îïèñàíèå âõîäíûõ ïàðàìåòðîâ:
// wChanel - ñòðîêà ñ èìåíåì îáúåêòà òèïà OBJ_CHANNEL
// wPeriod - òàéì-ôðåéì
// sdvig - íîìåð áàðà, îòíîñèòåëüíî êîòîðîãî îïðåäåëÿåì öåíó íà ãðàíèöàõ êàíàëà
// ur - åñëè =1, òî ôóíêöèÿ âîçâðàùàåò öåíó íà ãðàíèöå âåðõíåãî êàíàëà, åñëè =2 - ôóíêöèÿ âîçâðàùàåò öåíó íà ãðàíèöå íèæíåãî êàíàëà
{ double lPrice0=0,lPrice1=0, lPrice=-1, lDelta;
datetime lTime;
lPrice0=ObjectGetValueByTime(0, wChanel, iTime(Symbol(), wPeriod, sdvig),0);
//îïðåäåëÿåì êîîðäèíàòû 3-é òî÷êè
lPrice1=ObjectGet(wChanel, OBJPROP_PRICE3);
lTime=(datetime)ObjectGet(wChanel, OBJPROP_TIME3);
lDelta=ObjectGetValueByTime(0, wChanel, lTime,0);
if(lDelta>0)
{ lDelta=lPrice1-lDelta;
lPrice1=lPrice0+lDelta;
if (ur==1)
lPrice=MathMax(lPrice0, lPrice1);
if (ur==2)
lPrice=MathMin(lPrice0, lPrice1);
}
return(lPrice);
}//GetPriceChanel
Comments