Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 28

 
Vinin:

Pruebe a utilizarDoubleToStr


Muchas gracias.

Entiendo que la terminal cuenta los valores exactos y sólo me muestra los valores "truncados", ¿no? Y para ver los valores exactos hay que hacerDoubleToStr?

 
lottamer:


Muchas gracias.

Entiendo que el terminal cuenta los valores exactos y sólo me muestra los "truncados", ¿no? Y para ver los valores exactos tengo que hacerDoubleToStr?


 
ayúdame con esta parte del código (falta goto)
comprueba si hay una orden abierta o pendiente en nnn si no, coloca una orden stoploss
 
sdm:
Ayúdame con esta parte del código (falta goto)
Necesito comprobar si hay una orden abierta o pendiente al precio nnn y si no colocar una orden stoploss.

Entonces, ¿cómo te ayudaría el goto?

Utilice OrdersTotal() para obtener el número de órdenes abiertas y pendientes.

En consecuencia, si hay alguna, entonces se hace un rebasamiento y se compara el precio de apertura de cada orden con su nnn.

Si no hay órdenes, entonces usted fija las suyas.

¿Dónde está el goto que falta aquí?

 
PapaYozh:

Entonces, ¿cómo te ayudaría el goto?

Utilice OrdersTotal() para obtener el número de órdenes abiertas y pendientes.

En consecuencia, si hay alguna, entonces se hace un rebasamiento y se compara el precio de apertura de cada orden con su nnn.

Si no hay órdenes, entonces usted fija las suyas.

¿Dónde está el goto que falta aquí?


1 No necesito todas las órdenes, sino sólo la de venta y la de sellstop // corrección

Sigo sin entender cómo salir del bucle y colocar la orden (todo el tiempo intento colocar la orden sin pasar por el bucle) o cómo volver a entrar en el bucle.

 
sdm:


1 No necesito todas las órdenes, sino sólo vender y sellstop

2 No entiendo cómo salir del bucle para comprar (todo el tiempo pongo órdenes sin pasar por todo el bucle) o volver al bucle

1. ¿Quién o qué le impide analizar el tipo de pedido?

Crear una variable de bandera, inicializarla, comprobar el orden y, si es necesario, cambiar el valor de la variable de bandera. Después del bucle, en función del valor de la bandera, se realiza el pedido.

¿Está claro?

 
PapaYozh:

¿Está claro?


Lo tengo, gracias.
 
sdm:

Lo he intentado ahora con los signos de puntuación y no me salen las cuentas :-)

Print("Órdenes por ",Koob,", Órdenes de venta = ",Koos);

oo=0; // marcar si el pedido existe

si (Koos <= Koob) // ¡si está abierto!La orden de venta es menor o igual a la cantidad de órdenes abiertas por

for (i=0; i<k; i++)

{if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{if (OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) // entonces si hay una orden de venta abierta o pendiente

{ si (PraiceSs = OrderOpenPrice()) { oo=1; } //con los PraiceSs establecidos en oo

}

}

}

if (oo=0) {OrderSend(Symbol(),OP_SELLSTOP,v,PraiceSs, ,Sl,Tp, ,mn,0,Green);} //poner sellstop

dice la línea " if ( PraiceSs= OrderOpenPrice()) { oo=1; } " - '=' - asignación ilegal utilizada

ps PraiceSs -double, oo -int

En primer lugar, es una operación de comparación de igualdad '=='.

En segundo lugar, las variables de tipo double no pueden compararse en igualdad, sino que deben compararse en proximidad: MathAbs( PraiceSs - OrderOpenPrice() ) <= PrecioDelta

 
PapaYozh:

En primer lugar, la operación de comparación para la igualdad es "==".

En segundo lugar, las variables de tipo doble no pueden compararse en igualdad, deben compararse en proximidad: MathAbs( PraiceSs - OrderOpenPrice() ) <=


¿Qué es elPriceDelta entonces? ninguna orden puede estar más cerca de 30 pips

¿y por qué no se pueden comparar?

 
sdm:


¿quéprecioDelta debemos establecer? ninguna orden más cercana a 30 pips

¿Y por qué no se pueden igualar?

PrecioDelta = Punto * 30;

Comparación de números reales