Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1797

 
Artyom Trishkin bandeiras de visibilidade de volume nos períodos de tempo. Necessidade de esconder e exibir.

Escrevi a eles sobre isso há alguns dias. Mas quem é que ouve os bons conselhos...?

 
Mihail Matkovskij #:
Uma versão mais compacta:

Não sou um programador e não conheço estilos (escrevo como posso).

Mihail Matkovskij #:

Mas eu pensei que você disse que sua função finge ser universal...? Então você esqueceu um detalhe muito importante:

const-don não sabe o que é, mas funciona maravilhosamente sem ele.


Mihail Matkovskij #:

Você é preguiçoso demais para escrever um simples roteiro para verificá-lo? Ok. Eu o fiz por você:

Estranho...

esta função gera falso em "-n".

Não sou um programador nem um professor. Estou aqui para perguntar e responder (se eu souber). Eu não faço fósforos para mijar.

Se você quer mostrar seu valor, aprenda a admitir erros ou corrigi-los.

 
Mihail Matkovskij #:

Escrevi a eles sobre isso há alguns dias. Mas quem é que ouve os bons conselhos...?

Eu também tenho notado que os mais ativos tendem a ser ouvidos. Neste caso, Makar. Como resultado, o problema mais simples não foi resolvido por vários dias.

 
Alexey Viktorov #:

Eu também notei que os mais ativos são ouvidos com mais freqüência. Neste caso, Makar. Como resultado, durante vários dias, a tarefa mais simples não foi resolvida.

Alexei, o problema já foi resolvido há muito tempo, o homem queria entender porque esta opção em particular não funciona.
 
MakarFX #:


const - Não sei o que é, mas funciona bem sem ele.

const, é uma garantia de que o valor não mudará dentro da função

Estranho...

é a função que dá falso

Acho que já tenho tudo esclarecido. O que está errado?

Não sou um programador e não sou professor. Estou perguntando e respondendo (se eu souber). Eu não estou tentando exibir minha xoxota.

Se você quer mostrar seu valor, é melhor aprender a admitir seus erros ou corrigi-los.

Eu também respondo a perguntas. E estou tentando transmitir como deve ser um código bem escrito. E você está falando comigo sobre meu ego? Acho que você e o Nerd Trader me entenderam mal. Eu já disse acima que para mim a importância de conhecer a programação é o que importa, não a minha importância!

Em princípio, ninguém vai lhe ensinar além de sua vontade. Mas o código, que foi escrito para você, mas você não gosta dele, não cabe ou você não o entende, provavelmente será útil para outros membros do fórum. Portanto, se você não gosta do código, não o use. Use aquele que você gosta.

 
MakarFX #:
Alexei, o problema já foi resolvido há muito tempo, o homem queria entender porque esta variante em particular não funciona.

Tudo está funcionando corretamente e eles estão mexendo com a cabeça de todos aqui em vez de comparar a versão certa com a errada. :)

 
законопослушный гражданин #:

claramente

Por favor, informe se entendi corretamente que a função retorna o lote da última ordem fechada, mas a contabilidade começa a partir do início da lista de todas as ordens fechadas

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int i=OrdersHistoryTotal();
   for(int pos=0; pos<i; pos++)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }

e se eu fizer dessa forma, será contado a partir do final da lista?

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int i=OrdersHistoryTotal();
   for(int pos=0; pos>=i; pos--)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }
 
законопослушный гражданин #:

Você poderia me dizer se eu entendi corretamente que a função retorna o lote da última ordem fechada, mas a contabilidade começa a partir do início da lista de todas as ordens fechadas

então se eu fizer dessa forma, será contado a partir do final da lista?

Sim
 
законопослушный гражданин #:

Você poderia me dizer se eu entendi corretamente que a função retorna o lote da última ordem fechada, mas a contabilidade começa a partir do início da lista de todas as ordens fechadas

Se eu fizer desta maneira, a contagem regressiva será feita a partir do final da lista?

A segunda variante não vai funcionar. Para fazer a contagem a partir do final da lista, devemos fazer o seguinte:

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int total = OrdersHistoryTotal();
   for(int i = total - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }