[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 624

 

¿Hay alguna manera de modificar el stop loss, pero dejar el take profit en una línea (no lo mencione, es decir, tiene que permanecer la forma en que se estableció antes por otras funciones)

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE);

 
rigonich:


Si el probador hubiera contado tantos pedidos como el servidor, los datos también serían de varios dígitos.

El probador, al igual que el servidor, asigna a cada nueva orden un número de orden único (ticket), pero el servidor lo hace desde el momento en que se creó la casa de bolsa, para todos sus clientes y para todos los instrumentos.


Lo tengo, gracias :)))
 
rigonich:
Probablemente tenga "permitir que el EA opere" en la configuración del terminal.


No ayuda
 
i999i:

No ayuda

Lo siento - toda la clase .......gracias
 
lottamer:

¿Hay alguna manera de modificar el stop loss, pero dejar el take profit en una línea (no lo mencione, es decir, tiene que permanecer la forma en que se estableció antes por otras funciones)

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE);

OrderModify(OrderTicket(),OrderLots( ),stop_loss,OrderTakeProfit( ), 0,CLR_NONE);

Para, así que tu lote es 0.

 
Esta orden también debe ser seleccionada previamente por OrderSelect. Ya he pasado por eso, de lo contrario el billete puede convertirse en lo que tú quieras.
 
Dimka-novitsek:
Esta orden también debe ser seleccionada previamente por OrderSelect. De lo contrario, el billete puede convertirse en cualquier cosa.

Sí, la entrada será la que usted indique, pero los valoresOrderLots( ) yOrderTakeProfit( ), puede devolverlos para cualquier orden.
 

¡Buenos días!

Categóricamente no puedo entenderlo - las condiciones para el trailing stop no funcionan.

//***************************************   
 
 bool nahodka=false;
  
 if (OrderSelect(tacket, SELECT_BY_TICKET , MODE_HISTORY)) 
 if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true;     // Находим ордер, сработавший именно по тейкпрофиту 
   
 if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )<Bid-treylingstop*Point ){ Print ("втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 if (BUY == 0) {perenos=false;srabotka=false;nahodka=false;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
               
               //SELL

Así, el pedido se retira inmediatamente cuando aún no está en el historial, ¡lo que no entiendo en absoluto!

//***************************************   
 
  nahodka=false;
 
 for (i=0; i<=OrdersHistoryTotal(); i++) {
 if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
 if (OrderSymbol()!=Symbol())continue; 
 if (OrderMagicNumber() != 450) continue; 
 if (tocket==OrderTicket()) 
 if (OrderTakeProfit( )-3*Point<profitsell&&OrderTakeProfit( )+3*Point>profitsell) nahodka=true;}
     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if(nahodka){if (OrderSelect(tecket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )>Bid+treylingstop*Point ){ Print ("четвёртаямодифи    " );
 OrderModify(  tecket, OrderOpenPrice(), Bid+treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 for ( i = OrdersTotal() - 1; i >= 0; i--)

¡Y esta es la situación es mejor! Si tenemos este truco, al menos se corrige la orden cuando ya está en el historial.

Pero una de cada cinco o diez veces la nahodka no toma el valorverdadero, ¡y no se producen más modificaciones!

 
¡¡Sí, claro!!
 

Así es como no se modifica bye - y es una condición zircal, y tampoco funciona todo el tiempo.

Este es el lugar.

//***************************************   
 
 bool nahodka=false;
 
 for (i=0; i<=OrdersHistoryTotal(); i++) {
 if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
 if (OrderSymbol()!=Symbol())continue; 
 if (OrderMagicNumber() != 450) continue; Print (" tacket ",tacket, "  OrderTicket() ",OrderTicket(),"    profit " , profit, "    OrderTakeProfit( ) ",OrderTakeProfit( ) );
 if (tacket==OrderTicket()) {Print ("tacket==OrderTicket()    " );
 if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true;}}     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )<Bid-treylingstop*Point ){ Print ("втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 if (BUY == 0) {perenos=false;srabotka=false;nahodka=false;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
               
               //SELL
Razón de la queja: