Se necesita un código simple para el EA (modificar dos órdenes abiertas) - página 5

 
deVries:


¿Quiere que modifique el StopLoss para las operaciones de compra y venta con el mismo pip?

Piensa de nuevo si eso es lo que quieres y puedes averiguar por qué no se modifica de esa manera....

También no modificar las operaciones con cada nuevo punto en la dirección correcta elegir un trailingstep para permitir la modificación (xx Los puntos pueden elegir 10 o más para evitar una gran cantidad de tradecontext demasiado ocupado errores)

"!" es algo como no en la codificación

Por el momento sólo quiero que se modifique el TakeProfit en ambas operaciones, el StopLoss es el mismo en toda la operación (para las pruebas actuales de todos modos).
 

Bien, he encontrado el problema. . . La propagación se devuelve como el número de puntos . . .

Por lo tanto, cambiar estas líneas . . .

if(OrderTakeProfit() > Candle23Open - ((TakeProfitModified - 1) * Point) + Spread )      //  check if TakeProfit has already been modified
                  if(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Candle23Open - (TakeProfitModified * Point) + Spread, 0, Blue))

a esto . . .

if(OrderTakeProfit() > Candle23Open + ((Spread - TakeProfitModified + 1 ) * Point)  )      //  check if TakeProfit has already been modified
                  if(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Candle23Open + ((Spread - TakeProfitModified) * Point) , 0, Blue))
 
RaptorUK:

Bien, he encontrado el problema. . . La dispersión se devuelve como el número de puntos . . .

Entonces, cambia estas líneas . . .

a esto. . .

Eso hace que funcione, ¡gracias! Tanto las operaciones de compra como de venta se modifican ahora, sin embargo, por algunas razones se modifican algunas veces a lo largo de las operaciones y la toma de beneficios parece ir a veces más allá de lo que las entradas requieren. Esto parece ocurrir en momentos enteros como a las 2:00 o a las 7:00, no estoy muy seguro de por qué está ocurriendo esto, ¿tiene por casualidad algo que ver con el cambio del spread todo el tiempo? Esto ocurre tanto con las operaciones de compra como de venta así que me imagino que no puede ser el spread. La única forma que se me ocurre es que la vela de las 23:00 parezca cambiar aunque eso no tendría sentido y no estoy seguro de cómo podría probarlo.

 
Añade unas cuantas sentencias Print aquí y allá para mostrarte lo que hacen las variables, entonces podrás averiguar qué está fallando y arreglarlo.
 

Estoy tratando de usar esto:

Print(Open [iBarShift(NULL, 0, StrToTime("23:00") )]);

Para ver si el precio de apertura de la barra cambia pero parece estar imprimiendo tiempos al azar cada vez.

También en uno de los días me di cuenta de que las operaciones no siguen la regla de cerrar todas las operaciones a las 22:59 independientemente de lo que esté sucediendo, creo que esto ha dejado de funcionar.

Estoy usando esto

   if (TimeDayOfWeek(TimeCurrent())==5 && TimeCurrent()>=StrToTime("22:59")) { CloseAll(); return(0); }

y esto

void CloseAll()
   {
   for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
      {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if (OrderMagicNumber()!=MagicNumber) continue;
         
      //
      //
      //
      //
      //
         
      if (OrderType()==OP_BUY || OrderType()==OP_SELL)
         {
         for(int c=0; c<3; c++)
            {
            RefreshRates();
            if (OrderType()==OP_BUY)
                  { double cp = Bid;}  
            else  {        cp = Ask;}
               
            OrderClose(OrderTicket(),OrderLots(),cp,0,Yellow);
            int err=GetLastError();
            if(err==4 || err==136 || err==137 || err==138 || err==146)
               {
               Sleep(5000); continue;
               }  
               break;                     
            }
            break;

Para cerrar las operaciones a la hora especificada.

 

Se ha eliminado un mensaje en mayúsculas.

Por favor, no utilice excesivamente las mayúsculas al publicar, ya que se considera un grito y una mala educación.