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

 
artmedia70:
:) La impaciencia se suele entrenar en otra oficina... :)


No necesitas entrenar mi paciencia para eso. Soy muy paciente.

Lo siento. Es que tengo una gran carga de trabajo y no quiero perder el tiempo en absoluto.

Y lo siento aún más, porque el autor del tema probablemente no lo sepa. Probablemente un escolar.

 
Vinin:


No hay necesidad de entrenar mi paciencia para eso. Soy muy paciente.

Lo siento. Es que tengo una gran carga de trabajo y no quiero perder el tiempo en absoluto.

Y lo siento aún más, porque el autor del tema probablemente no lo sepa. Probablemente un escolar.

Creo que mucha gente se da cuenta de que ser moderador es ingrato en muchos sentidos. Haces algo, lo intentas, mantienes el orden, pero la lista de insatisfechos no se reduce. La gente...
Lo siento por lo de los offtops.
ZS. Mi hija es escolar y entiende mucho... :)
 
FoxUA:

Sigue abriendo esta orden en un lote.
Así es como establezco las variables en mi Asesor Experto.
y aquí está la apertura de la orden

Es difícil no estar de acuerdo con artmedia70 sobre la disposición de su código. Es muy difícil de leer, hay que mirarlo durante mucho tiempo para entender algo, y luego hay que poner paréntesis, espacios y sangrías correctamente. Por favor, cuida tu estilo y evita el caos a la hora de escribir el código, aunque esté compuesto por diferentes bloques, diferentes autores. Debes llevarlo en un solo, tu propio estilo, así será más fácil trabajar con él en el futuro y modernizarlo.

//+------------------------------------------------------------------+
extern int TakeProfit=18;
extern int StopLoss=18;
extern double Lot=1;
extern int StartTime=0;
//+------------------------------------------------------------------+
int Today=0;
int h=10;
int h1=26;
int mag=777;
bool b=0,s=0, //соответственно бай или селл  
bs=0,// если закрытие по стоплоссу ордера бай
ss=0,// если закрытие по стоплоссу ордера sell
bt=0,
st=0;//      то же по ТП
double bl=0,sl=0; // лоты соответсвенно для бай и селл

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){

   if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
   if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
   int total = OrdersTotal();
   
   if(total == 0){
      NewOrder1(OP_BUY,Lot);
      NewOrder1(OP_SELL,Lot);
      NewOrder1(OP_BUYLIMIT,Lot);
      NewOrder1(OP_SELLLIMIT,Lot);
      NewOrder1(OP_BUYSTOP,Lot);
      NewOrder1(OP_SELLSTOP,Lot);
      Today=TimeDay(TimeCurrent());
   }
   
   for(int cnt=OrdersHistoryTotal();cnt>0;cnt--){
      OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
      if(OrderMagicNumber()== mag && OrderSymbol()==Symbol()){
         if(OrderType() == OP_BUY ){
            b=1;
            if(OrderClosePrice()==OrderTakeProfit())bt=1;
            if(OrderClosePrice()==OrderStopLoss())bs=1;
            bl=OrderLots()*100;
            break;
         }
         if(OrderType() == OP_SELL){
            s=1;
            if(OrderClosePrice()==OrderTakeProfit())st=1; 
            if(OrderClosePrice()==OrderStopLoss())ss=1;
            sl=OrderLots()*100;
            break;
         }
      }
   }

   if(bs==1||bl==1){   
      NewOrder1(OP_BUYLIMIT,Lot);
      Today=TimeDay(TimeCurrent());
   }
}    
//+------------------------------------------------------------------+
//| NewOrder1 function                                               |
//+------------------------------------------------------------------+
int NewOrder1(int Cmd,double Lot){
   double TP=0; //тейкпрофит
   double SL=0; //стоплосс
   double PR=0; //Цена
   double LT=0; //Лот
   int tic1;
   
   while(!IsTradeAllowed()) Sleep(100);
   
   if(Cmd==OP_BUYLIMIT){
      PR=Ask-Point*h;
      if(TakeProfit>0)TP=PR+TakeProfit*Point;
      if(StopLoss>0)SL=PR-StopLoss*Point;
      if(Lot>0)LT=3*Lot;
      
       tic1 = OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);   
   }
   
   if(tic1<0)Print(GetLastError());

   if(tic1>0){
      b=0;s=0; //соответственно бай или селл  
      bs=0;// если закрытие по стоплоссу ордера бай
      ss=0;// если закрытие по стоплоссу ордера sell
      bt=0;
      st=0;//      то же по ТП
      bl=0;sl=0; // лоты соответсвенно для бай и селл
   }
   
   return(tic1);
}
//+------------------------------------------------------------------+

Lo he probado en el probador, parece que sólo abre una orden pendiente (BUYLIMIT), pero realmente no sé qué más debería hacer y en qué circunstancias.

 
ToLik_SRGV:

Es difícil no estar de acuerdo con artmedia70 sobre la disposición de su código. Es muy difícil de leer, hay que mirarlo durante mucho tiempo para entender algo, y luego hay que poner paréntesis, espacios, sangrías correctamente. Por favor, cuida tu estilo y evita el caos a la hora de escribir el código, aunque esté compuesto por diferentes bloques, de diferentes autores. Hazlo único, tu propio estilo, para que en el futuro te sea más fácil trabajar con él y modernizarlo.

Lo he probado en el tester, parece que sólo abre una orden pendiente (BUYLIMIT), pero realmente no sé qué más debería hacer y en qué circunstancias.

¡Anatoly! ¡Bravo! Empezaba a pensar que tendría que abandonar todo y empezar a limpiar. Incluso un simple vistazo a la apariencia del código da que pensar... ...y lo más importante, no cansa la vista ni la repele. ¡Respeto!
 

¿Cómo puedo calcular la cantidad de operaciones perdedoras recientes?

Gracias...

 
itum:

¿Cómo puedo calcular el importe de las últimas operaciones perdedoras?

Gracias...

¿Cuántas recientes? ... exactamente en gramos... :)

Haz un bucle sobre las órdenes cerradas del terminal, comprueba el beneficio de la orden y, si es negativo, aumenta el contador del número de órdenes perdedoras cerradas, o, si necesitas la cantidad en dinero, no el número de órdenes perdedoras, entonces suma su beneficio (que es negativo) al último valor de la variable double, en la que has almacenado la cantidad de lotes en dinero...

 
artmedia70:

Debe ser realmente necesario... :) O mi ratón está atascado...

Carpeta de ubicación de MT4/logs

Carpeta de ubicación de MT4\tester\logs

Lo tengo aquí:

D:\NArchivos de programa\NMetaTrader - E-Global TFG account-1654729\\Nlogs

D:\NArchivos de Programa\NMetaTrader - E-Global TFG account-1654729\\Ntester\Nlogs


Muchas gracias por la respuesta, y disculpas por los muchos post del mismo tipo, quería hacer la limpieza yo mismo pero hoy me ha pillado el mercado. Gracias de nuevo a todos.
 
LAIT123:
Muchas gracias por la respuesta, y disculpas por los muchos posts del mismo tipo, quería hacer la limpieza yo mismo pero hoy me ha pillado el mercado. Gracias de nuevo a todos.
Tendrás que ir a Víctor para inclinarte... :) Es una broma... Lo entiende todo...
 
Hola a todos. Estimados artmedia70, drknn, Abzasc, anteayer siguiendo vuestros consejos solté el archivo de fuentes Wingdings que faltaba en la carpeta de Windows y en el terminal Fractals apareció normalmente. Muchas gracias a todos vosotros. Saludos Furkat.
 
trader265:
Hola a todos. Estimados artmedia70, drknn, Abzasc, anteayer siguiendo vuestros consejos solté el archivo de fuentes Wingdings que faltaba en la carpeta de Windows y en el terminal Fractals apareció con normalidad. Muchas gracias a todos vosotros. Saludos Furkat.
De nada. No era tan difícil de adivinar, y luego es una cuestión de técnica... :)