[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 459

 
Maximov7:

Aquí hay otra pregunta .... Tengo un pedido abierto como este:

OrderSend("EURUSD",OP_BUY,0.1,C1,10,Bid-0.0017-0.0017,Ask+0.0017);

cómo abrir otra orden si ésta se cierra en takeprofit????


¿leísteel libro ? (al menos por diversión)
 
Lo he releído 3 veces..... y aún así...
 
Maximov7:
He leído ..... 3 veces y aún así...


En el bucle del historial de órdenes cerradas, busque "esta" orden, luego compruebe si se cerró en TP, si es así, entonces abra una "diferente". Eso es todo.

Consulte aquí para obtener más detalles: seleccione las fi rmas que necesita, conéctelas a su software y ya está.

 
¡Muchas gracias!
 
Maximov7:
¡Muchas gracias!

Disfrútalo.
 

¡Buenas noches!

Por favor, eche un vistazo al código:

for(i=1;i<=OrdersTotal();i++) // recuperar los pedidos para el arrastre

{

if(OrderSelect(i-1,SELECT_BY_POS)==true)

{

if (OrderSymbol()!=Instr)

continuar;

if(OrderType()==0)

{

si ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

if(OrderType()==1)

{

si ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

volver(55);

}

}

No entiendo cuál es el problema, estoy probando con una Alerta dentro, no funciona en ningún otro sitio después de Instr

 
demlin:

¡Buenas noches!

Por favor, eche un vistazo al código:

for(i=1;i<=OrdersTotal();i++) // recuperar los pedidos para el arrastre

{

if (OrderSelect(i-1,SELECT_BY_POS)==true)

{

if (OrderSymbol()!=Instr)

continuar;

if(OrderType()==0)

{

si ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

if(OrderType()==1)

{

si ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

volver(55);

}

}

No entiendo cuál es el problema, estoy probando con una Alerta dentro, no funciona en ningún otro sitio después de Instr


¿Hay una línea como ésta sobre el código?
string Instr;
Inserte el código correctamente - a través de SRC en el editor... :-)))
 
Roman.:

¿Hay una línea como ésta sobre el código? Inserte el código correctamente - a través de SRC en el editor... :-)))
Sí Instr es, lo siento no sé lo que es SRC
 
demlin:
Sí Instr es, lo siento no sé lo que es SRC

Cuando pegues el código en tu post presiona CTRL+ALT+M - luego pon el código allí (a través del buffer CTRL+C - copiar, CTRL+V - pegar), luego presiona el botón "pegar" en la parte inferior de la ventana.
 
demlin:

¡Buenas noches!

Por favor, eche un vistazo al código:

for(i=1;i<=OrdersTotal();i++) // recuperar los pedidos para el arrastre

{

if (OrderSelect(i-1,SELECT_BY_POS)==true)

{

if (OrderSymbol()!=Instr)

continuar;

if(OrderType()==0)

{

si ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

if(OrderType()==1)

{

si ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

volver(55);

}

}

No entiendo cuál es el problema, estoy probando con una Alerta dentro, no funciona en ningún otro sitio después de Instr


Prueba esta opción - así es como tengo organizado un diseño similar.


// ------------------------------------------------Ищем наш ордер---------------------------------

int orderType;
   for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
   {
      if (!OrderSelect(orderIndex, SELECT_BY_POS))
      {
         continue;
      }

      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }

      orderType = OrderType();
      if ((orderType != OP_BUY) && (orderType != OP_SELL))
      {
         continue;
      }
          ticket = OrderTicket( );                         // Номер ордера
          orderLots = OrderLots();                         // Lots   
          orderProfit = OrderProfit() + OrderSwap();       // Profit
          Price = OrderOpenPrice();                        // Цена открытия рыночного ордера
          SL =  OrderStopLoss();                           // Значение StopLoss ордера
          TP = OrderTakeProfit();                          // Значение TakeProfit ордера
          
             if (ticket>0)                                               // Если позиция открылась
                    {
                             while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                                 {
                                   Sleep(100);
                                 }
                                  double OpenPrice=OrderOpenPrice();
                                      
                                  
                    
                                if (orderType == OP_BUY) 
                                     {
                                       //здесь трал покупки
                                     }
            
                                if (orderType == OP_SELL) 
                                      {
                                        //здесь трал продажи
                                      }   
                            
                    }
        
   }