Olá a todos ) Por favor, ajude-me a escrever um código (mais correctamente uma pequena parte) o objectivo é escrever uma função seleccionar o histórico da ordem e aí preciso de ver qual foi o valor da última ordem fechada, positiva ou negativa. Quem souber o código, por favor aconselhe-me (já embrulhei o meu cérebro )))))
Olá a todos ) Por favor, ajude-me a escrever um código (mais correctamente uma pequena parte) o objectivo é escrever uma função seleccionar o histórico da ordem e aí preciso de ver qual foi o valor da última ordem fechada, positiva ou negativa. Quem souber o código, por favor aconselhe-me (já embrulhei o meu cérebro )))))
Obrigado de antemão.
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);
}
//+------------------------------------------------------------------+
É assim que verificamos:
if(isLossLastClosePos(symbol, magic)) {
// последняя позиция закрыта в убытке
}
Olá a todos ) Por favor, ajude-me a escrever um código (mais correctamente uma pequena parte) o objectivo é escrever uma função seleccionar o histórico da ordem e aí preciso de ver qual foi o valor da última ordem fechada, positiva ou negativa. Quem souber o código, por favor aconselhe-me (já embrulhei o meu cérebro )))))
Obrigado de antemão.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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 o descobrir, faça isto:
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);
}
Percebe que agora está a ser tolo com as suas insinuações, não percebe?
O código é meu. Tirei a lógica e os nomes das variáveis de Igor. Por isso, não aceito a sua dica. O nome da função? Reflecte o significado, ou não está sem pistas em inglês?
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Qual é a finalidade do modificador constante no final de um método?
Que benefícios obtemos ao utilizar este modificador na inicialização de nomes de variáveis?
Estou ciente de que a variável não pode mudar e obter um valor diferente.
Talvez este modificador acelere o trabalho do programa?
Qual é a finalidade do modificador constante no final de um método?
Que benefícios obtemos ao utilizar este modificador na inicialização de nomes de variáveis?
Estou ciente de que a variável não pode mudar e obter um valor diferente.
Poderá ser este modificador acelerar o funcionamento do programa?
Isto é do OOP. Significa que o método não altera o objecto a partir do qual é chamado. Os argumentos não têm nada a ver com isso.
O benefício é que ao olhar para o protótipo, verá que o objecto não será alterado, ou seja, a visibilidade.
Olá a todos ) Por favor, ajude-me a escrever um código (mais correctamente uma pequena parte) o objectivo é escrever uma função seleccionar o histórico da ordem e aí preciso de ver qual foi o valor da última ordem fechada, positiva ou negativa. Quem souber o código, por favor aconselhe-me (já embrulhei o meu cérebro )))))
Obrigado de antemão.
Olá a todos ) Por favor, ajude-me a escrever um código (mais correctamente uma pequena parte) o objectivo é escrever uma função seleccionar o histórico da ordem e aí preciso de ver qual foi o valor da última ordem fechada, positiva ou negativa. Quem souber o código, por favor aconselhe-me (já embrulhei o meu cérebro )))))
Obrigado de antemão.
MQL4
É assim que verificamos:
Olá a todos ) Por favor, ajude-me a escrever um código (mais correctamente uma pequena parte) o objectivo é escrever uma função seleccionar o histórico da ordem e aí preciso de ver qual foi o valor da última ordem fechada, positiva ou negativa. Quem souber o código, por favor aconselhe-me (já embrulhei o meu cérebro )))))
Obrigado de antemão.
Para o descobrir, faça isto:
MQL4
Verifique desta forma:
))))
))))
Percebe que agora está a ser tolo com as suas insinuações, não percebe?
O código é meu. Tirei a lógica e os nomes das variáveis de Igor. Por isso, não aceito a sua dica. O nome da função? Reflecte o significado, ou não está sem pistas em inglês?
MQL4
Verifique desta forma:
para descobrir o que está a fazer:
Muito obrigado!!!