HistoryToObjects

Author: Bugscoder Studio
Orders Execution
Checks for the total of closed orders
0 Views
0 Downloads
0 Favorites
HistoryToObjects
#property copyright "Bugscoder Studio"
#property link      "https://www.bugscoder.com/"
#property version   "1.00"
#property strict
#property show_inputs

input int MAGIC_NUMBER = 0;

void OnStart() {
   ObjectsDeleteAll(0, "HistoryToObjects_");
   
   double totalProfit = 0;
   int total_order = OrdersHistoryTotal();
   for(int x=total_order; x>=0; x--) {
      if (OrderSelect(x, SELECT_BY_POS, MODE_HISTORY) == false) { continue; }
      if (MAGIC_NUMBER != 0 && OrderMagicNumber() != MAGIC_NUMBER) { continue; }
      if (OrderSymbol() != Symbol()) { continue; }
      
      string orderType = OrderType() == OP_BUY ? "Buy" : OrderType() == OP_SELL ? "Sell" : "";
      int lapse = (int) MathFloor((OrderCloseTime()-OrderOpenTime())/60)/4;
      
      totalProfit += OrderProfit();
      
      if (OrderType() != OP_BUY && OrderType() != OP_SELL) { continue; }
      
      string _name = "HistoryToObjects_"+IntegerToString(OrderTicket());
      if(ObjectCreate(0, _name, OBJ_TREND, 0, OrderOpenTime(), OrderOpenPrice(), OrderCloseTime(), OrderClosePrice())) {
         ObjectSet(_name, OBJPROP_RAY, 0);
         ObjectSet(_name, OBJPROP_COLOR, OrderType() == OP_BUY ? clrBlue : clrRed);
         ObjectSet(_name, OBJPROP_SELECTABLE, false);
      }
      
      if(ObjectCreate(0, _name+"_E", OBJ_TREND, 0, OrderOpenTime(), OrderOpenPrice(), OrderCloseTime(), OrderOpenPrice())) {
         ObjectSet(_name+"_E", OBJPROP_RAY, 0);
         ObjectSet(_name+"_E", OBJPROP_COLOR, clrBlack);
         ObjectSet(_name+"_E", OBJPROP_SELECTABLE, false);
      }
      
      if(ObjectCreate(0, _name+"_TP", OBJ_TREND, 0, OrderOpenTime(), OrderTakeProfit(), OrderCloseTime(), OrderTakeProfit())) {
         ObjectSet(_name+"_TP", OBJPROP_RAY, 0);
         ObjectSet(_name+"_TP", OBJPROP_COLOR, clrBlue);
         ObjectSet(_name+"_TP", OBJPROP_SELECTABLE, false);
      }
      
      if(ObjectCreate(0, _name+"_SL", OBJ_TREND, 0, OrderOpenTime(), OrderStopLoss(), OrderCloseTime(), OrderStopLoss())) {
         ObjectSet(_name+"_SL", OBJPROP_RAY, 0);
         ObjectSet(_name+"_SL", OBJPROP_COLOR, clrRed);
         ObjectSet(_name+"_SL", OBJPROP_SELECTABLE, false);
      }
      
      int _start = iBarShift(NULL, 0, OrderOpenTime());
      if(ObjectCreate(0, _name+"_ASTART", OBJ_ARROW, 0, Time[_start], OrderType() == OP_BUY ? Low[_start] : High[_start])) {
         ObjectSet(_name+"_ASTART", OBJPROP_ARROWCODE, OrderType() == OP_BUY ? 233 : 234);
         ObjectSet(_name+"_ASTART", OBJPROP_ANCHOR, OrderType() == OP_BUY ? ANCHOR_TOP : ANCHOR_BOTTOM);
         ObjectSet(_name+"_ASTART", OBJPROP_COLOR, OrderType() == OP_BUY ? clrBlue : clrRed);
         ObjectSet(_name+"_ASTART", OBJPROP_SELECTABLE, false);
      }
      
      if(ObjectCreate(0, _name+"_ASTOP", OBJ_ARROW, 0, OrderCloseTime(), OrderClosePrice())) {
         ObjectSet(_name+"_ASTOP", OBJPROP_ARROWCODE, OrderProfit() <= 0 ? 251 : 252);
         ObjectSet(_name+"_ASTOP", OBJPROP_ANCHOR, ANCHOR_CENTER);
         ObjectSet(_name+"_ASTOP", OBJPROP_COLOR, OrderType() == OP_SELL ? clrBlue : clrRed);
         ObjectSet(_name+"_ASTOP", OBJPROP_SELECTABLE, false);
      }
      
      if(ObjectCreate(0, _name+"_TPZONE", OBJ_RECTANGLE, 0, OrderOpenTime(), OrderOpenPrice(), OrderCloseTime(), OrderTakeProfit())) {
         ObjectSet(_name+"_TPZONE", OBJPROP_COLOR, clrPowderBlue);
         ObjectSet(_name+"_TPZONE", OBJPROP_SELECTABLE, false);
         ObjectSet(_name+"_TPZONE", OBJPROP_BACK, true);
      }
      
      if(ObjectCreate(0, _name+"_SLZONE", OBJ_RECTANGLE, 0, OrderOpenTime(), OrderOpenPrice(), OrderCloseTime(), OrderStopLoss())) {
         ObjectSet(_name+"_SLZONE", OBJPROP_COLOR, clrPink);
         ObjectSet(_name+"_SLZONE", OBJPROP_SELECTABLE, false);
         ObjectSet(_name+"_SLZONE", OBJPROP_BACK, true);
      }
   }
}

Comments