//+------------------------------------------------------------------+
bool CreateTLine(string NAME,color col,datetime time1,double price1,datetime time2,double price2,bool ray=true,int window=0,int width=2)
{
string name=prefix+NAME;
if(ObjectFind(name)!=window)
ObjectCreate(name,OBJ_TREND,window,time1,price1,time2,price2);
ObjectSet(name,OBJPROP_WIDTH,width);
ObjectSet(name,OBJPROP_COLOR,col);
ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
ObjectSet(name,OBJPROP_TIME1,time1);
ObjectSet(name,OBJPROP_TIME2,time2);
ObjectSet(name,OBJPROP_PRICE1,price1);
ObjectSet(name,OBJPROP_PRICE2,price2);
ObjectSet(name,OBJPROP_RAY,ray);
if(ObjectFind(name)==window)return(true);
return(false);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Draw Closed Orders |
//+------------------------------------------------------------------+
void DrawMaxDrawdown()
{
int history=OrdersHistoryTotal();
if(Draw_Drawdown_for_Closed_Orders && history!=OrdersHistory)
{
for(int i=history-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()<=OP_SELL)
{
if(OrderType()==OP_BUY)
{
int orderBuyCandles = ( (OrderCloseTime() - OrderOpenTime())/60 )/Period();
double LowestCandle = NormalizeDouble( iLow(NULL,0,iLowest(NULL,0,MODE_LOW,orderBuyCandles,orderBuyCandles) ), Digits);
Print ("(",OrderCloseTime() - OrderOpenTime(),"), Order #",OrderTicket()," (",OrderType(),"), OTime: ",TimeToString (OrderOpenTime(),TIME_DATE|TIME_MINUTES),", Buy Candles: ",orderBuyCandles, ", Lowest Candle: ",LowestCandle,", Lowest Candle Time: ", TimeToString(iTime(NULL,0,iLowest(NULL,0,MODE_LOW,orderBuyCandles,orderBuyCandles)),TIME_DATE|TIME_MINUTES
) );
CreateTLine(OrderTicket(),Aqua,OrderOpenTime(),OrderOpenPrice(),iTime(NULL,0,iLowest(NULL,0,MODE_LOW,orderBuyCandles,orderBuyCandles)),LowestCandle,false);
}
if(OrderType()==OP_SELL)
{
int orderSellCandles = ( (OrderCloseTime() - OrderOpenTime())/60 )/Period();
double HighestCandle = NormalizeDouble( iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,orderSellCandles,orderSellCandles) ), Digits);
Print ("(",OrderCloseTime() - OrderOpenTime(),"), Order #",OrderTicket()," (",OrderType(),"), OTime: ",TimeToString (OrderOpenTime(),TIME_DATE|TIME_MINUTES),", Sell Candles: ",orderSellCandles, ", Highest Candle: ",HighestCandle,", Highest Candle Time: ", TimeToString ( iTime(NULL,0,iHighest(NULL,0,MODE_HIGH,orderSellCandles,orderSellCandles)), TIME_DATE|TIME_MINUTES ) );
CreateTLine(OrderTicket(),Red,OrderOpenTime(),OrderOpenPrice(),iTime(NULL,0,iHighest(NULL,0,MODE_HIGH,orderSellCandles,orderSellCandles)),HighestCandle,false);
}
}
}
OrdersHistory=history;
}
}
//+------------------------------------------------------------------+
//| End of Draw Closed Orders |
//+------------------------------------------------------------------+