CCT_Breakout_Box
//+------------------------------------------------------------------+
//| CCT_BreakoutBox.mq4 |
//| Copyright Complete Currency Trader Ltd |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright, Complete Currency Trader Ltd"
#property link ""
#property version "1.00"
#property strict
#property indicator_chart_window
extern string OpenTime = "10:00";
extern int PipsAbove = 100;
extern int PipsBelow = 100;
extern color BoxColor = DarkOliveGreen;
extern int MaxBoxes = 50;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
for(int i = ObjectsTotal()-1; i>=0; i--)
{
if(StringFind(ObjectName(i),"BOXMODEL9") != -1)
ObjectDelete(ObjectName(i));
}
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
datetime startTime = StrToTime(OpenTime);
int targetTimeframe = getTargetTf(startTime);
int days = -1, lastDay = -1;
for(int i = 0; i < Bars; i++)
{
int today = iTime(Symbol(), PERIOD_D1, iBarShift(Symbol(), PERIOD_D1, Time));
// skip till new day
if(today == lastDay)
continue;
else
{
days++;
lastDay = today;
}
// objects drawn, exit
if(ObjectFind("BOXMODEL9"+DoubleToStr(today,0)) != -1)
break;
// draw box on new day
if(ObjectFind("BOXMODEL9"+DoubleToStr(today,0)) == -1)
{
int shift = iBarShift(Symbol(), targetTimeframe, startTime-days*1440*60, true);
if(shift != -1)
{
double price = iOpen(Symbol(), targetTimeframe, shift);
ObjectCreate("BOXMODEL9"+DoubleToStr(today,0), OBJ_RECTANGLE, 0, startTime-days*1440*60, price+PipsAbove*Point, startTime-(days-1)*1440*60-TimeHour(startTime)*60*60-TimeMinute(startTime)*60, price-PipsBelow*Point);
ObjectSet("BOXMODEL9"+DoubleToStr(today, 0), OBJPROP_COLOR, BoxColor);
}
}
if(days == MaxBoxes)
break;
}
return(rates_total);
}
//+------------------------------------------------------------------+
// returns tf to get data from depending on user input
//+------------------------------------------------------------------+
int getTargetTf(datetime time)
{
if(TimeMinute(time) == 0 && Period() <= 60)
return(Period());
else if(TimeMinute(time) == 0 && Period() >= 60)
return(PERIOD_H1);
else if(TimeMinute(time) == 15)
return(PERIOD_M15);
else if(TimeMinute(time) == 30)
return(PERIOD_M30);
else if(TimeMinute(time) == 45)
return(PERIOD_M15);
else
return(PERIOD_M1);
}
没看完~~~~~~ 先顶,好同志 谢谢楼主分享 帮你顶下哈!! 支持下 谢谢 顶下 顶下 顶下
页:
[1]