//+------------------------------------------------------------------+ //| symmetric.mq4 | //| Copyright 2015, Rondo | //| http://fx-dollaryen.seesaa.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, Rondo" #property link "http://fx-dollaryen.seesaa.net/" #property version "1.0" #property strict input color symmetricColor = clrAqua; //対称線の色 string suffix = "symmetric"; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart(){ double priceOnDropped = ChartPriceOnDropped(); //WindowPriceOnDropped(); datetime timeOnDropped = ChartTimeOnDropped(); //WindowTimeOnDropped(); int counts = 0; for(int i = ObjectsTotal(); i>=0; i--){ if(StringFind(ObjectName(i), suffix) >=0) counts++; } for(int i = ObjectsTotal(); i>=0; i--){ string ObjName = ObjectName(i); if(ObjectGetInteger(0, ObjName, OBJPROP_TYPE) == OBJ_TREND && StringFind(ObjName, suffix) <0){ datetime time1 = (datetime)ObjectGetInteger(0, ObjName, OBJPROP_TIME, 0); double price1 = ObjectGetDouble(0, ObjName, OBJPROP_PRICE, 0); datetime time2 = (datetime)ObjectGetInteger(0, ObjName, OBJPROP_TIME, 1); double price2 = ObjectGetDouble(0, ObjName, OBJPROP_PRICE, 1); double priceLine = ObjectGetValueByTime(0, ObjName, timeOnDropped, 0); int ChartHeightPixels = (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, 0); double ChartMaxPrice = ChartGetDouble(0, CHART_PRICE_MAX, 0); double ChartMinPrice = ChartGetDouble(0, CHART_PRICE_MIN, 0); double margin = MathAbs(ChartMaxPrice - ChartMinPrice) / ChartHeightPixels * 15; if(priceLine-margin <= priceOnDropped && priceOnDropped <= priceLine+margin){ if(time2 <= time1) ObjectCreate(0, ObjName+suffix+IntegerToString(counts), OBJ_TREND, 0, time2, price1, time1, price2); else ObjectCreate(0, ObjName+suffix+IntegerToString(counts), OBJ_TREND, 0, time1, price2, time2, price1); ObjectSetInteger(0, ObjName+suffix+IntegerToString(counts), OBJPROP_COLOR, symmetricColor); ObjectSetInteger(0, ObjName, OBJPROP_SELECTED, false); ObjectSetInteger(0, ObjName+suffix+IntegerToString(counts), OBJPROP_SELECTED, true); } } } } //+------------------------------------------------------------------+