FAQ: Si su orden se abre, compruebe la apertura, y si lo hace, puede abrir la segunda orden con cheque...
He escrito dos funciones que se abren de forma diferente según la situación y comprobaré al final de cada una de ellas (creo que serán una función independiente) qué y cuántas órdenes están abiertas y qué órdenes se perderán y se reabrirán.
Si usted es un experto en el campo del posicionamiento del EA en términos de forex, puede estar interesado en saber más sobre él y utilizarlo en su robot de trading. Me gustaría reiterar mi agradecimiento (perdón por la falta de detalles).
Ha surgido un problema. No encuentro la función que devuelve el tamaño de la posición "agregada" de un instrumento determinado. He buscado en todo el foro, incluyendo la rama de I.KIM,https://www.mql5.com/ru/forum/131859 - hay - diferentes funciones para lotes, ¡excepto la que necesito!
Por ejemplo, si hay varias ofertas de "compra" abiertas en euros, ¿puede aconsejar cómo determinar su importe total?
GetLot(EURUSD, OP_BUY, magic)
double GetLot(string sy="", int op=-1, int mn=-1) {// возвращает сувокупный размер поз.
double l=-1;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
I = ------ ???????????
------ ????????????
}
}
}
}
}
}
return(l);
}
¡Pregunta despejada! Se ha descubierto una función:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает сумму лотов открытых позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double GetAmountLotFromOpenPos(string sy="", int op=-1, int mn=-1) {
double l=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
l+=OrderLots();
}
}
}
}
}
}
return(l);
}
No necesito tener en cuenta las cerraduras. O mejor dicho, así es como:
Lo que necesito es esto. Si hay varias posiciones abiertas de venta y de compra, tengo que eliminar las posiciones contrarias (de compensación), así que - para permanecer sólo en una dirección.
Quería calcular primero la suma de todas las "bahías" y luego la suma de todas las "ventas". Después, encuentra la diferencia (es decir, el tamaño total de quién es mayor). Y esta "diferencia" debería dejarse en el mercado, -¡y eliminar todas las contrarias!
Entonces, ¿esta función GetAmountLotFromOpenPos no funcionará aquí? Por ejemplo, si pongo
GetAmountLotFromOpenPos(EURUSD,OP_SELL, -1)
-¿No devolverá la cantidad total de lotes de todas las posiciones de venta?
No necesito tener en cuenta las cerraduras. O mejor dicho, así es como:
Lo que necesito es esto. Si hay varias posiciones abiertas de venta y de compra, tengo que eliminar las posiciones contrarias (de compensación), así que - para permanecer sólo en una dirección.
Quería calcular primero la suma de todas las "bahías" y luego la suma de todas las "ventas". A continuación, encuentra la diferencia (es decir, el tamaño total de quién es mayor). Y esta "diferencia" debería dejarse en el mercado, -¡y eliminar todas las contrarias!
Entonces, ¿esta función GetAmountLotFromOpenPos no funcionará aquí? Por ejemplo, si pongo
GetAmountLotFromOpenPos(EURUSD,OP_SELL, -1)
-¿No devuelve la cantidad total de lotes de todas las posiciones de venta?
Si su orden se abre, compruebe la apertura, y si lo hace, puede abrir la segunda orden con cheque...
He escrito dos funciones que se abren de forma diferente según la situación y comprobaré al final de cada una de ellas (creo que serán una función independiente) qué y cuántas órdenes están abiertas y qué órdenes se perderán y se reabrirán.
Si usted es un experto en el campo del posicionamiento del EA en términos de forex, puede estar interesado en saber más sobre él y utilizarlo en su robot de trading. Me gustaría reiterar mi agradecimiento (perdón por la falta de detalles).
Buenos días.
Ha surgido un problema. No encuentro la función que devuelve el tamaño de la posición "agregada" de un instrumento determinado. He buscado en todo el foro, incluyendo la rama de I.KIM,https://www.mql5.com/ru/forum/131859 - hay - diferentes funciones para lotes, ¡excepto la que necesito!
Por ejemplo, si hay varias ofertas de "compra" abiertas en euros, ¿puede aconsejar cómo determinar su importe total?
GetLot(EURUSD, OP_BUY, magic)
¡Pregunta despejada! Se ha descubierto una función:
¿Qué tiene de malo? Entonces, ¿qué devuelve esta función?
"Devuelve la suma de los lotes de posiciones abiertas", ¿no es eso lo que dice?
https://www.mql5.com/ru/code/9394
"Devuelve la suma de los lotes de posiciones abiertas", ¿no es eso lo que dice?
No necesito tener en cuenta las cerraduras. O mejor dicho, así es como:
Lo que necesito es esto. Si hay varias posiciones abiertas de venta y de compra, tengo que eliminar las posiciones contrarias (de compensación), así que - para permanecer sólo en una dirección.
Quería calcular primero la suma de todas las "bahías" y luego la suma de todas las "ventas". Después, encuentra la diferencia (es decir, el tamaño total de quién es mayor). Y esta "diferencia" debería dejarse en el mercado, -¡y eliminar todas las contrarias!
Entonces, ¿esta función GetAmountLotFromOpenPos no funcionará aquí? Por ejemplo, si pongo
GetAmountLotFromOpenPos(EURUSD,OP_SELL, -1)
-¿No devolverá la cantidad total de lotes de todas las posiciones de venta?
-¿No me devolverá la suma de los lotes de todas las posiciones de venta?
No necesito tener en cuenta las cerraduras. O mejor dicho, así es como:
Lo que necesito es esto. Si hay varias posiciones abiertas de venta y de compra, tengo que eliminar las posiciones contrarias (de compensación), así que - para permanecer sólo en una dirección.
Quería calcular primero la suma de todas las "bahías" y luego la suma de todas las "ventas". A continuación, encuentra la diferencia (es decir, el tamaño total de quién es mayor). Y esta "diferencia" debería dejarse en el mercado, -¡y eliminar todas las contrarias!
Entonces, ¿esta función GetAmountLotFromOpenPos no funcionará aquí? Por ejemplo, si pongo
GetAmountLotFromOpenPos(EURUSD,OP_SELL, -1)
-¿No devuelve la cantidad total de lotes de todas las posiciones de venta?
En el caso general:
SummLot = GetAmountLotFromOpenPos("0", OP_BUY, MagicNumber)- GetAmountLotFromOpenPos("0", OP_SELL, MagicNumber);