Hola a todos ) Por favor, ayúdenme a escribir un código (más correctamente una pequeña parte) mi objetivo es escribir una función seleccionar el historial de pedidos y allí necesito ver el valor al que se cerró el último pedido, positivo o negativo. Por favor, avise a quien lo hace (ya me estoy devanando los sesos )))))
Hola a todos ) Por favor, ayúdenme a escribir un código (más correctamente una pequeña parte) el propósito es escribir una función seleccionar el historial de pedidos y allí necesito ver qué valor fue el último pedido cerrado, positivo o negativo. Quien conozca el código que me aconseje (ya me he devanado los sesos )))))
Gracias de antemano.
MQL4
//+------------------------------------------------------------------+// Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу, типу и магикуbool isLossLastClosePos(string sy, int op, int mn) {
datetime t=0;
int i, j=EMPTY;
for(i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderMagicNumber()!=mn) continue;
if(OrderSymbol()!=sy) continue;
if(OrderType()!=op) continue;
if(t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderProfit()+OrderCommission()+OrderSwap()<0) return(true);
}
return(false);
}
//+------------------------------------------------------------------+// Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу и магикуbool isLossLastClosePos(string sy, int mn) {
datetime t=0;
int i, j=EMPTY;
for(i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderMagicNumber()!=mn) continue;
if(OrderSymbol()!=sy) continue;
if(OrderType()>1) continue;
if(t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) {
if(OrderProfit()+OrderCommission()+OrderSwap()<0) return(true);
}
return(false);
}
//+------------------------------------------------------------------+
Así es como lo comprobamos:
if(isLossLastClosePos(symbol, magic)) {
// последняя позиция закрыта в убытке
}
Hola a todos ) Por favor, ayúdenme a escribir un código (más correctamente una pequeña parte) el propósito es escribir una función seleccionar el historial de pedidos y allí necesito ver qué valor fue el último pedido cerrado, positivo o negativo. Quien conozca el código que me aconseje (ya me he devanado los sesos )))))
Gracias de antemano.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает тип закрытия по профиту, //| 1= позиция закрыта в профите, |//| 2- позиция закрыта в минусе |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int isCloseLastPosByStoporTake(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
double ocp=OrderProfit();
if (OrderProfit()+OrderCommission()+OrderSwap()>0) return(1);
if (OrderProfit()+OrderCommission()+OrderSwap()<0) return(2);
}
return(0);
}
Para averiguarlo, haz esto:
if(isCloseLastPosByStoporTake("",-1,-1)==1) // Позиция закрыта в плюсеif(isCloseLastPosByStoporTake("",-1,-1)==2) // Позиция закрыта в минусе
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает флаг убыточности последней позиции. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isLossLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderProfit()<0) return(True);
}
return(False);
}
Te das cuenta de que estás siendo tonto con tus insinuaciones ahora, ¿no?
El código es mío. Tomé la lógica y los nombres de las variables de Igor. Así que no entiendo tu indirecta. ¿El nombre de la función? ¿Refleja el significado, o es que no tienes ni idea de inglés?
¿Para qué sirve el modificador const al final de un método?
¿Qué beneficios obtenemos al utilizar este modificador en la inicialización de los nombres de las variables?
Soy consciente de que la variable no puede cambiar y obtener un valor diferente.
¿Quizás este modificador acelera el trabajo del programa?
¿Para qué sirve el modificador const al final de un método?
¿Qué beneficios obtenemos al utilizar este modificador en la inicialización de los nombres de las variables?
Soy consciente de que la variable no puede cambiar y obtener un valor diferente.
¿Puede ser que este modificador acelere el funcionamiento del programa?
Esto es de OOP. Significa que el método no cambia el objeto desde el que se llama. Los argumentos no tienen nada que ver.
La ventaja es que cuando se mire el prototipo se verá que el objeto no se modificará, es decir, la visibilidad.
Hola a todos ) Por favor, ayúdenme a escribir un código (más correctamente una pequeña parte) mi objetivo es escribir una función seleccionar el historial de pedidos y allí necesito ver el valor al que se cerró el último pedido, positivo o negativo. Por favor, avise a quien lo hace (ya me estoy devanando los sesos )))))
Gracias de antemano.
Hola a todos ) Por favor, ayúdenme a escribir un código (más correctamente una pequeña parte) el propósito es escribir una función seleccionar el historial de pedidos y allí necesito ver qué valor fue el último pedido cerrado, positivo o negativo. Quien conozca el código que me aconseje (ya me he devanado los sesos )))))
Gracias de antemano.
MQL4
Así es como lo comprobamos:
Hola a todos ) Por favor, ayúdenme a escribir un código (más correctamente una pequeña parte) el propósito es escribir una función seleccionar el historial de pedidos y allí necesito ver qué valor fue el último pedido cerrado, positivo o negativo. Quien conozca el código que me aconseje (ya me he devanado los sesos )))))
Gracias de antemano.
Para averiguarlo, haz esto:
MQL4
Compruébalo así:
))))
))))
Te das cuenta de que estás siendo tonto con tus insinuaciones ahora, ¿no?
El código es mío. Tomé la lógica y los nombres de las variables de Igor. Así que no entiendo tu indirecta. ¿El nombre de la función? ¿Refleja el significado, o es que no tienes ni idea de inglés?
MQL4
Compruébalo así:
para saber lo que estás haciendo:
¡¡¡Muchas gracias!!!