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

 

a artmedia70:

Pues bien, la orden ya está cerrada cuando se trata de esta condición.

 

a Demlin:

Bueno, puedo ver cómo desaparece de Trading.

 
demlin:

Hola a todos.

El indicador dibuja una línea, que al día siguiente se separa de las barras y cuelga a un lado. Cuando reinicio el indicador vuelve a dibujar con normalidad. ¿Qué puede ser?


El indicador está torcido. Tenemos que rehacerlo.
 
Vinin:

El indicador está torcido. Tenemos que rehacerlo.
Lo entiendo, pero ¿cuál podría ser el problema?
 
Solree:

a Demlin:

Bueno, puedo ver cómo desaparece de Trading.

¿Qué tal si se organiza una búsqueda de pedidos desde el historial? Cuando se encuentra el orden correcto se cuenta la hora de cierre
 

a delmin:

Para no hacer tal cosa, uso un billete. En realidad, podemos reescribir la lógica (al menos, podemos escribir el valor devuelto de OrderClose() en bool y luego comprobarlo). Sólo tengo curiosidad, por qué no devuelve el valor correcto para una orden cerrada y no quiero sobrecargar el programa con acciones innecesarias. Espero su ayuda :)

 
Solree:

a delmin:

Para no hacer tal cosa, uso un billete. En realidad, podemos reescribir la lógica (al menos, podemos escribir el valor devuelto de OrderClose() en bool y luego comprobarlo). Sólo tengo curiosidad, por qué no devuelve el valor correcto para una orden cerrada y no quiero sobrecargar el programa con acciones innecesarias. Espero su ayuda :)

Ya he respondido a tu pregunta: tienes que comprobar la hora de cierre de una orden por ticket justo después de su selección. Sólo para las órdenes cerradas es superior a cero. Pero en su caso, la comprobación de la hora de cierre va después del bloque de cierre de otras órdenes, y usted, respectivamente, comprueba la hora de cierre de otras órdenes. En general, se obtienen respuestas tan completas como la cantidad de código que se ha mostrado.
 
demlin:
Lo entiendo, pero ¿cuál podría ser el problema?

Tienes que mirar el código, de lo contrario sólo los telépatas pueden ayudar
 
    if (tempWho == 0 && pos != -1)
    {
        if (OrderSelect(pos, SELECT_BY_TICKET))
        {
            if (OrderType() == OP_BUY)
            {
                if (who != 1)
                {
                    while(!OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), 0))
                        Sleep(3000);
                    
                    pos = -1;
                }
            }
            else if (OrderType() == OP_SELL)
            {
                if (who != 2)
                {
                    while(!OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), 0))
                        Sleep(3000);
                    
                    pos = -1;
                }
            }
            
            Alert(OrderCloseTime());
            
            if (OrderCloseTime() != 0)
            {
                if (OrderProfit() < 0)
                {
                    if (tempCount != 0)
                    {
                        tempLot += lot;
                        tempCount--;
                    }
                    else
                    {
                        tempLot = lot;
                        tempCount = countLot;
                    }
                }
                else
                {
                    tempLot = lot;
                    tempCount = countLot;
                }
            }
        }
    }

Aquí está el código del bloque donde el verificador de la hora de cierre hace todo el trabajo.

¿No importa cuándo llamar a la función? Lo principal es tener un orden cerrado. ¿O no...?

Z.Y. Ya lo ha cambiado para que sea más rentable en términos de productividad. Pero todavía me pregunto qué estoy haciendo mal con OrderCloseTime().

 
Solree:

Aquí está el código del bloque donde el verificador de la hora de cierre hace todo el trabajo.

¿No importa cuándo llamar a la función? Lo principal es tener un orden cerrado. ¿O no...?

Z.Y. Ya lo ha cambiado para que sea más rentable en términos de productividad. Pero todavía me pregunto qué hago mal con OrderCloseTime().

Será mejor que escribas lo que quieres conseguir.