[¡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 486

 
kakin:

Gracias. Yo también he estado mirando y pensando.

Víctor, ¿sabes dónde más se pueden encontrar artículos de formación sobre MKL de Roche?


Están en Alpari. Roche publicó los enlaces. Me da pereza buscar.
 
Lyuk:

Pregunta simple, no se ha encontrado respuesta.

Cómo añadir nuevos datos a un archivo de texto (¡NO en una nueva línea!, sino en la misma línea)

Por ejemplo, hay un archivo con una matriz de la siguiente forma: 382;1;-1;1;1;-1;1;1;-1;1;-1;1;-1;1;...;1;crlf

necesitas añadir esto : 383;1;-1;1;1;-1;1;-1;-1;1;1;-1;1;...;1;crlf

FileWrite() añade crlf extra, además no sé cómo cambiar el primer número.

Así que no tengo que molestarme mucho en dividir el archivo, leerlo en un array (string o parse), arreglarlo, escribirlo de nuevo.
 
Zhunko:
Así que no tienes que molestarte mucho en dividir el archivo, leerlo en un array (cadena o parse), arreglarlo, escribirlo de nuevo.
Gracias, supongo que tendré que hacer eso (sobrescribir con la limpieza), pero ¿me puedes decir cómo "diseccionar"?
 
Vinin:

Están en Alpari. Roche ha publicado enlaces. Me da pereza buscar.
DE ACUERDO. Gracias. Buscaré más. Ayer no encontré ninguna.
 
Lyuk:
Gracias, probablemente tenga que hacerlo (sobrescribir con la limpieza), pero ¿podría seguir diciéndome cómo "dividir"?

En general, estos archivos no están pensados para ser editados. Si el archivo es pequeño, es mejor reescribirlo. Los archivos más grandes deben ser procesados a través del mapeo para que sea más rápido.

Dividir el archivo mediante delimitadores de indexación. La preparación de los índices es larga, pero luego funciona rápido.

 

Estoy un poco atascado en la implementación del algoritmo de colocación de pedidos.

La esencia es que hay un billete, yo enciendo la enumeración con una condición para encontrar el billete:

for(int ot=0; ot<=OrdersTotal(); ot++)
 {
  if(OrderSelect(ot,SELECT_BY_POS)==true)
   {
     if(OrderMagicNumber()==magic)
      {
       if(УСЛОВИЕ МОДИФИКАЦИИ)
        {
         МОДИФИКАЦИЯ
        }
      }
   }
 }

Si alguna de las órdenes corresponde a un magik, la modificamos.

Tenemos otra tarea: si ninguna de las órdenes corresponde a un Magic, debemos establecer una nueva orden pendiente. if(OrderMagicNumber()!=magic) no funcionará aquí.

¿Cómo podemos aplicar esta condición sin recurrir a funciones personalizadas de terceros?

 

Quiero saber los números de ticket de las órdenes que se cerraron con stops. Quiero obtener los números de ticket de pedido que se cerraron con stop y me ha salido -1 y ya está, ¿me podéis decir qué pasa?

for(int i=0;i<historia;historia=0)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
hi_stop=OrderStopLoss();
if(Oferta<hi_stop)ticket=OrderTicket();
}
}
if(ticket_caunt!=ticket)
{
Print("___________________________________________________ticket-",ticket);
ticket_caunt=ticket;
}
 
laveosa:

Quiero saber los números de ticket de las órdenes que se cerraron con stops. Quiero obtener los números de ticket de pedido que se cerraron con stop y me ha salido -1 y ya está, ¿me podéis decir qué pasa?

for(int i=0;i<historia;historia=0)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
hi_stop=OrderStopLoss();
if(Oferta<hi_stop)ticket=OrderTicket();
}
}
if(ticket_caunt!=ticket)
{
Print("___________________________________________________ticket-",ticket);
ticket_caunt=ticket;
}
Intentar reproducir (editar para sus necesidades) f-and Kim I.V isCloseLastPosByStop - Devuelve la bandera de cierre de la última posición por parada

y NumberOfPositions - Devuelve el número de posiciones, y quizás otros se ajusten a su pregunta...

 
midorum:
iLow
cp
 
silhouette:

Estoy un poco atascado en la implementación del algoritmo de colocación de pedidos.

La esencia es que hay un billete, yo enciendo la enumeración con una condición para encontrar el billete:

Si alguna de las órdenes corresponde a un magik, la modificamos.

Tenemos otra tarea: si ninguna de las órdenes corresponde a un Magic, debemos establecer una nueva orden pendiente. if(OrderMagicNumber()!=magic) no funcionará aquí.

¿Cómo podemos aplicar esta condición sin recurrir a funciones personalizadas de terceros?

Es muy sencillo. Crear alguna variable booleana. Antes de procesar los pedidos, configúrelo como falso. En cuanto se procese el pedido, cámbialo a verdadero. Después de comprobar todos los pedidos, compruebe el valor de la variable - si sigue siendo falso, significa que no ha habido ningún pedido con la magia necesaria. Abre un nuevo pedido.