[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 529

 
Eliminadas las barras, añadidas las órdenes pendientes en incrementos X desde el precio, lo único que queda es abrir las órdenes cerradas inmediatamente de forma individual en lugar de esperar a que se cierren las 4 órdenes y el cálculo del lote en función del % de capital, ayúdame a solucionar estos 2 matices
Esto es lo que parece ahora:

//+------------------------------------------------------------------+
//| mo_bidir.mq4
//| Funciona mejor en el marco temporal de 5M |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010 - Monu Ogbe"

#define MAGIC 1234
#define IDENT "mo_bidir"

lotes dobles externos = 1;
extern double stop_loss = 76; //
extern double toma_ganancias = 750; //
extern int steps = 5; // Paso de orden pendiente

int inicio(){

if (OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lotes,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots,Bid, 3, Bid + take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
OrderSend(Symbol(), OP_BUYSTOP, 0.5*lotes,Ask+pasos*Punto, 3, Ask - stop_loss * Punto, Bid + take_profit * Punto, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELLSTOP, 0.5*lotes,Bid-steps*Point, 3, Bid + take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
}
return(0);
}
Archivos adjuntos:
 
belck:
Buscando un código Breakeven en la historia. puede tener. compartir.
Tengo un código Breakeven, pero funciona sobre la base de las órdenes abiertas.
Tengo un EA que cierra la pérdida de decisiones en la señal opuesta, y se abre en una señal. y ahora es necesario tener este código Breakeven para recordar cuánto en el déficit y pasó la información, por lo que el segundo, etc. órdenes ya han visto en el gráfico de la línea de beneficio cero, teniendo en cuenta las pérdidas anteriores. El Asesor Experto no tiene un stop loss, lo que significa que una operación perdedora no será cerrada por un stop loss.


Cada vez que lo mueva al precio requerido (breakeven con un cierre), y no lo borre (la línea) cuando cierre una orden y vea el precio antiguo en la siguiente orden
 
belck:
Buscando un código de equilibrio de la historia. tal vez alguien tiene uno. por favor comparta.
Tengo un código Breakeven, pero está basado en órdenes abiertas.
Tengo una buena orden de trabajo cuando hay una pérdida en una orden y debe abrirse cuando la orden alcanza el punto de equilibrio. Las órdenes ya han visto la línea cero de la línea de beneficios en el gráfico teniendo en cuenta las pérdidas anteriores. El Asesor Experto no tiene un stop loss, lo que significa que una operación perdedora no será cerrada por un stop loss.

Si he entendido bien, parte de su pregunta es la contabilización de las pérdidas totales en operaciones perdedoras consecutivas de su EA para su posterior comparación con el nivel de beneficios en las órdenes de mercado actuales para establecer la línea de equilibrio?
 
FAQ:

Cada vez que la mueves al precio requerido (breakeven al cierre), y no la borras (la línea) cuando cierras la orden y ves el precio antiguo en la siguiente orden

esto no es fácil.

No puedo aplicarlo yo mismo.

Quiero que la línea aparezca en las operaciones perdedoras para poder cerrar cuando se alcance.

Es decir, necesito una línea que se dibuje sólo cuando haya órdenes perdedoras, pero esta línea se dibujará en función del lote de una operación abierta y del historial de operaciones perdedoras anteriores.
 
Roman.:
Si he entendido bien, la parte de su pregunta es tener en cuenta la pérdida total de las sucesivas operaciones perdedoras de su EA y compararla con el nivel de beneficios de las órdenes de mercado actuales para establecer la línea de equilibrio?

No tengo líneas de stop, es decir, ni stop loss ni take profit.

Quiero ver la línea de precios, donde tengo que ir a cerrar la operación de tal manera que las órdenes cerradas anteriores se superponen.

Necesito un bloque detrás del bloque de inicio que cuente y transfiera información al bloque de inicio, y utilizaré esta información para cerrar la operación cuando alcance esta línea de precio.

 
Necesitas una variable global, hazla un Terminal global, o un objeto gráfico - entonces sólo será visible en este gráfico, escríbelo en un archivo si es necesario, o en el registro, o en la memoria directamente. Hay muchas opciones.
 
FAQ:
Necesitas una variable global, hazla un Terminal global, o un objeto gráfico - entonces sólo será visible en este gráfico, escríbelo en un archivo si es necesario, o en el registro, o en la memoria directamente. Hay muchas variantes.
¿es esta su respuesta para mí?
 
belck: Pero no puedo escribir el bloque de equilibrio por la historia misma.

Aquí está mi sección de código - responsable de la contabilidad de la pérdida total de las sucesivas operaciones perdedoras de este particular EA (según el mago). Lo hice para mi variante de red Avalanche - puedes editarlo a tus necesidades - el código está comentado...

Variables globales

double Current_Loss, Sum_Loss;     // текущий и суммарный убыток
int start()    // -----------------------СТАРТ ЭКСПЕРТА---------------
{

//---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  Iteration = 0; // зануляем инерации перед их учетом в цикле по истории
  Sum_Loss = 0;  // суммарный убыток по этим итерациям

datetime 
Time_at_History_Current = 0,
Time_at_History_Previos = 0;     
 
 if(OrdersHistoryTotal() != 0)
   {
    for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--)
      {
       OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY);
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
          if(OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
             if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера
                                   // для последующего его анализа при подсчете количества итераций
                {
                 double lastLoss = OrderProfit();
                 Sum_Loss=Sum_Loss+lastLoss;  // считаем общий убыток по закрытым подряд убыточным ордерам
                 Time_at_History_Current = OrderCloseTime();
                } 
             
             //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));
             //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
             
             if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
               {
                Time_at_History_Previos = Time_at_History_Current ;
                Iteration++;
                //Print("Iteration at History в условии сравнения  = ",  Iteration);
               }   
             else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
               {
                if(OrderProfit() >= 0)
                  break;
               }
            }
         }
      }
   }
 //Print("Iteration at History = ",  Iteration, " Time_at_History_Current = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS),
 //      " Time_at_History_Previos = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
...
...
}// конец старт   

Después de esta sección de código, también se hace un bucle a través de las órdenes abiertas de este mismo EA y se calcula su beneficio total. Luego se compara este valor con la variable

Sum_Loss

y tomar una decisión.

 
belck:
Buscando un código de equilibrio de la historia. tal vez alguien tiene uno. por favor comparta.
Tengo un código Breakeven, pero está basado en órdenes abiertas.
Tengo una buena orden de trabajo cuando hay una pérdida en una orden y debe abrirse cuando la orden alcanza el punto de equilibrio. Las órdenes ya han visto la línea cero de la línea de beneficios en el gráfico teniendo en cuenta las pérdidas anteriores. El Asesor Experto no tiene un stop loss, lo que significa que una operación perdedora no será cerrada por un stop loss.

Calcule el beneficio total de todas las operaciones cerradas y guárdelo en una variable, por ejemplo, TotalCloseProfit. Y a continuación, utilice el siguiente fragmento de código, sin ningún tipo de gráficos ni otros artificios:

if (TotalCloseProfit) < 0.0) { // Имеем убыток по закрытым позам
  if ((AccountEquity() + TotalCloseProfit) >= AccountBalance()) { // Достигли безубытка
    // Здесь какой-то код, который необходимо выполнить при достижении безубытка
  }
}
 
utyff:


He echado un vistazo al registro.

Esa parece ser la razón, pero no sé qué significa. ¿Alguien puede explicarlo? ¿Y cómo solucionarlo?

No es un error. Los errores en el registro se marcan con iconos rojos, no amarillos.
Razón de la queja: