Hola todos. He trabajado (buscando en el foro) en las últimas semanas y logré reunir un EA que ya no compila errores, pero la estructura es incorrecta y no se está ejecutando en los momentos correctos. Esperaba que algún alma amable pudiera echar un vistazo y ayudarme a reestructurar mi EA y tal vez dar una explicación de las modificaciones. Gracias de antemano por cualquier ayuda, la pasaré como entiendo.

Esto es lo que intento lograr con mi EA:

Tengo estas entradas externas:
Lotes = 0.03;
Target_In_Dollars = 5; Este es realmente el objetivo con el que disparo por el par con todas las órdenes disponibles (máximo 3) que informa a la parada final para patear
Trailing_Stop = 50;
Max_Orders = 3;
Closed_Bars = 0;
Distance_Back = 24;
ADX = 75; La operación no se abrirá si 8period ADX está por encima de 75
extern int Magic = 717171;
Esto es lo que se supone que debe suceder ... Cuando un pub cierra el EA, revisa 24 pubs para ver la señal, cuando es un movimiento (la señal se cumple y ADX lt; 75 y no excede las órdenes máximas por) abre el orden de .03 lotes al precio de venta (no SL o TP en el momento del pedido). Cuando el precio total de todas las órdenes abiertas en esta tabla con el mismo número mágico (717171) sume $ 5 o más, se supone que debe modificar todas las órdenes disponibles en esta tabla con ese número mágico con todas las paradas finales.

Si bien no hay errores, el EA no funciona como se explicó. Estoy convencido de que se basa en la estructura y los paréntesis, etc.

Gracias de antemano por tomarse el tiempo para mantener mi mano esta vez. Aquí está el código:
Código insertado/ --------------------------------------------- --------------------- /| DoppkeEA.mq4 |/ ----------------------------------------------- ------------------- extern double Lots = 0.03; doble externo Target_In_Dollars = 5; extern int Trailing_Stop = 50; extern int Max_Orders = 3; extern int Closed_Bars = 0; extern int Distance_Back = 24; extern int ADX = 75; extern int Magic = 9348670; int begin () int EAOrdersTotal = 0; int mTotal = OrdersTotal (); for (int I = mTotal-1; igt; = 0; I--) OrderSelect (I, SELECT_BY_POS, MODE_TRADES); should (OrderMagicNumber () == Magic OrderSymbol () == Símbolo ()) EAOrdersTotal ; if (OrderProfit () gt; = Target_In_Dollars) OrderSelect (I, SELECT_BY_POS, MODE_TRADES); RefreshRates (); if (OrderType () == OP_BUY OP_SELL OrderMagicNumber () == Magic OrderSymbol () == Símbolo ()) if (OrderStopLoss () == 0) OrderModify (OrderTicket (), OrderOpenPrice (), NormalizeDouble (Bid-Point * Trailing_Stop) , Dígitos), OrderTakeProfit (), 0, azul);/OrderClose (OrderTicket (), OrderLots (), Bid, 3, Blue); doble sig = Más bajo (NULL, 0, MODE_LOW, Distance_Back, 0); should (EAOrdersTotal lt; Max_Orders) if (iADX (NULL, 0, 8, PRICE_CLOSE, MODE_MAIN, 0) lt; ADX) if (Closed_Bars! = Bars sig == 1) RefreshRates (); OrderSend (Symbol (), OP_BUY, Lots, Ask, 3,0,0, DoppkeEA, Magic, 0, Blue); cadena AN = ArrBuy TimeToStr (CurTime ()); ObjectCreate (AN, OBJ_ARROW, 0, TimeNumber 91; 1 # 93;, Low # 91; 1 # 93; -6 * Point, 0,0,0,0); ObjectSet (AN, OBJPROP_ARROWCODE, 233); ObjectSet (AN, OBJPROP_COLOR, azul); sig = Más alto (NULL, 0, MODE_HIGH, Distance_Back, 0); should (EAOrdersTotal lt; Max_Orders) if (iADX (NULL, 0, 8, PRICE_CLOSE, MODE_MAIN, 0) lt; ADX) if (Closed_Bars! = Bars sig == 1) RefreshRates (); OrderSend (Symbol (), OP_SELL, Lots, Bid, 3,0,0, DoppkeEA, Magic, 0, Magenta); AN = ArrSell TimeToStr (CurTime ()); ObjectCreate (AN, OBJ_ARROW, 0, TimeNumber 91; 1 # 93;, Top # 91; 1 # 93; 6 * Point, 0,0,0,0); ObjectSet (AN, OBJPROP_ARROWCODE, 234); ObjectSet (AN, OBJPROP_COLOR, Magenta); Closed_Bars = Bars; return (0);