Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1335

 
como posso abrir uma conta?
 
Artyom Trishkin:

Não deve haver qualquer diferença. Parece-me apenas mais agradável - o código está menos carregado de parênteses e travessões.

Para uma verificação (se) sim, mas em código há duas, e se há muitas, então lógica Se Sim, contingência e nova iteração de laço, caso contrário acção Uma lógica Se Não então acção de outra forma passa para a condição seguinte Se Não. Neste caso, o corpo do laço irá percorrer todo o caminho.

 
Valeriy Yastremskiy:

Para uma verificação (se) sim, mas há duas no código, e se houver muitas, então a lógica Se Sim, continuar e uma nova iteração de laço, caso contrário acção Uma lógica Se Não, então a acção passa para a condição seguinte Se Não. Neste caso, o corpo do laço irá passar até ao fim.

Não compreendo nada, mas que assim seja.

 
Artyom Trishkin:

Eles irão. Utilizo-a porque quero :) Isto especifica explicitamente que métodos de classe são utilizados.

Se tiver duas classes, uma como pai e outra como uma classe herdada, e tiverem dois métodos com o mesmo nome, mas não forem virtuais por alguma razão, terá de especificar explicitamente qual o método a utilizar.

Suponha que a classe pai é CParent e a classe herdada é CInheritede ambas têm método().

Neste caso, se designarmos um método Método() de uma classe CParent, este chamará explicitamente um método da classe CParent - isto não é necessário aqui. Podemos chamar o método com ou sem ele.

Sechamarmos método() a um método numa classe CInherited herdada, o métododessa classe também será chamado, uma vez que primeiro procuramos um método pertencente à classe da qual o chamámos.

Sechamarmos CParent::Method() numa classe CInherited, é o método da classe pai que será chamado desta forma, porque especificámos explicitamente um método que pertence à classe pai por operador de resolução de contexto.

Mas mesmo assim eu chamaria método Método() na classe CInherited comindicação disto - para ter a certeza que o método desta (isto == "isto") classe herdada será chamado.

Existem outras explicações para a sua utilização. Talvez alguém mais experiente no OOP nos possa dizer.

Artem, muito obrigado por uma resposta tão abrangente, que muda a atitude em relação ao OOP para melhor).

 
Ахад Ахмедрв:
Como é que abro uma conta real?

1. Escolher um corretor.
2. Escolher uma plataforma, MT4 ou MT5.
3. Abrir uma conta em tempo real com o corretor.

 
Artyom Trishkin:

Bem, sim. Eu sou uma dessas "algumas pessoas", especialmente quando chamo uma função padrão de uma classe , certifico-me de especificar o contexto global. Só porque consigo pensar em acrescentar um método nessa classe com o mesmo nome da função padrão - por isso nunca esquecerei o que faz. E é aí que é necessário :: chamar uma função padrão, e isto - chamar o meu método com o mesmo nome.

Artem, já refuta a segunda parte da expressão "necessário - não necessário". É necessário, significa que é necessário. Não há qualquer objecção...

 

Olá

Como calcular a distância em pips desde o preço actual até ao limite mais próximo até àencomenda pendente. Estou interessado num código pronto a fazer.


 
Valeriy Yastremskiy:

Para uma verificação (se) sim, mas há duas no código, e se houver muitas, então a lógica Se Sim, continuar e uma nova iteração de laço, caso contrário acção Uma lógica Se Não, então a acção passa para a condição seguinte Se Não. Neste caso, o corpo do laço irá percorrer todo o caminho.

Para mim, a opção preferida é

int a = 3, b = 7;
for(int i = 0; i < 10; i++)
 {
  if(i == a && b == 7)
   {
    Print(b);
   }
  // если условие if(i == a) НЕ выполнено, следующая итерация………
 }

ou isto

int a = 3, b = 7;
for(int i = 0; i < 10; i++)
 {
  if(i == a)
   {
    if(b == 7)
     Print(b);
   }
  // если условие if(i == a) НЕ выполнено, следующая итерация………
 }

Outra variante

int a = 3, b = 7;
for(int i = 0; i < 10; i++)
 {
  if(i != a)
   continue; // если условие if(i != a) выполнено, следующая итерация………
    if(b == 7)
     Print(b);
 }

A outra variante está à beira da idiotice.

int a = 3, b = 7;
for(int i = 0; i < 10; i++)
 {
  if(i != a)
   continue; // если условие if(i != a) выполнено, следующая итерация………
    if(b != 7)
     continue;
     
  Print(b);
 }

Mas isto é uma questão de gosto. O que se quiser.

Tanto quanto sei, esta forma foi utilizada quando o operador verificou TODAS as condições desde o início até ao fim. Foi justificado pelo facto de que, se a primeira condição não for cumprida, não terá de verificar as seguintes condições. Agora todas as condições após a que não foi cumprida não são verificadas. E tais escadas já não são necessárias, resta apenas um hábito.

 
Alexey Viktorov:

Artyom, isto já desmentiu a segunda parte da expressão "deve-desistir". Se tenho de o fazer, tenho de o fazer. Nenhuma objecção...

Com a advertência: se o fizer.
 
Olá, o testador de estratégia mostra 44% de qualidade histórica, como a corrijo? Procurar no fórum não deu nada, também procurei alguma informação na ajuda, também não há nada.