1.why the 2 marked functions are in the deinit ?
2.why 720 value on the marked line?
the code:
thanks a loot .
2.why 720 value on the marked line?
the code:
Inserted Code
//+------------------------------------------------------------------+ //| DailyBreakout.mq4 | //| Copyright © 2008, Robert Hill. | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, Robert Hill" #property link "NONE" #property indicator_chart_window //---- input parameters extern bool Alerts = false; extern int GMTshift = 0; extern int LabelShift = 20; extern int LineShift = 40; extern string pd = "PipsAboveBelowSR for Alert"; extern int PipDistance = 1; extern color StandardFontColor = White; extern int StandardFontSize = 8; extern color SupportColor = Red; extern color ResistanceColor = Lime; datetime LabelShiftTime, LineShiftTime; double yesterday_high=0; double yesterday_low=0; double LastHigh,LastLow,x; double R1=0; double S1=0; bool firstS1=true; bool firstR1=true; double myPoint; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators myPoint = SetPoint(Symbol()); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- ObjectDelete("R1 Label"); ObjectDelete("R1 Line"); ObjectDelete("S1 Label"); ObjectDelete("S1 Line"); return(0); } double SetPoint(string mySymbol)// <<<<<<<-----why here on the deinit?????---------------- { double mPoint, myDigits; myDigits = MarketInfo (mySymbol, MODE_DIGITS); if (myDigits < 4) mPoint = 0.01; else mPoint = 0.0001; return(mPoint); } int DoAlerts()//<<<<<<<<<-------why here on the deint??????----------------- { double DifAboveR1,PipsLimit; double DifBelowS1; DifBelowS1 = S1 - Close[0]; DifAboveR1 = Close[0] - R1; PipsLimit = PipDistance * myPoint; if (DifBelowS1 > PipsLimit) firstS1 = true; if (DifBelowS1 <= PipsLimit && DifBelowS1 > 0) { if (firstS1) { Alert("Below S1 Line by ",DifBelowS1, " for ", Symbol(),"-",Period()); PlaySound("alert.wav"); firstS1=false; } } if (DifAboveR1 > PipsLimit) firstR1 = true; if (DifAboveR1 <= PipsLimit && DifAboveR1 > 0) { if (firstR1) { Alert("Above R1 Line by ",DifAboveR1," for ", Symbol(),"-",Period()); Sleep(2000); PlaySound("timeout.wav"); firstR1=false; } } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- TODO: add your code here double day_high=0; double day_low=0; double yesterday_open=0; double today_open=0; double cur_day=0; double prev_day=0; int cnt=720;//<<<<<----why 720 ????????-------------------------------------------------- //---- exit if period is greater than 4 hr charts if(Period() > 240) { Print("Error - Chart period is greater than 4 hr."); return(-1); // then exit } //---- Get new daily prices & calculate pivots cur_day=0; prev_day=0; //---- Get new daily prices & calculate pivots while (cnt!= 0) { cur_day = TimeDay(Time[cnt]- (GMTshift*3600)); if (prev_day != cur_day) { yesterday_high = day_high; yesterday_low = day_low; day_high = High[cnt]; day_low = Low[cnt]; prev_day = cur_day; } if (High[cnt]>day_high) { day_high = High[cnt]; } if (Low[cnt]<day_low) { day_low = Low[cnt]; } cnt--; } S1 = yesterday_low; R1 = yesterday_high; LabelShiftTime = Time[LabelShift]; LineShiftTime = Time[LineShift]; //---- Set line labels on chart window DisplayLabel("R1 label", "R1", R1, StandardFontSize, StandardFontColor); DisplayLabel("S1 label", "S1", S1, StandardFontSize, StandardFontColor); //--- Draw Pivot lines on chart DisplayLine("S1 line", S1, 0, STYLE_DASHDOTDOT, SupportColor); DisplayLine("R1 line", R1, 0, STYLE_DASHDOTDOT, ResistanceColor); //---- done // Now check for Alert if (Alerts) DoAlerts(); //---- return(0); } //---- Set line labels on chart window void DisplayLabel(string LabelName, string LabelText, double LabelPos, int LabelFontSize, color LabelColor) { if(ObjectFind(LabelName) != 0) { ObjectCreate(LabelName, OBJ_TEXT, 0, LabelShiftTime, LabelPos); ObjectSetText(LabelName, LabelText, LabelFontSize, "Arial", LabelColor); } else { ObjectMove(LabelName, 0, LabelShiftTime, LabelPos); } } //--- Draw Pivot lines on chart void DisplayLine(string LineName, double LinePos, int LineWidth, int LineStyle, color LineColor) { if(ObjectFind(LineName) != 0) { ObjectCreate(LineName, OBJ_HLINE, 0, LineShiftTime, LinePos); ObjectSet(LineName, OBJPROP_STYLE, LineStyle); ObjectSet(LineName, OBJPROP_COLOR, LineColor); if (LineWidth > 0) ObjectSet(LineName, OBJPROP_WIDTH, LineWidth); } else { ObjectMove(LineName, 0, LineShiftTime, LinePos); } } //+------------------------------------------------------------------
thanks a loot .
Iam just A pips on the rode :nerd: