[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 219

 

Perdón por la pregunta tonta: ¿por qué el indicador no muestra valores inferiores a 0,0001?

Mientras escribía el indicador decidí comprobar uno de los componentes a través del buffer. No entiendo algo, pero parece que los números con 5 decimales después del punto no se dibujan (corregidme si me equivoco), vale, que no se dibujen, pero ¿se tendrán en cuenta en el indicador entonces?

 
ask:

Perdón por la pregunta tonta: ¿por qué el indicador no muestra valores inferiores a 0,0001?

Mientras escribía el indicador decidí comprobar uno de los componentes a través del buffer. No entiendo algo, pero parece que los números con 5 decimales después del punto no se dibujan (corregidme si me equivoco), vale, que no se dibujen, pero ¿se tendrán en cuenta en el indicador entonces?

https://docs.mql4.com/ru/convert/DoubleToStr
 
 
Shniperson:
Puedes sugerir un "Asesor Experto" o un script... que muestre en números grandes cuántos pips y pérdidas/ganancias de dinero de la operación actual (abierta) y cuál es el balance... porque no puedo encontrarlo yo mismo.

Véase aquí: https://docs.mql4.com/ru/common/Comment ¡Entérate!
 
sergeev:

ver GetTickCount... o consulte la función de Windows

Gracias por la respuesta. Pero no entiendo muy bien cómo usarlo, devuelve el tiempo desde el inicio del sistema (es decir, desde su llamada según entiendo)...

¿O debería llamarse antes del tic, y luego restar el resultado?

FileSeek(ExtHandle,0,SEEK_END);

time=GetTickCount();

FileWrite(ExtHandle, TimeToStr(TimeCurrent(), TIME_DATE | TIME_SECONDS),time - GetTickCount(),Bid, Ask, iVolume(Symbol(), NULL, 0));

 

¡Hola compañeros del foro!

Tengo problemas con esto, ¿alguien puede ayudarme? Gracias de antemano. El problema es el siguiente. Si quiero colocar una nueva orden pendiente, en mi Asesor Experto, debo especificar la condición. La condición es el tiempo de transformación de la orden pendiente en la orden de mercado, es decir, tengamos la orden SellStop, tan pronto como se convierta en una orden de mercado, debemos abrir una nueva orden SellStop a una cierta distancia, etc.

Gracias por su consideración.

P.D. Tal vez pueda aconsejarnos dónde buscar.

 
Gerkl:

¡Hola compañeros del foro!

Tengo problemas con esto, ¿alguien puede ayudarme? Gracias de antemano. El problema es el siguiente. Si quiero colocar una nueva orden pendiente, en mi Asesor Experto, debo especificar la condición. La condición es el tiempo de transformación de la orden pendiente en la orden de mercado, es decir, tengamos la orden SellStop, tan pronto como se convierta en una orden de mercado, debemos abrir una nueva orden SellStop a una cierta distancia, etc.

Gracias por su consideración.

P.D. Tal vez pueda aconsejarnos dónde buscar.

por ejemplo de esta manera:

cuando se hace un pedido se almacena en una variable global:

int ticket = 0;

ticket = OrderSend(...);

y luego comprueba si se ha abierto o no:

if (ticket > 0)
{
   if (OrderSelect(ticket, SELECT_BY_TICKET);        // выбираем ордер
      if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))     // проверяем его тип
      {
         // действия которые нужно выполнить после открытия ордера
      }
}
 
Gracias por el consejo, lo probaremos.
ilunga:

así:

Cuando se hace un pedido, se almacena el pedido en una variable global:

y luego comprobar si se ha abierto o no:

 
Gerkl:

¡Hola compañeros del foro!

Tengo problemas con esto, ¿alguien puede ayudarme? Gracias de antemano. El problema es el siguiente. Si quiero colocar una nueva orden pendiente, en mi Asesor Experto, debo especificar la condición. La condición es el tiempo de transformación de la orden pendiente en orden de mercado, es decir, supongamos que tenemos una orden SellStop, en cuanto se convierta en orden de mercado, debemos abrir una nueva orden SellStop a una determinada distancia, etc.

Gracias por su consideración.

P.D. Tal vez pueda aconsejarnos dónde buscar.


Si sólo puede tener 1 orden SellStop abierta, entonces revise todas las órdenes abiertas

while (N<=OrdersTotal())
 {
 SelectOrder(OrdersTotal()-1+N,Select by pos, mode_trades);
 if (OrderType==OP_SELLLIMIT)
  {
  M=0;//типа SELLLIMIT найден
  }else
  {
  M=1;//selllimit не найден
  }
 N++;
 }
if M==1
 {
 OrderSend(...OP_SELLLIMIT...);
 }

Así, hay un montón de errores - estoy en un apuro, espero que usted consigue el punto.

 
¿Puedes decirme cómo simular la pulsación de la tecla Inicio para cargar rápidamente los datos históricos?