[MT4指标]BPA - D1 London Session
主图指标
mt4指标类型:趋势指标
是否能用在mt4手机版上:否
mt4指标类型:震荡指标
是否能用在mt4手机版上:否
是否含有未来函数:无
//+------------------------------------------------------------------+
//| BPA - D1 London Session.mq4.mq4
//| ? Ricky.Ricx @ BrooksPriceAction.com
//| http://www.brookspriceaction.com/
//+------------------------------------------------------------------+
#property copyright "? Ricky.Ricx @ BrooksPriceAction.com"
#property link "http://www.brookspriceaction.com"
#property indicator_chart_window
extern string London_Open="03:00";
extern string London_Close="11:55"; //since this use M5 data to find OHLC D1 candle so london close is 11:55 is the same as 12:00
extern int Show_How_Many_Bars=108;
extern string To_Change_DST_Bars_Insert_Below="OR If All bars are in DST just change London Open & Close";
extern string Please_NOTE="If no change insert -1 to both";
extern int From_Bar=-1,
To_Bar=-1;
int init()
{
int n,
addonehour;
for(n=Show_How_Many_Bars; n!=0; n--)
{
if(From_Bar>-1)
{
if(From_Bar>=n && n<=To_Bar) addonehour=3600;
}
else addonehour=0;
candle(n,addonehour);
}
return(0);
}
int deinit()
{
int totalobjects;
totalobjects=ObjectsTotal();
ObjectsDeleteAll();
return(0);
}
int start()
{
int counted_bars=IndicatorCounted(),
addonehour=0;
if(To_Bar>-1)
{
addonehour=3600;
}
candle(0, addonehour);
return(0);
}
void candle(int n, int addonehour)
{
int openbar=0,
closebar=0,
highestbar=0,
lowestbar=0;
double openprice=0,
openhigh=0,
openlow=0,
closeprice=0,
closelow=0,
closehigh=0,
highestprice=0,
lowestprice=0;
datetime candledate,
opentime,
closetime,
hightime,
lowtime;
string candledatestr,
opentimestr,
closetimestr,
hightimestr,
lowtimestr;
//find this bar date
candledate=iTime(Symbol(), PERIOD_D1, n);
candledatestr=TimeToStr(candledate, TIME_DATE);
//find this bar open date & time
opentimestr=candledatestr+" "+London_Open;
opentime=StrToTime(opentimestr)+addonehour;
//find open bar number at lower timeframe
openbar=iBarShift(Symbol(), 5, opentime, false);
openprice=iOpen(Symbol(), 5, openbar);
//find this bar close date & time
closetimestr=candledatestr+" "+London_Close;
closetime=StrToTime(closetimestr)+addonehour;
//find close bar number at lower timeframe
closebar=iBarShift(Symbol(), 5, closetime, false);
closeprice=iClose(Symbol(), 5, closebar);
//find highest and lowest bar number
highestbar=iHighest(Symbol(), 5, MODE_HIGH, Show_How_Many_Bars, closebar);
lowestbar=iLowest(Symbol(), 5, MODE_LOW, Show_How_Many_Bars, closebar);
//find highest and lowest price
highestprice=iHigh(Symbol(), 5, highestbar);
openhigh=iHigh(Symbol(), 5, openbar);
closehigh=iHigh(Symbol(), 5, closebar);
if(openhigh>=highestprice) highestprice=openhigh;
if(closehigh>=highestprice) highestprice=closehigh;
lowestprice=iLow(Symbol(), 5, lowestbar);
openlow=iLow(Symbol(), 5, openbar);
closelow=iLow(Symbol(), 5, closebar);
if(openlow<=lowestprice) lowestprice=openlow;
if(closelow<=lowestprice) lowestprice=closelow;
//plot candle body
if(ObjectFind(candledatestr+" candlebody")==-1) ObjectCreate(candledatestr+" candlebody", OBJ_TREND, 0, 0, 0);
ObjectSet(candledatestr+" candlebody", OBJPROP_PRICE1, openprice);
ObjectSet(candledatestr+" candlebody", OBJPROP_PRICE2, closeprice);
ObjectSet(candledatestr+" candlebody", OBJPROP_TIME1, candledate);
ObjectSet(candledatestr+" candlebody", OBJPROP_TIME2, candledate);
ObjectSet(candledatestr+" candlebody", OBJPROP_RAY, false);
ObjectSet(candledatestr+" candlebody", OBJPROP_BACK, true);
ObjectSet(candledatestr+" candlebody", OBJPROP_WIDTH, 5);
ObjectSet(candledatestr+" candlebody", OBJPROP_COLOR, Black);
//plot bull candle body
if(openpriceBPA-D1LondonSession.jpg