Codificador necesario para cambios en (casi perfecto) Trade-Manager-EA
Codificador necesario para cambios en (casi perfecto) Trade-Manager-EA

 

Publi

Resultados 1 al 10 de 10

Tema: Codificador necesario para cambios en (casi perfecto) Trade-Manager-EA

  1. #1
    1 Adjunto (s) Hola,
    Intento encontrar algún codificador que pueda estar interesado en volver a codificar mi Trade-Manager-EA por el que he pagado.
    Un antiguo miembro senior muy conocido de ROOIKOOL (también un programador muy bueno) ha codificado este EA para mí.
    Pero ya no estaba haciendo algunos cambios en la EA.
    Así que hay 2-3 características que no funcionan correctamente como deberían ser.
    Aquí está el código:

    #property copyright Coded by rooicol

    #importar stdlib.ex4
    string ErrorDescription (int ErrorCode);
    extern int DefaultSL = 400;
    extern bool HighLowSL = True;
    extern int BarCount = 3;
    extern int Gap = 100;
    extern int HighLowSafetyPoints = 100;
    extern int DefaultTP = 500;
    extern int DefaultCPPercent = 50;
    extern bool HardSLTPActive = False;
    extern int HardSLTPDistance = 400;
    extern int AutoBEPoints = 200;
    extern bool TrendLineSL = False;
    extern int TrendLineSLDistance = 40;
    extern bool MaintainSession = False;
    extern int MyMagicNumber = 555;
    extern bool ObjectOrders = True;
    extern bool ObjectStopOrders = False;
    extern int SendMultipleOrders = 1;
    extern int WingdingObjectOrders = 251;
    extern int DistancePendingOrder = 40;
    Lotes dobles externos = 0;
    extern Doble RiskPercent = 2;
    CommissionPerLot doble externo = 0;
    extern int TradeObjectsFontSize = 8;
    extern int TradeWingDingFontSize = 35;
    extern int TradeObjectsXDistance = 10;
    extern int TradeObjectsYDistance = -34;
    extern int TradeObjectsXSpace = 30;
    extern int TradeObjectsYSpace = 28;
    extern bool DeleteOnly = True;
    extern bool ShowConfirm = False;
    color externo BuyMarketColour = Green;
    color externo BuyLimitColour = Green;
    color externo BuyStopColour = Green;
    color externo CerrarColor = Gris;
    color externo SellMarketColour = Maroon;
    color externo SellLimitColour = Maroon;
    color externo SellStopColour = Maroon;
    extern int LineStyleEntry = STYLE_SOLID;
    extern int LineStyleSL = STYLE_DASH;
    extern int LineStyleTP = STYLE_DOT;
    extern int LineStyleCP = STYLE_DASHDOT;
    color externo Color1 = Naranja;
    color externo Colour2 = DarkGray;
    Color externo Colour3 = Lima;
    color externo Color4 = Verde;
    color externo Color5 = Azul;
    color externo PendingColour = SkyBlue;
    extern bool UseWingDings = False;
    extern int OrderLineThickness = 5;
    extern int OrderLineLength = 10;
    color externo EntryColour = Blue;
    color externo SLColour = naranja;
    color externo TPColour = DarkGray;
    color externo CPColour = Lime;
    Ala externa int = 74;
    extern bool RunInfiniteLoop = False;
    extern int RunIntervalMS = 100;
    bool FirstRun = True;
    bool AutoBE = False;
    int start ()
    {
    while (IsStopped () == False)
    {
    RefreshRates ();
    if (MyMagicNumber == 0)
    Comentario (MyMagicNumber no debe ser 0!);
    //--------- BORRAR HISTORIAL NIVELES DE COMERCIO ----------------------------------- -------
    para (int i = OrdersHistoryTotal () - 10; ilt; OrdersHistoryTotal (); i )
    {
    OrderSelect (i, SELECT_BY_POS, MODE_HISTORY);
    int TicketNo = OrderTicket ();
    ObjectDelete (Trade Management EA: Line Entry TicketNo);
    ObjectDelete (Trade Management EA: Line SL TicketNo);
    ObjectDelete (Trade Management EA: Line TP TicketNo);
    ObjectDelete (Trade Management EA: Line CP TicketNo);
    ObjectDelete (Gestión de comercio EA: Entrada a distancia TicketNo);
    ObjectDelete (Trade Management EA: Distance SL TicketNo);
    ObjectDelete (Gestión de comercio EA: Distancia TP TicketNo);
    ObjectDelete (Gestión de comercio EA: Distancia CP TicketNo);
    ObjectDelete (Trade Management EA: Trend Line TicketNo);
    ObjectDelete (Trade Management EA: Ticket No Entry TicketNo);
    ObjectDelete (Trade Management EA: Ticket No SL TicketNo);
    ObjectDelete (Trade Management EA: Ticket No TP TicketNo);
    ObjectDelete (Trade Management EA: Ticket No CP TicketNo);
    ObjectDelete (Trade Management EA: Wingding Entry TicketNo);
    ObjectDelete (Trade Management EA: Wingding SL TicketNo);
    ObjectDelete (EA de gestión comercial: Wingding TP TicketNo);
    ObjectDelete (Trade Management EA: Wingding CP TicketNo);
    GlobalVariableDel (Trade Management EA: Line CP TicketNo);
    }
    //--------- CREAR NIVELES DE COMERCIO ------------------------------------ ------
    int j = 0;
    bool estática TrailActive;
    para (i = OrdersTotal () - 1; igt; = 0; i--)
    {
    OrderSelect (i, SELECT_BY_POS);
    if (OrderSymbol () == Symbol () OrderMagicNumber ()! = MyMagicNumber)
    {
    j ;
    TicketNo = OrderTicket ();
    cadena TicketNoStr = DoubleToStr (TicketNo, 0);
    interruptor (OrderType ())
    {
    caso 0: int Dirección = 1; Precio doble = oferta; bool Pendiente = Falso; descanso;
    caso 2:
    caso 4: Dirección = 1; Precio = Oferta; doble precio pendiente = preguntar; Pendiente = Verdadero; descanso;
    caso 1: Dirección = -1; Precio = preguntar; Pendiente = Falso; descanso;
    caso 3:
    caso 5: Dirección = -1; Precio = preguntar; PendingPrice = Bid; Pendiente = Verdadero;
    }
    si (j == 1)
    color Color = Color1;
    si (j == 2)
    Color = Color2;
    si (j == 3)
    Color = Color 3;
    si (j == 4)
    Color = Color 4;
    si (jgt; = 5)
    Color = Color 5;
    if (UseWingDings == False)
    {
    ObjectCreate (EA de gestión de comercio: Entrada de línea TicketNo, OBJ_HLINE, 0, OrderOpenTime (), OrderOpenPrice ());
    ObjectSet (Trade Management EA: Entrada de línea TicketNo, OBJPROP_COLOR, Color);
    ObjectSet (Trade Management EA: Entrada de línea TicketNo, OBJPROP_STYLE, LineStyleEntry);
    doble LineEntryPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line Entry TicketNo, OBJPROP_PRICE1), dígitos);

    ObjectCreate (EA de gestión de comercio: Ticket No Entry TicketNo, OBJ_TEXT, 0, Time [80], LineEntryPrice);
    ObjectSetText (Trade Management EA: Ticket No Entry TicketNo, TicketNoStr, 10, Arial, Color);
    ObjectMove (Trade Management EA: Ticket No Entry TicketNo, 0, Time [80], LineEntryPrice);
    }
    más
    {
    ObjectCreate (Trade Management EA: Entrada de línea TicketNo, OBJ_TREND, 0, OrderOpenTime (), OrderOpenPrice (), Hora [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], OrderOpenPrice ());
    ObjectSet (Trade Management EA: Entrada de línea TicketNo, OBJPROP_WIDTH, OrderLineThickness);
    ObjectSet (Trade Management EA: Entrada de línea TicketNo, OBJPROP_COLOR, EntryColour);
    ObjectSet (EA de gestión de comercio: Entrada de línea TicketNo, OBJPROP_RAY, Falso);
    LineEntryPrice = NormalizeDouble (ObjectGet (EA de administración de comercio: Entrada de línea TicketNo, OBJPROP_PRICE1), dígitos);

    //ObjectCreate (EA de administración de comercio: Entrada Wingding TicketNo, OBJ_TEXT, 0, OrderOpenTime (), OrderOpenPrice ());
    //ObjectSetText (Trade Management EA: Wingding Entry TicketNo, CharToStr (Wingding), 10, WingDings, EntryColour);
    //ObjectMove (Trade Management EA: Wingding Entry TicketNo, 0, OrderOpenTime (), LineEntryPrice);
    }

    if (OrderType () lt; = 1)
    {
    ObjectMove (Trade Management EA: Entrada de línea TicketNo, 0, OrderOpenTime (), OrderOpenPrice ());
    ObjectMove (Trade Management EA: Entrada de línea TicketNo, 1, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) OrderLineLength], OrderOpenPrice ());
    }
    if (OrderType () gt; = 2)
    {
    ObjectMove (Trade Management EA: Entrada de línea TicketNo, 0, OrderOpenTime (), LineEntryPrice);
    ObjectMove (Trade Management EA: Entrada de línea TicketNo, 1, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) OrderLineLength], LineEntryPrice);
    }

    si (pendiente == verdadero)
    Precio dobleEntrada = Precio pendiente;
    más
    PriceEntry = Price;
    int EntryDistance = ((PriceEntry-LineEntryPrice) * Direction)Point;
    string EntryDistanceStr = DoubleToStr (EntryDistance, 0);
    if (UseWingDings == True)
    color DistanceEntryColour = EntryColour;
    más
    DistanceEntryColour = Color;
    ObjectCreate (Gestión de comercio EA: Entrada de distancia TicketNo, OBJ_TEXT, 0, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) 10], LineEntryPrice);
    ObjectSetText (Gestión de comercio EA: Entrada a distancia TicketNo, EntryDistanceStr, 13, Arial, DistanceEntryColour);
    ObjectMove (Trade Management EA: Entrada de distancia TicketNo, 0, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) 10], LineEntryPrice);

    if (HighLowSL == True)
    {
    si (Dirección == 1)
    {
    doble LineSLInitialPrice = Low [iLowest (Symbol (), Period (), MODE_LOW, BarCount)] - (Gap * Point);
    if (LineSLInitialPricegt; (OrderOpenPrice () - (HighLowSafetyPoints * Point)))
    LineSLInitialPrice = (OrderOpenPrice () - (HighLowSafetyPoints * Point));
    }
    si (Dirección == - 1)
    {
    LineSLInitialPrice = High [iHighest (Symbol (), Period (), MODE_HIGH, BarCount)] (Gap * Point);
    if (LineSLInitialPricelt; (OrderOpenPrice () (HighLowSafetyPoints * Point)))
    LineSLInitialPrice = (OrderOpenPrice () (HighLowSafetyPoints * Point));
    }
    }
    más
    LineSLInitialPrice = OrderOpenPrice () - (Direction * DefaultSL * Point);
    si (OrderStopLoss ()! = 0)
    LineSLInitialPrice = OrderStopLoss () (HardSLTPDistance * Point * Direction);

    if (UseWingDings == False)
    {
    ObjectCreate (Trade Management EA: Line SL TicketNo, OBJ_HLINE, 0, OrderOpenTime (), LineSLInitialPrice);
    ObjectSet (Trade Management EA: Línea SL TicketNo, OBJPROP_COLOR, Color);
    ObjectSet (Trade Management EA: Line SL TicketNo, OBJPROP_STYLE, LineStyleSL);
    doble LineSLPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line SL TicketNo, OBJPROP_PRICE1), dígitos);
    ObjectMove (Trade Management EA: Line SL TicketNo, 0, OrderOpenTime (), LineSLPrice);

    ObjectCreate (Trade Management EA: Ticket No SL TicketNo, OBJ_TEXT, 0, Time [80], LineSLPrice);
    ObjectSetText (Trade Management EA: Ticket No SL TicketNo, TicketNoStr, 10, Arial, Color);
    ObjectMove (Trade Management EA: Ticket No SL TicketNo, 0, Time [80], LineSLPrice);
    }
    más
    {
    ObjectCreate (Trade Management EA: Line SL TicketNo, OBJ_TREND, 0, OrderOpenTime (), LineSLInitialPrice, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], LineSLInitialPrice);
    ObjectSet (Trade Management EA: Line SL TicketNo, OBJPROP_WIDTH, OrderLineThickness);
    ObjectSet (Trade Management EA: Line SL TicketNo, OBJPROP_COLOR, SLColour);
    ObjectSet (Trade Management EA: Line SL TicketNo, OBJPROP_RAY, False);
    LineSLPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line SL TicketNo, OBJPROP_PRICE1), dígitos);
    ObjectMove (Trade Management EA: Line SL TicketNo, 0, OrderOpenTime (), LineSLPrice);
    ObjectMove (Trade Management EA: Line SL TicketNo, 1, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], LineSLPrice);

    //ObjectCreate (Trade Management EA: Wingding SL TicketNo, OBJ_TEXT, 0, OrderOpenTime (), LineSLInitialPrice);
    //ObjectSetText (Trade Management EA: Wingding SL TicketNo, CharToStr (Wingding), 10, WingDings, SLColour);
    //ObjectMove (Trade Management EA: Wingding SL TicketNo, 0, OrderOpenTime (), LineSLPrice);
    }

    doble SLDistance = ((LineSLPrice-OrderOpenPrice ()) * Direction)(Point);
    cadena SLDistanceStr = DoubleToStr (SLDistance, 0);
    if (UseWingDings == True)
    color DistanceSLColour = SLColour;
    más
    DistanciaSLColour = Color;
    ObjectCreate (Trade Management EA: Distancia SL TicketNo, OBJ_TEXT, 0, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) 20], LineSLPrice);
    ObjectSetText (Trade Management EA: Distancia SL TicketNo, SLDistanceStr, 13, Arial, DistanceSLColour);
    ObjectMove (Trade Management EA: Distancia SL TicketNo, 0, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) 20], LineSLPrice);

    if (TrendLineSL == TrueOrderType () lt; = 1)
    {
    if (OrderType () == 0)
    {
    doble TrendLinePrice1 = bajo [0] - (250 * puntos);
    TrendLinePrice2 doble = bajo [0] - (75 * puntos);
    }
    si (OrderType () == 1)
    {
    TrendLinePrice1 = High [0] (250 * Point);
    TrendLinePrice2 = Alto [0] (75 * puntos);
    }

    ObjectCreate (Trade Management EA: Trend Line TicketNo, OBJ_TREND, 0, Time [30], TrendLinePrice1, Time [0], TrendLinePrice2);
    ObjectSet (EA de gestión comercial: Trend Line TicketNo, OBJPROP_RAY, True);
    doble TrendLineCurrentValue = ObjectGetValueByShift (Trade Management EA: Trend Line TicketNo, 0) - (TrendLineSLDistance * Point * Direction);
    ObjectMove (Trade Management EA: Line SL TicketNo, 0, OrderOpenTime (), TrendLineCurrentValue);
    ObjectMove (Trade Management EA: Line SL TicketNo, 1, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], TrendLineCurrentValue);
    }
    if (TrendLineSL == False)
    ObjectDelete (Trade Management EA: Trend Line TicketNo);

    if (It BE == True OrderType () lt; = 1EntryDistance gt; = AutoBEPoints)
    {
    ObjectMove (Trade Management EA: Line SL TicketNo, 0, OrderOpenTime (), OrderOpenPrice ());
    ObjectMove (Trade Management EA: Line SL TicketNo, 1, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], OrderOpenPrice ());
    }

    if (TrailActive == TrueOrderType () lt; = 1)
    {
    if (OrderType () == 0)
    doble TrailMovePrice = iLow (Symbol (), 240,1) - (Gap * Point);
    si (OrderType () == 1)
    Precio TrailCom = Alto (Símbolo (), 240,1) (Punto Gap *);

    if ((TrailMovePrice-LineSLPrice) * Directiongt; (Point2))
    {
    ObjectMove (Trade Management EA: Line SL TicketNo, 0, OrderOpenTime (), TrailMovePrice);
    ObjectMove (Trade Management EA: Line SL TicketNo, 1, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], TrailMovePrice);
    }
    ObjectMove (Trade Management EA: Línea TP TicketNo, 0, OrderOpenTime (), OrderOpenPrice () (Punto * 10000 * Dirección));
    ObjectMove (Trade Management EA: Line TP TicketNo, 1, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], OrderOpenPrice () (Point * 10000 * Direction));
    }

    if (OrderTakeProfit ()! = 0)
    doble LineTPInitialPrice = OrderTakeProfit () - (HardSLTPDistance * Point * Direction);
    más
    LineTPInitialPrice = OrderOpenPrice () (Direction * DefaultTP * Point);


    if (UseWingDings == False)
    {
    ObjectCreate (EA de gestión comercial: Line TP TicketNo, OBJ_HLINE, 0, OrderOpenTime (), LineTPInitialPrice);
    ObjectSet (Trade Management EA: Línea TP TicketNo, OBJPROP_COLOR, Color);
    ObjectSet (Trade Management EA: Line TP TicketNo, OBJPROP_STYLE, LineStyleTP);
    doble LineTPPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line TP TicketNo, OBJPROP_PRICE1), dígitos);
    ObjectMove (Trade Management EA: Line TP TicketNo, 0, OrderOpenTime (), LineTPPrice);

    ObjectCreate (EA de gestión comercial: Ticket No TP TicketNo, OBJ_TEXT, 0, Time [80], LineTPPrice);
    ObjectSetText (Trade Management EA: Ticket No TP TicketNo, TicketNoStr, 10, Arial, Color);
    ObjectMove (Trade Management EA: Ticket No TP TicketNo, 0, Time [80], LineTPPrice);
    }
    más
    {
    ObjectCreate (Trade Management EA: Line TP TicketNo, OBJ_TREND, 0, OrderOpenTime (), LineTPInitialPrice, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], LineTPInitialPrice);
    ObjectSet (Trade Management EA: Line TP TicketNo, OBJPROP_WIDTH, OrderLineThickness);
    ObjectSet (Trade Management EA: Line TP TicketNo, OBJPROP_COLOR, TPColour);
    ObjectSet (EA de gestión de comercio: Línea TP TicketNo, OBJPROP_RAY, Falso);
    LineTPPrice = NormalizeDouble (ObjectGet (EA de gestión de comercio: Line TP TicketNo, OBJPROP_PRICE1), dígitos);
    ObjectMove (Trade Management EA: Line TP TicketNo, 0, OrderOpenTime (), LineTPPrice);
    ObjectMove (Trade Management EA: Line TP TicketNo, 1, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], LineTPPrice);

    //ObjectCreate (Trade Management EA: Wingding TP TicketNo, OBJ_TEXT, 0, OrderOpenTime (), LineTPInitialPrice);
    //ObjectSetText (Trade Management EA: Wingding TP TicketNo, CharToStr (Wingding), 10, WingDings, TPColour);
    //ObjectMove (Trade Management EA: Wingding TP TicketNo, 0, OrderOpenTime (), LineTPPrice);
    }

    doble TPDistance = ((LineTPPrice-OrderOpenPrice ()) * Direction)(Point);
    cadena TPDistanceStr = DoubleToStr (TPDistance, 0);
    if (UseWingDings == True)
    color DistanceTPColour = TPColour;
    más
    DistanceTPColour = Color;
    ObjectCreate (Gestión de comercio EA: Distancia TP TicketNo, OBJ_TEXT, 0, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) 20], LineTPPrice);
    ObjectSetText (Gestión de comercio EA: Distancia TP TicketNo, TPDistanceStr, 13, Arial, DistanceTPColour);
    ObjectMove (Trade Management EA: Distancia TP TicketNo, 0, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) 20], LineTPPrice);

    if (DefaultCPPercentgt; 0)
    {
    doble LineCPInitialPrice = GlobalVariableGet (Trade Management EA: Line CP TicketNo);
    if (LineCPInitialPrice == 0)
    LineCPInitialPrice = LineTPPrice (Direction * 20 * Point);
    if (UseWingDings == false)
    {
    ObjectCreate (Trade Management EA: Línea CP TicketNo, OBJ_HLINE, 0, OrderOpenTime (), LineCPInitialPrice);
    ObjectSet (Trade Management EA: Línea CP TicketNo, OBJPROP_COLOR, Color);
    ObjectSet (Trade Management EA: Line CP TicketNo, OBJPROP_STYLE, LineStyleCP);
    doble LineCPPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line CP TicketNo, OBJPROP_PRICE1), dígitos);
    ObjectMove (Trade Management EA: Línea CP TicketNo, 0, OrderOpenTime (), LineCPPrice);

    ObjectCreate (EA de gestión de comercio: Ticket No CP TicketNo, OBJ_TEXT, 0, Time [80], LineCPPrice);
    ObjectSetText (Trade Management EA: Ticket No CP TicketNo, TicketNoStr, 10, Arial, Color);
    ObjectMove (EA de gestión de comercio: Ticket No CP TicketNo, 0, Hora [80], LineCPPrice);
    }
    más
    {
    ObjectCreate (Trade Management EA: Line CP TicketNo, OBJ_TREND, 0, OrderOpenTime (), LineCPInitialPrice, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], LineCPInitialPrice);
    ObjectSet (Trade Management EA: Línea CP TicketNo, OBJPROP_WIDTH, OrderLineThickness);
    ObjectSet (EA de gestión comercial: Línea CP TicketNo, OBJPROP_COLOR, CPColour);
    ObjectSet (EA de gestión de comercio: Línea CP TicketNo, OBJPROP_RAY, Falso);
    LineCPPrice = NormalizeDouble (ObjectGet (EA de gestión de comercio: Line CP TicketNo, OBJPROP_PRICE1), dígitos);
    ObjectMove (Trade Management EA: Línea CP TicketNo, 0, OrderOpenTime (), LineCPPrice);
    ObjectMove (Trade Management EA: Línea CP TicketNo, 1, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) OrderLineLength], LineCPPrice);

    //ObjectCreate (Trade Management EA: Wingding CP TicketNo, OBJ_TEXT, 0, OrderOpenTime (), LineCPInitialPrice);
    //ObjectSetText (Trade Management EA: Wingding CP TicketNo, CharToStr (Wingding), 10, WingDings, CPColour);
    //ObjectMove (Trade Management EA: Wingding CP TicketNo, 0, OrderOpenTime (), LineCPPrice);
    }
    doble CPDistance = ((LineCPPrice-OrderOpenPrice ()) * Direction)(Point);
    cadena CPDistanceStr = DoubleToStr (CPDistance, 0);
    if (UseWingDings == True)
    color DistanceCPColour = CPColour;
    más
    DistanceCPColour = Color;
    ObjectCreate (Trade Management EA: Distancia CP TicketNo, OBJ_TEXT, 0, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) 10], LineCPPrice);
    ObjectSetText (Gestión de comercio EA: Distancia CP TicketNo, CPDistanceStr, 13, Arial, DistanceCPColour);
    ObjectMove (Trade Management EA: Distancia CP TicketNo, 0, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) 10], LineCPPrice);
    GlobalVariableSet (Trade Management EA: Line CP TicketNo, LineCPPrice);
    int ClosePercent = StrToDouble (ObjectDescription (Trade Management EA: Line CP TicketNo));
    if (ClosePercent == 0)
    ObjectSetText (Trade Management EA: Línea CP TicketNo, DoubleToStr (DefaultCPPercent, 0));
    }
    más
    {
    ObjectDelete (Gestión de comercio EA: Distancia CP TicketNo);
    ObjectDelete (Trade Management EA: Ticket No CP TicketNo);
    ObjectDelete (Trade Management EA: Line CP TicketNo);
    GlobalVariableDel (Trade Management EA: Line CP TicketNo);
    }
    //--------- MODIFICAR SL Y TP ----------------------------------- -------
    doble LineSLPriceAdjusted = LineSLPrice- (Direction * HardSLTPDistance * Point);
    doble LineTPPriceAdjusted = LineTPPrice (Direction * HardSLTPDistance * Point);

    if (MathAbs (OrderOpenPrice () - LineEntryPrice) gt; (Point2))
    bool EntryDifference = True;
    más
    EntryDifference = False;
    if (MathAbs (OrderStopLoss () - LineSLPriceAdjusted) gt; (Point2))
    bool SLDifference = True;
    más
    SLDifference = False;
    if (MathAbs (OrderTakeProfit () - LineTPPriceAdjusted) gt; (Point2))
    bool TPDifference = True;
    más
    TPDifference = False;

    if ((HardSLTPActive == True (SLDifference == True || TPDifference == True)) || (EntryDifference == TrueOrderType () gt; = 2))
    {
    OrderModify (TicketNo, LineEntryPrice, LineSLPriceAdjusted, LineTPPriceAdjusted, 0);
    Dormir (250);
    }
    OrderSelect (i, SELECT_BY_POS);
    RefreshRates ();
    //--------- EA CIERRE ------------------------------------- -----

    if (((Price-LineSLPrice) * Direction) lt; (Point2))
    bool SLHit = True;
    más
    SLHit = Falso;
    if (((LineTPPrice-Price) * Direction) lt; (Point2))
    bool TPHit = Verdadero;
    más
    TPHit = Falso;
    if (((LineCPPrice-Price) * Direction) lt; (Point2))
    bool CPHit = True;
    más
    CPHit = False;

    if (((HardSLTPActive == TrueHardSLTPDistancegt; 0) || (HardSLTPActive == False)) SLHit == TrueOrderType () lt; = 1)
    RunClose (TicketNo, LineSLPrice, OrderLots (), EA CLOSE);
    if (((HardSLTPActive == TrueHardSLTPDistancegt; 0) || (HardSLTPActive == False)) TPHit == TrueOrderType () lt; = 1)
    RunClose (TicketNo, LineTPPrice, OrderLots (), EA CLOSE);
    if (DefaultCPPercentgt; 0CPHit == TrueOrderType () lt; = 1)
    {
    LotPoint doble = MarketInfo (Symbol (), MODE_LOTSTEP);
    doble CloseLots = MathRound ((OrderLots () * ClosePercent * 0.01)LotPoint) * LotPoint;
    RunClose (TicketNo, LineCPPrice, CloseLots, EA CLOSE);
    }
    }
    }
    //---------ORDENES PENDIENTES------------------------------------- --------------------
    para (i = 0; ilt; 10; i )
    {
    doble LineBuyLimitPrice = NormalizeDouble (ObjectGet (Trade Management EA: límite de compra de línea i, OBJPROP_PRICE1), dígitos);
    if (LineBuyLimitPrice! = 0)
    {
    ObjectMove (Trade Management EA: Line Buy Limit i, 0, TimeCurrent (), LineBuyLimitPrice);
    ObjectMove (Trade Management EA: Line Buy Limit i, 1, Time [10], LineBuyLimitPrice);
    ObjectMove (Trade Management EA: Ticket No Buy Limit i, 0, Time [80], LineBuyLimitPrice);
    //ObjectMove (Trade Management EA: Wingding Buy Limit i, 0, TimeCurrent (), LineBuyLimitPrice);
    double BuyLimitDistance = (Ask-LineBuyLimitPrice)(Point);
    cadena BuyLimitDistanceStr = DoubleToStr (BuyLimitDistance, 0);
    ObjectSetText (Trade Management EA: Límite de compra a distancia i, BuyLimitDistanceStr, 13, Arial, PendingColour);
    ObjectMove (Trade Management EA: Límite de compra a distancia i, 0, Tiempo [10], LineBuyLimitPrice);
    if ((Ask-LineBuyLimitPrice) lt; (Point2))
    {
    SendBuyMarketOrder (Verdadero);
    ObjectDelete (Trade Management EA: Line Buy Limit i);
    ObjectDelete (Trade Management EA: Ticket No Buy Limit i);
    ObjectDelete (EA de gestión comercial: límite de compra a distancia i);
    ObjectDelete (Trade Management EA: Wingding Buy Limit i);
    }
    }
    más
    {
    ObjectDelete (Trade Management EA: Ticket No Buy Limit i);
    ObjectDelete (EA de gestión comercial: límite de compra a distancia i);
    ObjectDelete (Trade Management EA: Wingding Buy Limit i);
    }
    doble LineBuyStopPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line Buy Stop i, OBJPROP_PRICE1), dígitos);
    si (LineBuyStopPrice! = 0)
    {
    ObjectMove (Trade Management EA: Line Buy Stop i, 0, TimeCurrent (), LineBuyStopPrice);
    ObjectMove (Trade Management EA: Line Buy Stop i, 1, Time [10], LineBuyStopPrice);
    ObjectMove (Trade Management EA: Ticket No Buy Stop i, 0, Time [80], LineBuyStopPrice);
    //ObjectMove (Trade Management EA: Wingding Buy Stop i, 0, TimeCurrent (), LineBuyStopPrice);
    doble BuyStopDistance = (LineBuyStopPrice-Ask)(Point);
    cadena BuyStopDistanceStr = DoubleToStr (BuyStopDistance, 0);
    ObjectSetText (EA de gestión de comercio: compra a distancia Stop i, BuyStopDistanceStr, 13, Arial, PendingColour);
    ObjectMove (EA de gestión de comercio: Distancia Compra Stop i, 0, Tiempo [10], LineBuyStopPrice);
    if ((LineBuyStopPrice-Ask) lt; (Punto2))
    {
    SendBuyMarketOrder (Verdadero);
    ObjectDelete (Trade Management EA: Line Buy Stop i);
    ObjectDelete (Trade Management EA: Ticket No Buy Stop i);
    ObjectDelete (Gestión de comercio de EA: Stop comprar a distancia i);
    ObjectDelete (EA de gestión comercial: Wingding Buy Stop i);
    }
    }
    más
    {
    ObjectDelete (Trade Management EA: Ticket No Buy Stop i);
    ObjectDelete (Gestión de comercio de EA: Stop comprar a distancia i);
    ObjectDelete (EA de gestión comercial: Wingding Buy Stop i);
    }

    doble LineSellLimitPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line Sell Limit i, OBJPROP_PRICE1), dígitos);
    if (LineSellLimitPrice! = 0)
    {
    ObjectMove (Trade Management EA: Line Sell Limit i, 0, TimeCurrent (), LineSellLimitPrice);
    ObjectMove (Trade Management EA: Line Sell Limit i, 1, Time [10], LineSellLimitPrice);
    ObjectMove (EA de administración de comercio: Ticket No Sell Limit i, 0, Time [80], LineSellLimitPrice);
    //ObjectMove (Trade Management EA: Wingding Sell Limit i, 0, TimeCurrent (), LineSellLimitPrice);
    double SellLimitDistance = (LineSellLimitPrice-Bid)(Point);
    cadena SellLimitDistanceStr = DoubleToStr (SellLimitDistance, 0);
    ObjectSetText (Trade Management EA: Límite de venta a distancia i, SellLimitDistanceStr, 13, Arial, PendingColour);
    ObjectMove (Gestión de comercio EA: Límite de venta a distancia i, 0, Tiempo [10], LineSellLimitPrice);
    if ((LineSellLimitPrice-Bid) lt; (Point2))
    {
    SendSellMarketOrder (Verdadero);
    ObjectDelete (Trade Management EA: Line Sell Limit i);
    ObjectDelete (EA de gestión comercial: Ticket No Sell Limit i);
    ObjectDelete (EA de gestión comercial: límite de venta a distancia i);
    ObjectDelete (Trade Management EA: Wingding Sell Limit i);
    }
    }
    más
    {
    ObjectDelete (EA de gestión comercial: Ticket No Sell Limit i);
    ObjectDelete (EA de gestión comercial: límite de venta a distancia i);
    ObjectDelete (Trade Management EA: Wingding Sell Limit i);
    }
    doble LineSellStopPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line Sell Stop i, OBJPROP_PRICE1), dígitos);
    si (LineSellStopPrice! = 0)
    {
    ObjectMove (Trade Management EA: Line Sell Stop i, 0, TimeCurrent (), LineSellStopPrice);
    ObjectMove (Trade Management EA: Line Sell Stop i, 1, Time [10], LineSellStopPrice);
    ObjectMove (EA de gestión de comercio: Ticket No Sell Stop i, 0, Time [80], LineSellStopPrice);
    //ObjectMove (Trade Management EA: Wingding Sell Stop i, 0, TimeCurrent (), LineSellStopPrice);
    double SellStopDistance = (Bid-LineSellStopPrice)(Point);
    cadena SellStopDistanceStr = DoubleToStr (SellStopDistance, 0);
    ObjectSetText (Trade Management EA: Stopi de venta a distancia, SellStopDistanceStr, 13, Arial, PendingColour);
    ObjectMove (EA de administración de comercio: Parada de venta a distancia i, 0, Tiempo [10], LineSellStopPrice);
    if ((Bid-LineSellStopPrice) lt; (Point2))
    {
    SendSellMarketOrder (Verdadero);
    ObjectDelete (EA de Gestión de Comercio: Línea Sell Stop i);
    ObjectDelete (Trade Management EA: Ticket No Sell Stop i);
    ObjectDelete (EA de gestión comercial: Stop de venta a distancia i);
    ObjectDelete (Gestión de comercio EA: Wingding Sell Stop i);
    }
    }
    más
    {
    ObjectDelete (Trade Management EA: Ticket No Sell Stop i);
    ObjectDelete (EA de gestión comercial: Stop de venta a distancia i);
    ObjectDelete (Gestión de comercio EA: Wingding Sell Stop i);
    }
    }
    //--------- OBJETOS DE PEDIDO ------------------------------------- --------------------
    static int SIObjectOrders;
    static int SITradeObjectsFontSize;
    static int SITradeWingDingFontSize;
    static int SITradeObjectsXDistance;
    static int SITradeObjectsYDistance;
    static int SITradeObjectsYSpace;
    static int SIObjectStopOrders;

    bool InputsChanged = False;

    if (FirstRun == False)
    {
    if (SIObjectOrders! = ObjectOrders)
    InputsChanged = True;
    if (SITradeObjectsFontSize! = TradeObjectsFontSize)
    InputsChanged = True;
    if (SITradeWingDingFontSize! = TradeWingDingFontSize)
    InputsChanged = True;
    if (SITradeObjects Distance! = TradeObjects Distance)
    InputsChanged = True;
    if (SITradeObjects Distance! = TradeObjects Distance)
    InputsChanged = True;
    if (SITradeObjectsYSpace! = TradeObjectsYSpace)
    InputsChanged = True;
    if (SIObjectStopOrders! = ObjectStopOrders)
    InputsChanged = True;
    }
    SIObjectOrders = ObjectOrders;
    SITradeObjectsFontSize = TradeObjectsFontSize;
    SITradeWingDingFontSize = TradeWingDingFontSize;
    SITradeObjectsXDistance = TradeObjectsXDistance;
    SITradeObjectsYDistance = TradeObjectsYDistance;
    SITradeObjectsYSpace = TradeObjectsYSpace;
    SIObjectStopOrders = ObjectStopOrders;

    if (SendMultipleOrderslt; = 0)
    SendMultipleOrders = 1;

    if (ObjectOrders == True)
    {
    if (FirstRun == FalseInputsChanged == False)
    {
    int BuyMarketX = ObjectGet (Trade Management EA: Buy Market, OBJPROP_XDISTANCE);
    int BuyMarketY = ObjectGet (Trade Management EA: Buy Market, OBJPROP_YDISTANCE);
    int BuyMarketPresent = ObjectFind (Trade Management EA: Buy Market);
    Si(
    (DeleteOnly == False (BuyMarketX! = TradeObjectsXDistance || BuyMarketY! = TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace)) ||
    (DeleteOnly == TrueBuyMarketPresent! = 0)
    )
    {
    para (int k = 0; klt; SendMultipleOrders; k )
    SendBuyMarketOrder (False);
    ObjectDelete (Trade Management EA: Buy Market);
    }

    int CloseX = ObjectGet (Trade Management EA: Close, OBJPROP_XDISTANCE);
    int CloseY = ObjectGet (Trade Management EA: Close, OBJPROP_YDISTANCE);
    int ClosePresent = ObjectFind (Trade Management EA: Close);
    Si(
    (DeleteOnly == False (CloseX! = TradeObjectsXDistance || CloseY! = TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3))) ||
    (DeleteOnly == TrueClosePresent! = 0)
    )
    {
    SendCloseOrder ();
    ObjectDelete (Trade Management EA: Close);
    }
    int SetBEX = ObjectGet (Trade Management EA: Set BE, OBJPROP_XDISTANCE);
    int SetBEY = ObjectGet (Trade Management EA: Set BE, OBJPROP_YDISTANCE);
    int SetBEPresent = ObjectFind (Trade Management EA: Set BE);
    Si(
    (DeleteOnly == False (SetBEX! = TradeObjectsXDistance || SetBEY! = TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4))) ||
    (DeleteOnly == TrueSetBEPresent! = 0)
    )
    {
    SetBE ();
    ObjectDelete (Trade Management EA: Set BE);
    }
    int AutoBEX = ObjectGet (Trade Management EA: AutoBE, OBJPROP_XDISTANCE);
    int AutoBEY = ObjectGet (Trade Management EA: AutoBE, OBJPROP_YDISTANCE);
    int AutoBEPresent = ObjectFind (Trade Management EA: AutoBE);
    Si(
    (DeleteOnly == False (AutoBEX! = TradeObjectsXDistance || AutoBEY! = TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5))) ||
    (DeleteOnly == TrueAutoBEPresent! = 0)
    )
    {
    static int LastAutoBETime;
    if (TimeLocal () - LastAutoBETimegt; = 2)
    {
    si (AutoBE == Verdadero)
    AutoBE = Falso;
    más
    AutoBE = Verdadero;
    ObjectDelete (Trade Management EA: AutoBE);
    }
    LastAutoBETime = TimeLocal ();
    }
    int TrailX = ObjectGet (Trade Management EA: Trail, OBJPROP_XDISTANCE);
    int TrailY = ObjectGet (Trade Management EA: Trail, OBJPROP_YDISTANCE);
    int TrailPresent = ObjectFind (Trade Management EA: Trail);
    Si(
    (DeleteOnly == False (TrailX! = TradeObjectsXDistance || TrailY! = TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6))) ||
    (DeleteOnly == TrueTrailPresent! = 0)
    )
    {
    static int LastTrailTime;
    if (TimeLocal () - LastTrailTimegt; = 2)
    {
    if (TrailActive == True)
    {
    TrailActive = False;
    para (int l = 0; llt; OrdersTotal (); l )
    {
    OrderSelect (l, SELECT_BY_POS);
    if (OrderType () == 0)
    {
    ObjectMove (Trade Management EA: Línea TP TicketNo, 0, OrderOpenTime (), Bid (Point * DefaultTP));
    ObjectMove (Trade Management EA: Línea TP TicketNo, 1, Hora [iBarShift (Símbolo (), Período (), OrderOpenTime ()) OrderLineLength], Bid (Point * DefaultTP));
    }
    si (OrderType () == 1)
    {
    ObjectMove (Trade Management EA: Line TP TicketNo, 0, OrderOpenTime (), Ask- (Point * DefaultTP));
    ObjectMove (Trade Management EA: Line TP TicketNo, 1, Time [iBarShift (Symbol (), Period (), OrderOpenTime ()) OrderLineLength], Ask- (Point * DefaultTP));
    }
    }
    }
    más
    TrailActive = True;
    ObjectDelete (Trade Management EA: Trail);
    }
    LastTrailTime = TimeLocal ();
    }
    int SellMarketX = ObjectGet (Trade Management EA: Sell Market, OBJPROP_XDISTANCE);
    int SellMarketY = ObjectGet (Trade Management EA: Sell Market, OBJPROP_YDISTANCE);
    int SellMarketPresent = ObjectFind (Trade Management EA: Sell Market);
    Si(
    (DeleteOnly == False (SellMarketX! = TradeObjectsXDistance || SellMarketY! = TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8))) ||
    (DeleteOnly == TrueSellMarketPresent! = 0)
    )
    {
    para (k = 0; klt; SendMultipleOrders; k )
    SendSellMarketOrder (False);
    ObjectDelete (EA de gestión comercial: mercado de venta);
    }

    int BuyLimitX = ObjectGet (Trade Management EA: Buy Limit, OBJPROP_XDISTANCE);
    int BuyLimitY = ObjectGet (Trade Management EA: Buy Limit, OBJPROP_YDISTANCE);
    int BuyLimitPresent = ObjectFind (Trade Management EA: Buy Limit);
    Si(
    (DeleteOnly == False (BuyLimitX! = TradeObjectsXDistance || BuyLimitY! = TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2))) ||
    (DeleteOnly == TrueBuyLimitPresent! = 0)
    )
    {
    SendBuyLimitOrder ();
    ObjectDelete (Trade Management EA: Buy Limit);
    }
    int SellLimitX = ObjectGet (Trade Management EA: Sell Limit, OBJPROP_XDISTANCE);
    int SellLimitY = ObjectGet (Trade Management EA: Sell Limit, OBJPROP_YDISTANCE);
    int SellLimitPresent = ObjectFind (Trade Management EA: Sell Limit);
    Si(
    (DeleteOnly == False (SellLimitX! = TradeObjectsXDistance || SellLimitY! = TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7))) ||
    (DeleteOnly == TrueSellLimitPresent! = 0)
    )
    {
    SendSellLimitOrder ();
    ObjectDelete (EA de gestión comercial: límite de venta);
    }
    if (ObjectStopOrders == True)
    {
    int BuyStopX = ObjectGet (Trade Management EA: Buy Stop, OBJPROP_XDISTANCE);
    int BuyStopY = ObjectGet (Trade Management EA: Buy Stop, OBJPROP_YDISTANCE);
    int BuyStopPresent = ObjectFind (Trade Management EA: Buy Stop);
    Si(
    (DeleteOnly == False (BuyStopX! = TradeObjectsXDistance || BuyStopY! = TradeObjectsYDistance)) ||
    (DeleteOnly == TrueBuyStopPresent! = 0)
    )
    {
    SendBuyStopOrder ();
    ObjectDelete (Trade Management EA: Buy Stop);
    }
    int SellStopX = ObjectGet (Trade Management EA: Sell Stop, OBJPROP_XDISTANCE);
    int SellStopY = ObjectGet (Trade Management EA: Sell Stop, OBJPROP_YDISTANCE);
    int SellStopPresent = ObjectFind (Trade Management EA: Sell Stop);
    Si(
    (DeleteOnly == False (SellStopX! = TradeObjectsXDistance || SellStopY! = TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9))) ||
    (DeleteOnly == TrueSellStopPresent! = 0)
    )
    {
    SendSellStopOrder ();
    ObjectDelete (Gestión de comercio EA: Sell Stop);
    }
    }
    }

    ObjectCreate (EA de gestión comercial: mercado de compra, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Buy Market, CharToStr (WingdingObjectOrders), TradeWingDingFontSize, WingDings, BuyMarketColour);
    ObjectSet (Trade Management EA: Buy Market, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Buy Market, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Buy Market, OBJPROP_YDISTANCE, TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace);
    ObjectCreate (Trade Management EA: Buy Market Label, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Buy Market Label, MARKET, TradeObjectsFontSize, Arial, BuyMarketColour);
    ObjectSet (Trade Management EA: Comprar etiqueta de mercado, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Comprar etiqueta de mercado, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Comprar etiqueta de mercado, OBJPROP_YDISTANCE, TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace TradeWingDingFontSize-TradeObjectsFontSize);
    ObjectCreate (EA de gestión comercial: cierre, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Close, CharToStr (WingdingObjectOrders), TradeWingDingFontSize, WingDings, CloseColour);
    ObjectSet (Trade Management EA: Close, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Close, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Close, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3));
    ObjectCreate (Trade Management EA: Close Label, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Close Label, CLOSE, TradeObjectsFontSize, Arial, CloseColour);
    ObjectSet (Trade Management EA: Close Label, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Close Label, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Close Label, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3) TradeWingDingFontSize-TradeObjectsFontSize);

    ObjectCreate (Gestión de comercio EA: Set BE, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Set BE, CharToStr (WingdingObjectOrders), TradeWingDingFontSize, WingDings, CloseColour);
    ObjectSet (Trade Management EA: Set BE, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Set BE, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Set BE, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4));
    ObjectCreate (Trade Management EA: Establecer etiqueta BE, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Set BE Label, SET BE, TradeObjectsFontSize, Arial, CloseColour);
    ObjectSet (Trade Management EA: Establecer etiqueta BE, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Establecer etiqueta BE, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Set BE Label, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4) TradeWingDingFontSize-TradeObjectsFontSize);
    si (AutoBE == Verdadero)
    int AutoBEWingDing = 252;
    más
    AutoBEWingDing = WingdingObjectOrders;

    ObjectCreate (Trade Management EA: AutoBE, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: AutoBE, CharToStr (AutoBEWingDing), TradeWingDingFontSize, WingDings, CloseColour);
    ObjectSet (Trade Management EA: AutoBE, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: AutoBE, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: AutoBE, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5));
    ObjectCreate (Trade Management EA: AutoBE Label, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: AutoBE Label, AUTO BE, TradeObjectsFontSize, Arial, CloseColour);
    ObjectSet (Trade Management EA: AutoBE Label, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: AutoBE Label, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: AutoBE Label, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5) TradeWingDingFontSize-TradeObjectsFontSize);
    if (TrailActive == True)
    int TrailWingDing = 252;
    más
    TrailWingDing = WingdingObjectOrders;

    ObjectCreate (Gestión de comercio EA: Trail, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Trail, CharToStr (TrailWingDing), TradeWingDingFontSize, WingDings, CloseColour);
    ObjectSet (Trade Management EA: Trail, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Trail, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Trail, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6));
    ObjectCreate (Trade Management EA: Trail Label, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Trail Label, TRAIL, TradeObjectsFontSize, Arial, CloseColour);
    ObjectSet (Trade Management EA: Trail Label, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Etiqueta de camino, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Trail Label, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6) TradeWingDingFontSize-TradeObjectsFontSize);
    ObjectCreate (EA de gestión comercial: mercado de ventas, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Sell Market, CharToStr (WingdingObjectOrders), TradeWingDingFontSize, WingDings, SellMarketColour);
    ObjectSet (Trade Management EA: Sell Market, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Sell Market, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Sell Market, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8));

    ObjectCreate (EA de gestión comercial: etiqueta de mercado de venta, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Sell Market Label, MARKET, TradeObjectsFontSize, Arial, SellMarketColour);
    ObjectSet (Trade Management EA: Sell Market Label, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Sell Market Label, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Sell Market Label, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8) TradeWingDingFontSize-TradeObjectsFontSize);
    ObjectCreate (EA de gestión comercial: límite de compra, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Buy Limit, CharToStr (WingdingObjectOrders), TradeWingDingFontSize, WingDings, BuyLimitColour);
    ObjectSet (Trade Management EA: Buy Limit, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Buy Limit, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Buy Limit, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2));
    ObjectCreate (EA de gestión comercial: etiqueta de límite de compra, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Buy Limit Label, LIMIT, TradeObjectsFontSize, Arial, BuyLimitColour);
    ObjectSet (Trade Management EA: Etiqueta de límite de compra, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Etiqueta de límite de compra, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Buy Limit Label, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2) TradeWingDingFontSize-TradeObjectsFontSize);
    ObjectCreate (EA de gestión comercial: límite de venta, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Sell Limit, CharToStr (WingdingObjectOrders), TradeWingDingFontSize, WingDings, SellLimitColour);
    ObjectSet (Gestión de comercio EA: Límite de venta, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Sell Limit, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Sell Limit, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7));

    ObjectCreate (EA de gestión comercial: Etiqueta de límite de venta, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Etiqueta de límite de venta, LIMIT, TradeObjectsFontSize, Arial, SellLimitColour);
    ObjectSet (Trade Management EA: Etiqueta de límite de venta, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Etiqueta de límite de venta, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Sell Limit Label, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7) TradeWingDingFontSize-TradeObjectsFontSize);
    if (ObjectStopOrders == True)
    {
    ObjectCreate (Trade Management EA: Buy Stop, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Buy Stop, CharToStr (WingdingObjectOrders), TradeWingDingFontSize, WingDings, BuyStopColour);
    ObjectSet (Trade Management EA: Buy Stop, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Buy Stop, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Buy Stop, OBJPROP_YDISTANCE, TradeObjectsYDistance);
    ObjectCreate (EA de gestión comercial: comprar etiqueta de parada, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Buy Stop Label, STOP, TradeObjectsFontSize, Arial, BuyStopColour);
    ObjectSet (Trade Management EA: Buy Stop Label, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Comprar etiqueta de parada, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Buy Stop Label, OBJPROP_YDISTANCE, TradeObjectsYDistance TradeWingDingFontSize-TradeObjectsFontSize);
    ObjectCreate (EA de gestión comercial: detener venta, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Sell Stop, CharToStr (WingdingObjectOrders), TradeWingDingFontSize, WingDings, SellStopColour);
    ObjectSet (Trade Management EA: Sell Stop, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Sell Stop, OBJPROP_XDISTANCE, TradeObjectsXDistance);
    ObjectSet (Trade Management EA: Sell Stop, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9));

    ObjectCreate (Trade Management EA: Sell Stop Label, OBJ_LABEL, 0,0,0);
    ObjectSetText (Trade Management EA: Sell Stop Label, STOP, TradeObjectsFontSize, Arial, SellStopColour);
    ObjectSet (Trade Management EA: Sell Stop Label, OBJPROP_CORNER, 1);
    ObjectSet (Trade Management EA: Sell Stop Label, OBJPROP_XDISTANCE, TradeObjectsXDistance TradeObjectsXSpace);
    ObjectSet (Trade Management EA: Sell Stop Label, OBJPROP_YDISTANCE, TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9) TradeWingDingFontSize-TradeObjectsFontSize);
    }
    más
    {
    ObjectDelete (Trade Management EA: Buy Stop);
    ObjectDelete (Trade Management EA: Buy Stop Label);
    ObjectDelete (Gestión de comercio EA: Sell Stop);
    ObjectDelete (Trade Management EA: Sell Stop Label);
    }

    FirstRun = False;
    }
    más
    {
    ObjectDelete (Trade Management EA: Buy Market);
    ObjectDelete (Trade Management EA: Buy Limit);
    ObjectDelete (Trade Management EA: Buy Stop);
    ObjectDelete (Trade Management EA: Close);
    ObjectDelete (Trade Management EA: Set BE);
    ObjectDelete (Trade Management EA: AutoBE);
    ObjectDelete (Trade Management EA: Trail);
    ObjectDelete (EA de gestión comercial: mercado de venta);
    ObjectDelete (EA de gestión comercial: límite de venta);
    ObjectDelete (Gestión de comercio EA: Sell Stop);

    ObjectDelete (Trade Management EA: Buy Market Label);
    ObjectDelete (Trade Management EA: Buy Limit Label);
    ObjectDelete (Trade Management EA: Buy Stop Label);
    ObjectDelete (Trade Management EA: Close Label);
    ObjectDelete (Trade Management EA: Set BE Label);
    ObjectDelete (Trade Management EA: AutoBE Label);
    ObjectDelete (Trade Management EA: Trail Label);
    ObjectDelete (Trade Management EA: Sell Market Label);
    ObjectDelete (Trade Management EA: Sell Limit Label);
    ObjectDelete (Trade Management EA: Sell Stop Label);
    }

    //--------- MANTENER SESI??N ------------------------------------- --------------------

    static int NextModifyTime;

    if (MaintainSession == TrueTimeLocal () gt; NextModifyTime)
    {

    i = 0;
    while (IsTradeContextBusy () == True)
    {
    Dormir (100);
    i ;
    si (igt; 100)
    retorno (0);
    }

    bool IsOrderPresent = FALSE;
    para (i = 0; ilt; OrdersTotal (); i )
    {
    OrderSelect (i, SELECT_BY_POS);
    if (OrderMagicNumber () == MyMagicNumber)
    IsOrderPresent = TRUE;
    }

    if (IsOrderPresent == FALSE)
    {
    if (OrderSend (Symbol (), OP_BUYLIMIT, MarketInfo (Symbol (), MODE_MINLOT), Point, 0,0,0,0, MyMagicNumber, 0) lt; 0)
    {
    string ErrorString = ErrorDescription (GetLastError ());
    Comentario (MANTENER EL ORDEN DE SESI??N ABIERTO. RAZ??N:, ErrorString);
    Imprimir (MANTENER EL ORDEN DE LA SESI??N ABIERTO. RAZ??N:, ErrorString);
    retorno (0);
    }
    }

    para (i = 0; ilt; OrdersTotal (); i )
    {
    OrderSelect (i, SELECT_BY_POS);
    if (OrderMagicNumber () == MyMagicNumber)
    {
    if (OrderTakeProfit ()! = 0)
    precio de TP doble = 0;
    if (OrderTakeProfit () == 0)
    TPPrice = (Punto * 100000);
    int ms1 = GetTickCount ();
    if (OrderModify (OrderTicket (), OrderOpenPrice (), 0, TPPrice, 0) == Falso)
    {
    ErrorString = ErrorDescription (GetLastError ());
    Comentario (MANTENER EL ORDEN DE LA SESI??N MODIFICAR FALLAR. MOTIVO:, ErrorString);
    Imprimir (MANTENER EL ORDEN DE LA SESI??N MODIFICAR FALLADO. MOTIVO:, ErrorString);
    }
    más
    {
    if (RunInfiniteLoop == True)
    int Duración = 28;
    más
    Duración = 25;
    NextModifyTime = TimeLocal () Duration;
    int ms2 = GetTickCount ();
    int ExeTime = ms2-ms1;
    Imprimir (MANTENER EL TIEMPO DE EJECUCI??N DE LA SESI??N:, ExeTime);
    }
    }
    }
    }
    WindowRedraw ();
    if (RunInfiniteLoop == True)
    Sleep (RunIntervalMS);
    más
    descanso;
    }
    retorno (0);
    }

    bool RunClose (int TicketNumber, doble ClickedPrice, doble CloseLots, cadena MyComment)
    {
    while (IsTradeContextBusy () == True)
    {
    Comentario (CIERRE CERRAR: ESPERANDO QUE EL CONTEXTO COMERCIAL SEA QUE NO SEA OCUPADO);
    Dormir (10);
    int i; i ;
    si (igt; 500)
    {
    Comentario (EJECUTAR CIERRE: COMPROMISO DE TIEMPO DE CONTEXTO);
    PlaySound (timeout.wav);
    falso retorno);
    }
    }

    RefreshRates ();
    Comentario (EJECUTAR CIERRE: POSICI??N DE CIERRE);

    int ms1 = GetTickCount ();
    cadena ClickedTime = TimeToStr (TimeCurrent (), TIME_SECONDS);
    DoubleClick Bid = Bid;
    doble ClickedAsk = preguntar;
    OrderSelect (TicketNumber, SELECT_BY_TICKET);
    if (OrderClose (TicketNumber, CloseLots, OrderClosePrice (), 100) == TRUE)
    {
    int ms2 = GetTickCount ();

    OrderSelect (TicketNumber, SELECT_BY_TICKET);

    string CloseTimeDMY = StringSubstr (TimeToStr (OrderCloseTime (), TIME_DATE), 8,2) - StringSubstr (TimeToStr (OrderCloseTime (), TIME_DATE), 5,2) - StringSubstr (TimeToStr (OrderCloseTime (), TIME_DATE) 0,4);
    cadena CloseTimeHMS = TimeToStr (OrderCloseTime (), TIME_SECONDS);
    doble ExeTime = ms2-ms1;
    interruptor (OrderType ())
    {
    caso 0: cadena Dirección = VENDER; doble Slippage = (OrderClosePrice () - ClickedPrice)(Point * 10); break;
    caso 1: Dirección = COMPRAR; Slippage = (ClickedPrice-OrderClosePrice ())(Point * 10);
    }
    Imprimir (SLIPPAGE:, Slippage);
    Imprimir (TIEMPO DE EJECUCI??N:, ExeTime);

    int Handle = FileOpen (Registro de ejecucióna.csv, FILE_READ | FILE_WRITE);
    FileClose (Handle);
    FileDelete (Registro de ejecucióna.csv);

    string FileName = Execution Log AccountNumber () EXECUTION LOG.csv;
    Handle = FileOpen (FileName, FILE_CSV | FILE_READ | FILE_WRITE, ',');
    if (Handlegt; 0)
    {
    FileSeek (Handle, 0, SEEK_END);
    FileWrite (Handle, AccountNumber (), TicketNumber, CloseTimeDMY, CloseTimeHMS, OrderSymbol (), MyComment, Direction, OrderLots (), ClickedTime, ClickedBid, ClickedAsk, ClickedPrice, OrderClosePrice (), Slippage, ExeTime);
    FileClose (Handle);
    PlaySound (ok.wav);
    Comentario();
    }
    más
    {
    PlaySound (timeout.wav);
    string ErrorString = ErrorDescription (GetLastError ());
    Comentario (EJECUTAR CERRAR: ARCHIVO ABIERTO ERROR. MOTIVO:, ErrorString);
    Imprimir (ARCHIVO ABIERTO ERROR. MOTIVO:, ErrorString);
    }
    }
    más
    {
    PlaySound (timeout.wav);
    ErrorString = ErrorDescription (GetLastError ());
    Comentario (EJECUTAR CERRAR: EL ORDEN CERRAR FALL??. MOTIVO:, ErrorString);
    Imprimir (ORDEN CERRAR FALLADO. MOTIVO:, ErrorString);
    falso retorno);
    }
    retorno (Verdadero);
    }

    int SendBuyMarketOrder (bool HiddenPending)
    {
    if (SendMultipleOrders == 1)
    {
    static int LastBuyMarketTime;
    if (TimeLocal () - LastBuyMarketTimelt; = 2)
    retorno (0);
    LastBuyMarketTime = TimeLocal ();
    }
    si (SendMultipleOrdersgt; 1)
    ShowConfirm = True;

    Lotes = CalculateLots ();
    if (ShowConfirm == TrueHiddenPending == False)
    {
    int MessageBoxResult = MessageBox (Comprar Símbolo () DoubleToStr (Lotes, 2) lotes en el mercado? ,, 0x00000004 | 0x00000030);
    si (MessageBoxResult! = 6)
    retorno (0);
    }
    RefreshRates ();
    int TicketNumber = OrderSend (Symbol (), OP_BUY, Lots, Ask, 0,0,0);
    si (TicketNumbergt; 0)
    PlaySound (ok.wav);
    más
    {
    PlaySound (timeout.wav);
    string ErrorString = ErrorDescription (GetLastError ());
    Comentario (COMPRAR UN ORDEN DE MERCADO FALLIDO. MOTIVO:, ErrorString);
    Imprimir (COMPRAR ERROR DEL ORDEN DE MERCADO. MOTIVO:, ErrorString);
    }
    retorno (0);
    }

    int SendBuyLimitOrder ()
    {
    static int LastBuyLimitTime;
    if (TimeLocal () - LastBuyLimitTimelt; = 2)
    retorno (0);
    LastBuyLimitTime = TimeLocal ();

    para (int i = 0; ilt; 10; i )
    {
    if (ObjectFind (Trade Management EA: Límite de compra de línea i) == - 1)
    {
    int j = i;
    descanso;
    }
    }

    if (UseWingDings == False)
    {
    ObjectCreate (EA de administración de comercio: límite de compra de línea j, OBJ_HLINE, 0, TimeCurrent (), Ask- (DistancePendingOrder * Point));
    ObjectSet (Trade Management EA: Límite de compra de línea j, OBJPROP_COLOR, PendingColour);
    ObjectSet (Trade Management EA: Line Buy Limit j, OBJPROP_STYLE, LineStyleEntry);
    doble LineBuyLimitPrice = NormalizeDouble (ObjectGet (Trade Management EA: Límite de compra de línea j, OBJPROP_PRICE1), dígitos);
    ObjectCreate (Trade Management EA: Ticket No Buy Limit j, OBJ_TEXT, 0, Time [80], LineBuyLimitPrice);
    ObjectSetText (Trade Management EA: Ticket No Buy Limit j, Buy Limit, 10, Arial, PendingColour);
    }
    más
    {
    ObjectCreate (EA de administración de comercio: límite de compra de línea j, OBJ_TREND, 0, TimeCurrent (), Ask- (DistancePendingOrder * Point), Time [10], Ask- (DistancePendingOrder * Point));
    ObjectSet (Trade Management EA: Límite de compra de línea j, OBJPROP_WIDTH, OrderLineThickness);
    ObjectSet (Trade Management EA: Límite de compra de línea j, OBJPROP_COLOR, PendingColour);
    ObjectSet (Trade Management EA: límite de compra de línea j, OBJPROP_RAY, False);
    LineBuyLimitPrice = NormalizeDouble (ObjectGet (Trade Management EA: Límite de compra de línea j, OBJPROP_PRICE1), dígitos);
    //ObjectCreate (Trade Management EA: Wingding Buy Limit j, OBJ_TEXT, 0, TimeCurrent (), LineBuyLimitPrice);
    //ObjectSetText (Trade Management EA: Wingding Buy Limit j, CharToStr (Wingding), 10, WingDings, PendingColour);
    }
    double BuyLimitDistance = (Ask-LineBuyLimitPrice)(Point);
    cadena BuyLimitDistanceStr = DoubleToStr (BuyLimitDistance, 0);
    ObjectCreate (EA de administración de comercio: límite de compra a distancia j, OBJ_TEXT, 0, tiempo [10], LineBuyLimitPrice);
    ObjectSetText (Trade Management EA: Límite de compra a distancia j, BuyLimitDistanceStr, 13, Arial, PendingColour);
    retorno (0);
    }
    int SendBuyStopOrder ()
    {
    static int LastBuyStopTime;
    if (TimeLocal () - LastBuyStopTimelt; = 2)
    retorno (0);
    LastBuyStopTime = TimeLocal ();
    para (int i = 0; ilt; 10; i )
    {
    if (ObjectFind (Trade Management EA: Line Buy Stop i) == - 1)
    {
    int j = i;
    descanso;
    }
    }
    if (UseWingDings == False)
    {
    ObjectCreate (EA de administración de comercio: línea comprar Stop j, OBJ_HLINE, 0, TimeCurrent (), Ask (DistancePendingOrder * Point));
    ObjectSet (Trade Management EA: Line Buy Stop j, OBJPROP_COLOR, PendingColour);
    ObjectSet (Trade Management EA: Line Buy Stop j, OBJPROP_STYLE, LineStyleEntry);
    doble LineBuyStopPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line Buy Stop j, OBJPROP_PRICE1), dígitos);
    ObjectCreate (Trade Management EA: Ticket No Buy Stop j, OBJ_TEXT, 0, Time [80], LineBuyStopPrice);
    ObjectSetText (Trade Management EA: Ticket No Buy Stop j, Buy Stop, 10, Arial, PendingColour);
    }
    más
    {
    ObjectCreate (EA de gestión de comercio: línea comprar Stop j, OBJ_TREND, 0, TimeCurrent (), Ask (DistancePendingOrder * Point), Time [10], Ask (DistancePendingOrder * Point));
    ObjectSet (Trade Management EA: Line Buy Stop j, OBJPROP_WIDTH, OrderLineThickness);
    ObjectSet (Trade Management EA: Line Buy Stop j, OBJPROP_COLOR, PendingColour);
    ObjectSet (Trade Management EA: Línea de compra Stop j, OBJPROP_RAY, False);
    LineBuyStopPrice = NormalizeDouble (ObjectGet (Trade Management EA: Line Buy Stop j, OBJPROP_PRICE1), dígitos);
    //ObjectCreate (Trade Management EA: Wingding Buy Stop j, OBJ_TEXT, 0, TimeCurrent (), LineBuyStopPrice);
    //ObjectSetText (Trade Management EA: Wingding Buy Stop j, CharToStr (Wingding), 10, WingDings, PendingColour);
    }
    doble BuyStopDistance = (LineBuyStopPrice-Ask)(Point);
    cadena BuyStopDistanceStr = DoubleToStr (BuyStopDistance, 0);
    ObjectCreate (Gestión de comercio EA: Distancia Compra Stop j, OBJ_TEXT, 0, Tiempo [10], LineBuyStopPrice);
    ObjectSetText (Gestión de comercio EA: Distancia Comprar Stop j, BuyStopDistanceStr, 13, Arial, PendingColour);
    retorno (0);
    }

    int SendSellMarketOrder (bool HiddenPending)
    {
    if (SendMultipleOrders == 1)
    {
    static int LastSellMarketTime;
    if (TimeLocal () - LastSellMarketTimelt; = 2)
    retorno (0);
    LastSellMarketTime = TimeLocal ();
    }
    si (SendMultipleOrdersgt; 1)
    ShowConfirm = True;
    Lotes = CalculateLots ();
    if (ShowConfirm == TrueHiddenPending == False)
    {
    int MessageBoxResult = MessageBox (Sell Symbol () DoubleToStr (Lotes, 2) lotes en el mercado? ,, 0x00000004 | 0x00000030);
    si (MessageBoxResult! = 6)
    retorno (0);
    }
    RefreshRates ();
    int TicketNumber = OrderSend (Symbol (), OP_SELL, Lots, Bid, 0,0,0);
    si (TicketNumbergt; 0)
    PlaySound (ok.wav);
    más
    {
    PlaySound (timeout.wav);
    string ErrorString = ErrorDescription (GetLastError ());
    Comentario (VENDE UNA ORDEN DE MERCADO FALLIDA. MOTIVO:, ErrorString);
    Imprimir (VENDO UNA ORDEN DE MERCADO FALLIDA. MOTIVO:, ErrorString);
    }
    retorno (0);
    }
    int SendSellLimitOrder ()
    {
    static int LastSellLimitTime;
    if (TimeLocal () - LastSellLimitTimelt; = 2)
    retorno (0);
    LastSellLimitTime = TimeLocal ();
    para (int i = 0; ilt; 10; i )
    {
    if (ObjectFind (Trade Management EA: Límite de venta de líneas i) == - 1)
    {
    int j = i;
    descanso;
    }
    }
    if (UseWingDings == False)
    {
    ObjectCreate (EA de administración de comercio: límite de venta de línea j, OBJ_HLINE, 0, TimeCurrent (), Bid (DistancePendingOrder * Point));
    ObjectSet (Trade Management EA: Line Sell Limit j, OBJPROP_COLOR, PendingColour);
    ObjectSet (Trade Management EA: Line Sell Limit j, OBJPROP_STYLE, LineStyleEntry);
    doble LineSellLimitPrice = NormalizeDouble (ObjectGet (EA de administración de comercio: Límite de venta de línea j, OBJPROP_PRICE1), dígitos);
    ObjectCreate (EA de administración de comercio: Ticket No Sell Limit j, OBJ_TEXT, 0, Time [80], LineSellLimitPrice);
    ObjectSetText (Gestión de comercio EA: Ticket No Sell Limit j, Sell Limit, 10, Arial, PendingColour);
    }
    más
    {
    ObjectCreate (EA de administración de comercio: límite de venta de líneas j, OBJ_TREND, 0, TimeCurrent (), Bid (DistancePendingOrder * Point), Time [10], Bid (DistancePendingOrder * Point));
    ObjectSet (Gestión de comercio EA: Límite de venta de línea j, OBJPROP_WIDTH, OrderLineThickness);
    ObjectSet (Trade Management EA: Line Sell Limit j, OBJPROP_COLOR, PendingColour);
    ObjectSet (EA de administración de comercio: límite de venta de línea j, OBJPROP_RAY, falso);
    LineSellLimitPrice = NormalizeDouble (ObjectGet (EA de administración de comercio: Límite de venta de línea j, OBJPROP_PRICE1), dígitos);
    //ObjectCreate (Trade Management EA: Wingding Sell Limit j, OBJ_TEXT, 0, TimeCurrent (), LineSellLimitPrice);
    //ObjectSetText (Trade Management EA: Wingding Sell Limit j, CharToStr (Wingding), 10, WingDings, PendingColour);
    }
    double SellLimitDistance = (LineSellLimitPrice-Bid)(Point);
    cadena SellLimitDistanceStr = DoubleToStr (SellLimitDistance, 0);
    ObjectCreate (Gestión de comercio EA: Límite de venta a distancia j, OBJ_TEXT, 0, Tiempo [10], LineSellLimitPrice);
    ObjectSetText (Trade Management EA: Límite de venta a distancia j, SellLimitDistanceStr, 13, Arial, PendingColour);
    retorno (0);
    }

    int SendSellStopOrder ()
    {
    static int LastSellStopTime;
    if (TimeLocal () - LastSellStopTimelt; = 2)
    retorno (0);
    LastSellStopTime = TimeLocal ();
    para (int i = 0; ilt; 10; i )
    {
    if (ObjectFind (Trade Management EA: Line Sell Stop i) == - 1)
    {
    int j = i;
    descanso;
    }
    }
    if (UseWingDings == False)
    {
    ObjectCreate (EA de administración de comercio: Línea de venta Stop j, OBJ_HLINE, 0, TimeCurrent (), Bid- (DistancePendingOrder * Point));
    ObjectSet (Trade Management EA: Line Sell Stop j, OBJPROP_COLOR, PendingColour);
    ObjectSet (Trade Management EA: Line Sell Stop j, OBJPROP_STYLE, LineStyleEntry);
    doble LineSellStopPrice = NormalizeDouble (ObjectGet (Trade Management EA: Stop de venta de línea j, OBJPROP_PRICE1), dígitos);
    ObjectCreate (EA de gestión de comercio: Ticket No Sell Stop j, OBJ_TEXT, 0, Time [80], LineSellStopPrice);
    ObjectSetText (Gestión de comercio EA: Ticket No Sell Stop j, Sell Stop, 10, Arial, PendingColour);
    }
    más
    {
    ObjectCreate (EA de administración de comercio: Línea de venta Stop j, OBJ_TREND, 0, TimeCurrent (), Bid- (DistancePendingOrder * Point), Time [10], Bid- (DistancePendingOrder * Point));
    ObjectSet (Trade Management EA: Line Sell Stop j, OBJPROP_WIDTH, OrderLineThickness);
    ObjectSet (Trade Management EA: Line Sell Stop j, OBJPROP_COLOR, PendingColour);
    ObjectSet (Trade Management EA: Line Sell Stop j, OBJPROP_RAY, False);
    LineSellStopPrice = NormalizeDouble (ObjectGet (EA de administración de comercio: Line Sell Stop j, OBJPROP_PRICE1), dígitos);
    //ObjectCreate (Trade Management EA: Wingding Sell Stop j, OBJ_TEXT, 0, TimeCurrent (), LineSellStopPrice);
    //ObjectSetText (Trade Management EA: Wingding Sell Stop j, CharToStr (Wingding), 10, WingDings, PendingColour);
    }
    double SellStopDistance = (Bid-LineSellStopPrice)(Point);
    cadena SellStopDistanceStr = DoubleToStr (SellStopDistance, 0);
    ObjectCreate (EA de administración de comercio: Parada de venta a distancia j, OBJ_TEXT, 0, Tiempo [10], LineSellStopPrice);
    ObjectSetText (Trade Management EA: Stopj de venta a distancia, SellStopDistanceStr, 13, Arial, PendingColour);
    retorno (0);
    }
    int SendCloseOrder ()
    {
    static int LastCloseMarketTime;
    if (TimeLocal () - LastCloseMarketTimelt; = 2)
    retorno (0);
    LastCloseMarketTime = TimeLocal ();
    if (ShowConfirm == True)
    {
    int MessageBoxResult = MessageBox (¿Cerrar todas las operaciones Symbol () en el mercado? ,, 0x00000004 | 0x00000030);
    si (MessageBoxResult! = 6)
    retorno (0);
    }
    RefreshRates ();
    para (int i = OrdersTotal () - 1; igt; = 0; i--)
    {
    OrderSelect (i, SELECT_BY_POS);
    if (OrderSymbol () == Symbol () OrderType () lt; = 1)
    {
    if (OrderClose (OrderTicket (), OrderLots (), OrderClosePrice (), 100) == True)
    PlaySound (ok.wav);
    más
    {
    PlaySound (timeout.wav);
    string ErrorString = ErrorDescription (GetLastError ());
    Comentario (CIERRE ORDEN DE ERROR. MOTIVO:, ErrorString);
    Imprimir (CLOSE ORDER ERIL. MOTIVO:, ErrorString);
    }
    }
    }
    retorno (0);
    }
    int SetBE ()
    {
    para (int i = OrdersTotal () - 1; igt; = 0; i--)
    {
    OrderSelect (i, SELECT_BY_POS);
    if (OrderSymbol () == Symbol () OrderType () lt; = 1)
    {
    int TicketNo = OrderTicket ();
    if (OrderProfit () gt; 0)
    ObjectMove (Trade Management EA: Line SL TicketNo, 0, OrderOpenTime (), OrderOpenPrice ());
    }
    }
    }

    doble CalculateLots ()
    {
    RefreshRates ();
    LotPoint doble = MarketInfo (Symbol (), MODE_LOTSTEP);
    si (Lotes == 0)
    Lotes = (MathFloor (((AccountEquity () * RiskPercent * 0.01)((DefaultSL * MarketInfo (Symbol (), MODE_TICKVALUE)) CommissionPerLot))LotPoint)) LotPoint;
    retorno (Lotes);
    }

    Aquí están las características que hacen problemas y necesitan algunos cambios:
    1. La EA no calcula el Riesgo de la manera correcta (Por favor, inténtelo usted mismo). Y, por lo tanto, tengo que calcular el Riesgo de cada operación que me cuesta bastante tiempo (administro 20 Gráficos al mismo tiempo) .
    2. Cuando el EA va a Auto-BE después de una cantidad específica de pips, me gustaría tener una alarma cuando esto suceda.
    3. Cuando el EA va a Auto-BE después de una cantidad específica de pips, me gustaría tener la posibilidad de volver a la función TRAIL y, por lo tanto, el Auto-BE ya no es válido para este comercio. La P??RDIDA debería volver a la Detención-Pérdida original antes de que se lleve a cabo el AUTO-BE.
    4. En este momento solo puedo establecer 1 Línea de beneficio cerrado en porcentaje (digamos 50% de la operación) para 1 posición. Pero tendría la posibilidad de establecer más de 1 línea de cierre de ganancias.
    5. El EA debe trabajar en el marco de tiempo de la gráfica fuera de línea deseado = 8 H



    Me gustaría compartir el Código con todos ustedes ahora para que mis codificadores puedan estar interesados ??????en hacer los cambios como deberían para funcionar correctamente.
    Aprecio cualquier ayuda aquí.
    Adjunto es el Gerente de Comercio-EA.
    Gracias por tu atención.
    Codicia zack

    https://www.forosforex.com/attachmen...1161669919.mq4

  2.                         
    Publicidad
  3. #2
    Hola, todavía estoy tratando de encontrar un Codificador que codifique 5 Indiors por una tarifa fija. También necesito ayuda por una tarifa fija con mi Trade-Manager-EA (también es posible codificar una nueva por la misma tarifa). Por favor, póngase en contacto conmigo aquí oa través de PM. Gracias zack

  4. #3

  5. #4

    Cita Iniciado por ;
    Muchas gracias por su esfuerzo. Espero que pueda hacer algunos cambios en la EA.
    He enviado una solicitud a un programador, pero aún no he escuchado de él ... Le aviso si escucho algo ...

  6. #5
    Muchas gracias por su esfuerzo. Espero que pueda hacer algunos cambios en la EA.

  7. #6
    hola zackery 99 descargas, y apuesto a que todos tratan de darse cuenta del problema en sí, tal vez alguien ya tuvo el ajuste fino y mejoró la pareja. Permítame ser el descargador número 100, y ver si puedo hacer cambios de pareja en 'rojo'. Para ser honesto, no soy un experto con el código de EA, lo intentaré para ver si encaja.

  8. #7
    Realmente, nadie que tenga experiencia con el idioma inglés está interesado, ya que he compartido aquí mi Trade-Manager-EA pagado de forma gratuita ...

  9. #8
    Una vez más estoy interesado en pagar por ello.

  10. #9
    1 Adjunto (s) Hola, algunos de los miembros dijeron que necesitaban más información para comprender la funcionalidad de Trade-Manager-EA que se menciona arriba. De acuerdo, aquí hay más información: rooicol - Manage Orders EA se encuentra en su carpeta de expertos. Entradas: ModifySLTPActive: alterna si modificará o no las órdenes SL y TP EACloseSLActive: alternará si cerrará las operaciones por orden de mercado (True) o por orden SL (False) en el lado de la parada. EACloseTPActive - Esto alterna si cerrará las operaciones por orden de mercado (Verdadero) o por orden de TP (Falso) en el lado del límite. EAClosePartialActive - Esto alterna si cerrará o no los montos parciales de las operaciones en niveles definidos. ExceptoMagicNumber: esto es solo si desea excluirlo de la ejecución en cualquier operación específica, pero desea que se ejecute en otras distancias. Esta es la cantidad de puntos que el EA cerrará una operación antes del pedido de SL o TP si EACloseSLActive o EACloseTPActive son establecer en verdadero Para la función de cierre parcial, arrastre el objeto de gráfico Administrar pedidos: cierre de flecha parcial al precio que desea cerrar parte del intercambio, establezca la descripción del objeto al porcentaje de los lotes del pedido que desea cerrar a ese precio, el valor predeterminado es 66%. Solo puede ejecutarlo en un gráfico para cada instrumento a la vez, de lo contrario los comandos de modificación de orden entrarán en conflicto entre sí. Debe crear una nueva carpeta en su directorio de expertosarchivosRegistro de ejecución para que el experto escriba las ejecuciones para registrar el archivo. Hay algunas cosas que puedo decir de mi lado que puede ver en la ventana del Asesor de expertos: 1.Default SL : establezca SL a su gusto 2 HighLowSL: establezca SL desde el último recuento de barras de X-last HighLow: defina el último Gap de X-last HighLow: entre X-last HighLow y SL (esto es por seguridad es decir, 10 pips adicionalmente por encima del SL 5 TP Predeterminado: establezca TP a su gusto 6 CPPercent Predeterminado: Cierre la línea de beneficios parciales con x- Porcentaje del tamaño de lote 7 HardSLTPActive: verdaderofalso si (no) está dispuesto a compartir el SLTP rígido con su corredor 8 HardSLTPDistance: SL en X-pips 9 AutoBEPoints: muévase a BE después de X-pips 10 TrendlineSL: si le gusta o no operar con Trendline como Money-Manager configurado en verdaderofalso 11TrendlineSLDistance: establecer X- salta SL de Trendline 12 MaintainSession: verdaderofalso EA funciona o no (tenga en cuenta si está dispuesto a tarde con más de 1 GráficoActivo es mejor establecerlo en falso debido a la CPU 13 Mi número mágico: si está dispuesto a obtener más Gráficos del mismo Activo, puede usar diferentes números mágicos (Cambio: esto no funciona si quisiera. tener más plataformas con la misma cuenta abierta. ¡Esto es algo que me gustaría que haya cambiado aquí! ) 14 ??rdenes de Objetos: muestra todas las Alas Comerciales a un lugar en la tabla donde desea tenerlas (para hacer clic en 1 de las Alas activará una línea o una orden de mercado o lo que sea 15 ??rdenes de Parada de Objetos: muestra las Alas Comerciales para el Límite de Parada Las órdenes 16 envían órdenes múltiples: si usteddesea obtener más MarketLimit (visible con una línea de emisión)Stop (visible con una línea de Stop Limit) órdenes de mercado que solo 1 17 Distancia Orden pendiente: límiteStop-Limit - línea X-pips lejos de la actual precio 18 Lotes: si desea calcular manualmente el riesgo o comerciar sin riesgo solo con los lotes 19 Riesgo Porcentaje: calcular el riesgo automáticamente ((Cambio: Esto parece no funcionar correctamente. Por favor, haga una prueba. 20 Comisión por Lote: calcula el riesgo con su Broker-comisión (si tiene uno) 21 aquí puede configurar la distancia y el espacio para los Objetos fuera del borde de la ventana del gráfico (Por favor, intente los ajustes que necesita para usted mismo) 22 aquí puede configurar la distancia y el espacio para los Objetos lejos del borde de la ventana del gráfico (pruebe las configuraciones que necesita para usted mismo) 23 aquí puede configurar la distancia y el espacio para los Objetos desde el borde de la ventana del gráfico (pruebe las configuraciones que necesita para usted mismo) 24 aquí puede configurar Distancia y espacio para los objetos alejados de la carta-windo. w border (Por favor, intente la configuración que necesita para usted mismo) 25 aquí puede configurar la distancia y el espacio para los Objetos fuera del borde de la ventana del gráfico (Por favor, intente la configuración que necesita para usted mismo) 26 aquí puede configurar la distancia y el espacio para el Objetos alejados del borde de la ventana del gráfico (Pruebe la configuración que necesita para usted mismo) 27 Suprimir solo: si hace clic en verdadero y en uno de los WingDings, puede eliminar con su eliminación y pegar para que el WingDing funcione o le falte. muts mueve el WingDing también para que funcione. 28 ShowConfirm: muestre la confirmación en una ventana separada si realmente desea intercambiar esta configuración o no (haga clic en síno) 29-53 personalice la configuración de EA para su gusto con el tamaño del color , longitud, etc. 54 RunInfiniteLoop: si su Broker no le está recibiendo un Tick, usted puede enviar con esta característica un Tick al Broker (¡bueno con la iliquidez!) 55 RunIntervalMS: elija los Milli-Seconds que enviará un Tick a su Broker Bueno, eso es por ahora. Entonces, si tiene alguna pregunta, no dude en preguntar especialmente a todos los programadores interesados ??????que estén dispuestos a cambiar algunas de las cosas que mencioné en mi primera publicación y en ROJO, después de algunas explicaciones con esta publicación. Se adjunta una captura de pantalla del Trade_manager-EA. Saludos Zack
    https://www.forosforex.com/trading-d...48-volume.html

  11. #10
    Si algún Coder está interesado, estoy dispuesto a pagar por los cambios en el EA existente.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.