1. Hay algunas órdenes de compra abiertas y una orden de compra pendiente. todas las órdenes están en el mismo par de divisas. ¿cómo un EA seleccionará sólo la última orden abierta para comprobar sus límites de parada?
2. cada orden abierta fue colocada a diferentes precios con tp 20. ¿es posible que el EA modifique todas las órdenes abiertas excepto la última, y cambie sus límites de parada a los límites de parada de la última orden abierta?
EJEMPLO:
Sr type price tp
1 buy 1.239501.23750
------------------------------
# buylimit 1.237501.23550//////////////////////////////1 buy 1.239501.23550// tp modified and now equal to 2nd tp2 buy 1.237501.23550// 2nd tp
------------------------------
# buylimit 1.235501.23350//////////////////////////////1 buy 1.239501.23350// tp modified and now equal to 3rd tp2 buy 1.237501.23350// tp modified and now equal to 3rd tp3 buy 1.235501.23350// 3rd tp
------------------------------
# buylimit 1.233501.23150
Ahora el nuevo editor acepta ambos, pero... ¿cuál funcionará igual que la línea resaltada? si ambos son verdaderos, entonces ¿cuál debo usar? (¿es más conveniente?)
PD: El código de abajo también es aceptado por el nuevo editor...
if((SignalS & AAA) !=0)
El nuevo editor acepta los tres, pero... ¿cuál funcionará igual que la línea resaltada? si todos son verdaderos, entonces ¿cuál será más conveniente para mí?
qgmql: El nuevo editor acepta las tres, pero... ¿cuál funcionará igual que la línea resaltada? si todas son verdaderas, ¿cuál será más conveniente para mí?
En las construcciones anteriores, la operación a nivel de bits era mayor que la multiplicación
Operación
Descripción
Orden de ejecución
()
[]
.
Llamada a la función
Referencia a un elemento del array
Referencia a un elemento de la estructura
De izquierda a derecha
¡!
~
++
--
(tipo)
sizeof
Negación lógica
Negación a nivel de bits (complemento)
Cambio de signo
Incremento en uno
Disminución en uno
Tipificación
Determinación del tamaño en bytes
De derecha a izquierda
*
/
%
Multiplicación
División
División de módulos
De izquierda a derecha
+
Suma
Sustracción
De izquierda a derecha
<<
>>
Desplazamiento a la izquierda
Desplazamiento a la derecha
De izquierda a derecha
<
<=
>
>=
Menos que
Menor o igual que
Mayor que
Mayor o igual que
De izquierda a derecha
==
!=
Igual
No igual
De izquierda a derecha
&
Operación AND a nivel de bits
De izquierda a derecha
^
Operación OR exclusiva a nivel de bits
De izquierda a derecha
|
Operación OR a nivel de bits
De izquierda a derecha
&&
Operación lógica AND
De izquierda a derecha
||
Operación lógica OR
De izquierda a derecha
?:
Operador condicional
De derecha a izquierda
=
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
Asignación
Multiplicación con asignación
División con asignación
Módulo con asignación
Suma con asignación
Sustracción con asignación
Desplazamiento a la izquierda con asignación
Desplazamiento a la derecha con asignación
AND con asignación
OR exclusivo con asignación
O a nivel de bit con asignación
Derecha a izquierda
,
Coma
De izquierda a derecha
() Llamada a la función De izquierda a derecha [] Referencia a un elemento de la matriz
¡! Negación lógica De derecha a izquierda - Operación de cambio de signo ++ Incremento -- Disminución ~ Negación Bitwise (complemento)
& Operación bitmensual AND De izquierda a derecha | Operación bitmensual OR ^ Operación bitmensual exclusiva OR << Desplazamiento a la izquierda >> Desplazamiento a la derecha
* Multiplicación De izquierda a derecha / División % División de módulos
+ Suma De izquierda a derecha - Resta
< Menor que De izquierda a derecha <= Menor que o igual > Mayor que >= Mayor que o igual == Igual!=No igual
|| OR lógico De izquierda a derecha
&& Lógico Y De izquierda a derecha
= Asignación De derecha a izquierda += Asignación suma -= Asignación resta *= Asignación multiplicación /= Asignación división %= Asignación módulo >>= Asignación desplazamiento a la derecha <<= Asignación desplazamiento a la izquierda &= Asignación bitwise AND |= Asignación bitwise OR ^= Asignación exclusive OR
WHRoederencontré tu código (seleccionar la última orden de mercado) y añadí líneas resaltadas para comprobar su precio tp y para establecer el mismo precio tp en las órdenes anteriores:
int PositionIndex; // <-- this variable is the index used for the loopint TotalNumberOfOrders; // <-- this variable will hold the number of orders currently in the Trade pooldouble Ord_TP=0;
TotalNumberOfOrders = OrdersTotal(); // <-- we store the number of Orders in the variablefor(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --) // <-- for loop to loop through all Orders . . COUNT DOWN TO ZERO !
{
if( ! OrderSelect(PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue; // <-- if the OrderSelect fails advance the loop to the next PositionIndexif( OrderMagicNumber() == MagicNo // <-- does the Order's Magic Number match our EA's magic number ?
&& OrderSymbol() == Symbol() // <-- does the Order's Symbol match the Symbol our EA is working on ?
&& ( OrderType() == OP_BUY// <-- is the Order a Buy Order ?
|| OrderType() == OP_SELL ) ) // <-- or is it a Sell Order ?if(OrderTakeProfit()>0)Ord_TP = OrderTakeProfit(); break;if(OrderTakeProfit() == Ord_TP) continue;OrderModify(OrderTicket(),0,0,Ord_TP,0,CLR_NONE);//if ( ! OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), Slippage ) ) // <-- try to close the order//Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError() ); // <-- if the Order Close failed print some helpful information
} // end of For loop
(Todas las ordenes de mercado+pendientes son solo de compra, no de venta o solo de venta, no de compra y quiero que el tp de todas las ordenes de mercado se cambie cada vez, cuando se abra una nueva orden de mercado ).
ESTO ES REALMENTE DIFICIL PARA MI, PERO QUIERO HACERLO :(
Las cosas se están complicando para mí. Creo que debería escribir el código desde el principio. y voy a pegar cada parte del código aquí. tal vez podría entender que mejor.
Si no es así, por favor escriba un código en lugar de un enlace, todavía estoy confundido.
NO https://www.mql5.com/en/forum/133792/page3#550831
da el pipvalue para un lote negociado en un símbolo específico
1. Hay algunas órdenes de compra abiertas y una orden de compra pendiente. todas las órdenes están en el mismo par de divisas. ¿cómo un EA seleccionará sólo la última orden abierta para comprobar sus límites de parada?
2. cada orden abierta fue colocada a diferentes precios con tp 20. ¿es posible que el EA modifique todas las órdenes abiertas excepto la última, y cambie sus límites de parada a los límites de parada de la última orden abierta?
EJEMPLO:
Alguna confusión con...
El antiguo editor acepta las líneas resaltadas, pero el nuevo editor da la advertencia "Expresión no booleana"
He probado entonces...
Ahora el nuevo editor acepta ambos, pero... ¿cuál funcionará igual que la línea resaltada? si ambos son verdaderos, entonces ¿cuál debo usar? (¿es más conveniente?)
PD: El código de abajo también es aceptado por el nuevo editor...
El nuevo editor acepta los tres, pero... ¿cuál funcionará igual que la línea resaltada? si todos son verdaderos, entonces ¿cuál será más conveniente para mí?
(SignalS & AAA) !=0Operación
Descripción
Orden de ejecución
()
[]
.
Llamada a la función
Referencia a un elemento del array
Referencia a un elemento de la estructura
De izquierda a derecha
¡!
~
++
--
(tipo)
sizeof
Negación lógica
Negación a nivel de bits (complemento)
Cambio de signo
Incremento en uno
Disminución en uno
Tipificación
Determinación del tamaño en bytes
De derecha a izquierda
*
/
%
Multiplicación
División
División de módulos
De izquierda a derecha
+
Suma
Sustracción
De izquierda a derecha
<<
>>
Desplazamiento a la izquierda
Desplazamiento a la derecha
De izquierda a derecha
<
<=
>
>=
Menos que
Menor o igual que
Mayor que
Mayor o igual que
De izquierda a derecha
==
!=
Igual
No igual
De izquierda a derecha
&
Operación AND a nivel de bits
De izquierda a derecha
^
Operación OR exclusiva a nivel de bits
De izquierda a derecha
|
Operación OR a nivel de bits
De izquierda a derecha
&&
Operación lógica AND
De izquierda a derecha
||
Operación lógica OR
De izquierda a derecha
?:
Operador condicional
De derecha a izquierda
=
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
Asignación
Multiplicación con asignación
División con asignación
Módulo con asignación
Suma con asignación
Sustracción con asignación
Desplazamiento a la izquierda con asignación
Desplazamiento a la derecha con asignación
AND con asignación
OR exclusivo con asignación
O a nivel de bit con asignación
Derecha a izquierda
,
Coma
De izquierda a derecha
WHRoeder encontré tu código (seleccionar la última orden de mercado) y añadí líneas resaltadas para comprobar su precio tp y para establecer el mismo precio tp en las órdenes anteriores:
Una línea extra...
Por favor, guíame, si me equivoco.
(Todas las ordenes de mercado+pendientes son solo de compra, no de venta o solo de venta, no de compra y quiero que el tp de todas las ordenes de mercado se cambie cada vez, cuando se abra una nueva orden de mercado ).
ESTO ES REALMENTE DIFICIL PARA MI, PERO QUIERO HACERLO :(