//+------------------------------------------------------------------+ //| VolatilityLine.mq4 | //| | //| By KumaKuma | //+------------------------------------------------------------------+ // V.1.0.0 2010.05.16 // First release // #property copyright "" #property link "http://gp7g73hp.seesaa.net/" #property indicator_chart_window extern double Percent = 0.1; //extern color UpperVolatilityLineLineColor4 = Blue; extern color UpperVolatilityLineLineColor3 = DeepSkyBlue; extern color UpperVolatilityLineLineColor2 = PaleTurquoise; extern color UpperVolatilityLineLineColor1 = LightCyan; extern color LowerVolatilityLineLineColor1 = MistyRose; extern color LowerVolatilityLineLineColor2 = Pink; extern color LowerVolatilityLineLineColor3 = HotPink; //extern color LowerVolatilityLineLineColor4 = Red; color LabelColor = White; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators double bid =MarketInfo(Symbol(),MODE_BID); ObjectCreate("VolatilityLineRect1", OBJ_RECTANGLE, 0, Time[0], bid * (1 - Percent), Time[Bars], bid * (1 + Percent)); ObjectSet("VolatilityLineRect1",OBJPROP_COLOR,C'60,60,60'); ObjectCreate("VolatilityLineLineA1", OBJ_HLINE, 0, 0, 0, 0, 0); ObjectSet("VolatilityLineLineA1",OBJPROP_STYLE,STYLE_DOT); ObjectSet("VolatilityLineLineA1",OBJPROP_COLOR,LowerVolatilityLineLineColor1); ObjectSet("VolatilityLineLineA1", OBJPROP_BACK, true); ObjectSet("VolatilityLineLineA1", OBJPROP_ELLIPSE, false); ObjectSet("VolatilityLineLineA1", OBJPROP_RAY, false); ObjectCreate("VolatilityLineLineA2", OBJ_HLINE, 0, 0, 0, 0 ,0); ObjectSet("VolatilityLineLineA2",OBJPROP_STYLE,STYLE_DOT); ObjectSet("VolatilityLineLineA2",OBJPROP_COLOR,UpperVolatilityLineLineColor1); ObjectSet("VolatilityLineLineA2", OBJPROP_BACK, true); ObjectSet("VolatilityLineLineA2", OBJPROP_ELLIPSE, false); ObjectSet("VolatilityLineLineA2", OBJPROP_RAY, false); ObjectCreate("VolatilityLineLineB1", OBJ_HLINE, 0, 0, 0, 0, 0); ObjectSet("VolatilityLineLineB1",OBJPROP_STYLE,STYLE_DOT); ObjectSet("VolatilityLineLineB1",OBJPROP_COLOR,LowerVolatilityLineLineColor2); ObjectSet("VolatilityLineLineB1", OBJPROP_BACK, true); ObjectSet("VolatilityLineLineB1", OBJPROP_ELLIPSE, false); ObjectSet("VolatilityLineLineB1", OBJPROP_RAY, false); ObjectCreate("VolatilityLineLineB2", OBJ_HLINE, 0, 0, 0, 0 ,0); ObjectSet("VolatilityLineLineB2",OBJPROP_STYLE,STYLE_DOT); ObjectSet("VolatilityLineLineB2",OBJPROP_COLOR,UpperVolatilityLineLineColor2); ObjectSet("VolatilityLineLineB2", OBJPROP_BACK, true); ObjectSet("VolatilityLineLineB2", OBJPROP_ELLIPSE, false); ObjectSet("VolatilityLineLineB2", OBJPROP_RAY, false); ObjectCreate("VolatilityLineLineC1", OBJ_HLINE, 0, 0, 0, 0, 0); ObjectSet("VolatilityLineLineC1",OBJPROP_STYLE,STYLE_DOT); ObjectSet("VolatilityLineLineC1",OBJPROP_COLOR,LowerVolatilityLineLineColor3); ObjectSet("VolatilityLineLineC1", OBJPROP_BACK, true); ObjectSet("VolatilityLineLineC1", OBJPROP_ELLIPSE, false); ObjectSet("VolatilityLineLineC1", OBJPROP_RAY, false); ObjectCreate("VolatilityLineLineC2", OBJ_HLINE, 0, 0, 0, 0 ,0); ObjectSet("VolatilityLineLineC2",OBJPROP_STYLE,STYLE_DOT); ObjectSet("VolatilityLineLineC2",OBJPROP_COLOR,UpperVolatilityLineLineColor3); ObjectSet("VolatilityLineLineC2", OBJPROP_BACK, true); ObjectSet("VolatilityLineLineC2", OBJPROP_ELLIPSE, false); ObjectSet("VolatilityLineLineC2", OBJPROP_RAY, false); /* ObjectCreate("VolatilityLineLineD1", OBJ_HLINE, 0, 0, 0, 0, 0); ObjectSet("VolatilityLineLineD1",OBJPROP_STYLE,STYLE_DOT); ObjectSet("VolatilityLineLineD1",OBJPROP_COLOR,LowerVolatilityLineLineColor4); ObjectSet("VolatilityLineLineD1", OBJPROP_BACK, true); ObjectSet("VolatilityLineLineA2", OBJPROP_ELLIPSE, false); ObjectSet("VolatilityLineLineA2", OBJPROP_RAY, false); ObjectCreate("VolatilityLineLineD2", OBJ_HLINE, 0, 0, 0, 0 ,0); ObjectSet("VolatilityLineLineD2",OBJPROP_STYLE,STYLE_DOT); ObjectSet("VolatilityLineLineD2",OBJPROP_COLOR,UpperVolatilityLineLineColor4); ObjectSet("VolatilityLineLineD2", OBJPROP_BACK, true); ObjectSet("VolatilityLineLineD2", OBJPROP_ELLIPSE, false); ObjectSet("VolatilityLineLineD2", OBJPROP_RAY, false); */ ObjectSetText("VolatilityLineLineA1", "-" + DoubleToStr(Percent * 1, 2) + "%", 11, "Courier New", LabelColor); ObjectSetText("VolatilityLineLineA2", "+" + DoubleToStr(Percent * 1, 2) + "%", 11, "Courier New", LabelColor); ObjectSetText("VolatilityLineLineB1", "-" + DoubleToStr(Percent * 10, 2) + "%", 11, "Courier New", LabelColor); ObjectSetText("VolatilityLineLineB2", "+" + DoubleToStr(Percent * 10, 2) + "%", 11, "Courier New", LabelColor); ObjectSetText("VolatilityLineLineC1", "-" + DoubleToStr(Percent * 100, 2) + "%", 11, "Courier New", LabelColor); ObjectSetText("VolatilityLineLineC2", "+" + DoubleToStr(Percent * 100, 2) + "%", 11, "Courier New", LabelColor); // ObjectSetText("VolatilityLineLineD1", "-" + DoubleToStr(Percent * 200, 2) + "%", 11, "Courier New", LabelColor); // ObjectSetText("VolatilityLineLineD2", "+" + DoubleToStr(Percent * 200, 2) + "%", 11, "Courier New", LabelColor); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjectDelete("VolatilityLineRect1"); ObjectDelete("VolatilityLineLineA1"); ObjectDelete("VolatilityLineLineA2"); ObjectDelete("VolatilityLineLineB1"); ObjectDelete("VolatilityLineLineB2"); ObjectDelete("VolatilityLineLineC1"); ObjectDelete("VolatilityLineLineC2"); // ObjectDelete("VolatilityLineLineD1"); // ObjectDelete("VolatilityLineLineD2"); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- double bid = MarketInfo(Symbol(),MODE_BID); double ask = MarketInfo(Symbol(),MODE_ASK); ObjectSet("VolatilityLineRect1", OBJPROP_PRICE1, bid * (1 - Percent /100 * 1) ); ObjectSet("VolatilityLineRect1", OBJPROP_PRICE2, bid * (1 + Percent /100 * 1) ); ObjectSet("VolatilityLineRect1", OBJPROP_TIME1, Time[0]); ObjectSet("VolatilityLineRect1", OBJPROP_TIME2, Time[Bars-1]); ObjectSet("VolatilityLineLineA1", OBJPROP_PRICE1, bid * (1 - Percent / 100 * 1) ); ObjectSet("VolatilityLineLineA2", OBJPROP_PRICE1, bid * (1 + Percent / 100 * 1) ); ObjectSet("VolatilityLineLineB1", OBJPROP_PRICE1, bid * (1 - Percent / 100 * 10) ); ObjectSet("VolatilityLineLineB2", OBJPROP_PRICE1, bid * (1 + Percent / 100 * 10) ); ObjectSet("VolatilityLineLineC1", OBJPROP_PRICE1, bid * (1 - Percent / 100 * 100) ); ObjectSet("VolatilityLineLineC2", OBJPROP_PRICE1, bid * (1 + Percent / 100 * 100) ); // ObjectSet("VolatilityLineLineD1", OBJPROP_PRICE1, bid * (1 - Percent / 100 * 200) ); // ObjectSet("VolatilityLineLineD2", OBJPROP_PRICE1, bid * (1 + Percent / 100 * 200) ); //---- return(0); } //+------------------------------------------------------------------+