[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 17

 

Hola, la pregunta es cómo podemos saber si el objeto se ha eliminado manualmente si sólo conocemos la descripción del objeto, es decir, un objeto con un nombre desconocido, el take profit se adjunta al objeto, si el objeto se elimina el take profit, y no sabemos el nombre del objeto ....

¿Hay alguna manera de cambiar el nombre del objeto ????

 

Por favor, ayúdenme a perfeccionar el EA! Quiero que abra una orden cuando llegue la señal, cuando llegue la siguiente, y así sucesivamente, independientemente de que haya órdenes abiertas o no.

Por favor, díganme qué pasa.

 m0=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,0);
    m1=iMA(NULL,0,PeriodMA,0,MODE_SMA,PRICE_CLOSE,1);
    lwma=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,0);
    lwma1=iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,1);
    sar=iSAR(NULL,0,step,maximum,0);
    sar1=iSAR(NULL,0,step,maximum,1);
//+------------------------------------------------------------------+
   
      Lots=NormalizeDouble(AccountFreeMargin(),0)*MaxRisk/1000;
     if(Lots<0.01) 
    return(Lot);
//--------------------------------------------------------------------
    balans=NormalizeDouble(AccountFreeMargin(),2);
//--------------------------------------------------------------------
   total=OrdersTotal();
   if(OrdersTotal()>=0)
     {
   x=1;
   x++;  
//==========================Медленный==================================
   if( m1>lwma1 && m0<lwma && balans>0 && total<x)
     {
     ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Ask-tp*Point,"0",Magik,0,Red);
     }
   if(ticket>0)
     {
     Alert("Продажа №",ticket,"\n",Symbol());
     return(0);
     }
//-------------------------------------------------------------------- 
   if ( m1<lwma1 && m0>lwma && balans>0 && total<x)
    {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl*Point,Bid+tp*Point,"0",Magik,0,Blue);
     }
  if(ticket>0)
     {
      Alert("Покупка № ",ticket,"\n",Symbol());
      return(0);  
     }
//========================Быстрый=====================================
   
    if(sar1<Bid && sar>Ask && balans>0 && total<x)
      {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl1*Point,Ask-tp1*Point,"0",Magik1,0,Red); return;
      }
    if(ticket>0)
      {
      Alert("Продажа №",ticket,"\n",Symbol());
       return(0);
      }
//---------------------------------------------------------------------
  if(sar1>Ask && sar<Bid && balans>0 && total<x)
      {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-sl1*Point,Bid+tp1*Point,"0",Magik1,0,Blue);
      }
   if(ticket>0)
     {
         Alert("Покупка №",ticket,"\n",Symbol());
         return(0);
        }
       }
 

bloqueo.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }

Print(flag,flagg);

Ma_1 - corto
Ma_2 - largo

cuando Ma_1>Ma_2 emite un pitido de news.wav sin parar, e imprime 0 1 (es decir, flag=0 flagg=1)

pero ¿cómo puede ser que cuando flagg=1, la condición (Ma_1>Ma_2 && flagg==0) se cumpla y {PlaySound("news.wav") pase?

 
Hola a todos, necesito rehacer el EA para que cierre todas las posiciones después de un determinado porcentaje de la cantidad inicial de la cantidad requerida, por ejemplo, si no se abre ninguna orden, por ejemplo, la requitty de 1000 y el % de la requitty se establece en el 5%, por lo que cierra todas las posiciones con requitty 1050, hice el EA registró una variable global y que tenía este valor para contar y cerrar las posiciones, pero el EA no quiere cerrar,Lo he hecho así, el saldo aumenta y tengo que cerrar algunas posiciones al 5% del 'Equity' pero no es 1050 y a veces tengo que esperar un poco más, o el precio cambia de dirección y obtengo una pérdida en lugar de un beneficio, por favor, ¡ayuda a quien sepa y se haya enfrentado a cambios globales!¡¡!! Muchas gracias por la respuesta.
Archivos adjuntos:
 
¡Buenas noches! ¿He entendido bien que en
iStochastic
modo
¿Me refiero a la línea K o D? Además, ¿0 es K y 1 es D?
 

Y mira una variante como esta, sin variables globales.

if(Profit>AccountEquity( )*koefitsientudaleniya){  
   int Total=OrdersTotal();
    for( i=OrdersTotal()-1;i>=0;i--){
  OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  if(OrderSymbol() != Symbol()) continue; 
   if (OrderMagicNumber() != 450) continue;
   if(OrderType()==OP_SELL) {
  OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i,"  GetLastError()CloseOP_SELL ", GetLastError()  );}
   if(OrderType()==OP_BUY)  {
  OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " , i,"  GetLastError()CloseOP_BUY ", GetLastError()  );}}} и виличины, закрываем все ордера!
//----
 
 
Sí, ¡¡¡no debería haber señales antes de cambiar de maceración!!! Más o menos... Probablemente, ¡mira todo el código! No sé, parece que no se nota...
 
necesito que el asesor recuerde el valor de eQuity cuando no hay órdenes abiertas, por ejemplo 1000 y como escribí %-5 el valor de eQuity es 1050 cuando se cierran todas las posiciones, lo tengo así algunas órdenes se cierran y el saldo aumenta pero el beneficio es negativo de todas las órdenes y el asesor espera hasta que el beneficio sea + entonces cierra todas las posiciones
 
lottamer:

bloqueo.....

if(Ma_1>Ma_2 && flagg==0) {PlaySound("news.wav"); flagg=1; flag=0; }

if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1; flagg=0; }

Print(flag,flagg);

Ma_1 - corto
Ma_2 - largo

cuando Ma_1>Ma_2 emite un pitido de news.wav sin parar, e imprime 0 1 (es decir, flag=0 flagg=1)

pero ¿cómo puede ser que cuando flagg=1, la condición (Ma_1>Ma_2 && flagg==0) se cumpla y {PlaySound("news.wav") pase?


Imprime el estado de las banderas por separado para cada condición. Lo tienes así porque el estado de la segunda bandera no se tiene en cuenta en las condiciones.

P.D. Y es más conveniente imprimirPrint("flag=",flag, "flagg=",flagg) para evitar confusiones;

 

Así es como tengo el robot en la demo. No recuerdo con detalle cómo se me ocurrió escribirlo.

¡if(Profit>AccountBalance()*koefitsientudaleniya){
int Total=OrdersTotal();
for( i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() != Symbol()) continue;
if(OrderMagicNumber() != 450) continue;
if(OrderType()==OP_SELL) {
OrderClose(OrderTicket(),OrderLots(),Ask,6,Red);Print(" i " , i," GetLastError()CloseOP_SELL ", GetLastError() );}
if(OrderType()==OP_BUY) {
OrderClose(OrderTicket(),OrderLots(),Bid,6,Red);Print(" i " i," GetLastError()CloseOP_BUY ", GetLastError() );}}} Si el beneficio supera algún valor que hayamos especificado, ¡cerramos todas las órdenes!
//----

O dejarnos aconsejar por nuestros amigos mayores...