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

 
Aleksandr Lishchenko:

Estou apenas aprendendo!

Não seja muito duro! ;)

Você aprende como baixar códigos da rede, anexá-los à sua conta e ganhar dinheiro com o afiliado? Você não precisa aprender, é muito fácil de fazer.

 
Vitaly Muzichenko:

Você aprende como baixar códigos da web, vinculá-los à sua conta e ganhar dinheiro de seu afiliado? Você não precisa aprender como fazer isso, é fácil o suficiente.

Quero vincular o consultor especializado (comissionado) de meu autor à minha conta e colocá-lo em um servidor duvidoso, o que não se deve entender =)

Estou pedindo sua ajuda, por favor me diga o que preciso colocar.
 
Aleksandr Lishchenko:

Quero ligar a EA (encomendada) de meu autor a uma conta e hospedá-la em um servidor duvidoso, o que não se deve entender =)

Portanto, estou pedindo sua ajuda, por favor, informe o que você precisa colocar.

Você tem a resposta.

Mas você também pode inserir no final doOnInit

int OnInit()
  {
//---
  // Здесь уже есть код
//---
 // Проверка счёта
  if(AccountInfoInteger(ACCOUNT_LOGIN) != 123456 ) return(INIT_FAILED);
//---
 return(INIT_SUCCEEDED);
  }
 
Vitaly Muzichenko:

Foi-lhe dito

Mas você também pode inserir no final doOnInit

Você tem certeza de que a pessoa não vai copiar novamente sem pensar?

if(AccountInfoInteger(ACCOUNT_LOGIN) != 123456 ) return(INIT_FAILED);
 
Ihor Herasko:

Isso não está muito certo. A primeira coisa a fazer é calcular o valor correto mais próximo (com base no valor definido), e depois verificar a diferença entre os valores. Se for zero (ou não mais do que DBL_EPSILON), então tudo está bem:

A função VolumeCast pode ser tomada a partir daqui.

Muito obrigado

 
Ihor Herasko:

Isso não está muito certo. A primeira coisa a fazer é calcular o valor correto mais próximo (com base em um determinado valor), e depois verificar a diferença entre os valores. Se for zero (ou não mais do que DBL_EPSILON), então tudo está bem:

A função VolumeCast pode ser tomada a partir daqui.

Obrigado. Eu apenas refinaria um pouco mais oVolumeCast, porque se definirmos valores bastante usuais, por exemplo, volume de lote igual a 0,01 e lote mínimo igual a 0,01 enquanto o volume especificado pelo usuário estiver correto, como 0,03, oVolumeCast aumentará o volume para 0,04.

double VolumeCast(double volume, double volumeMin, double volumeMax, double volumeStep)
{
   if (volumeStep == 0.0)
      return volumeMin;
   if(volumeStep!=volumeMin)
      return (MathMin(MathFloor(volume / volumeStep) * volumeStep + volumeMin, volumeMax));
   else
      return (MathMin(MathFloor(volume / volumeStep) * volumeStep, volumeMax));
}
 
Aleksandr Teleguz:

Obrigado. Somente eu gostaria de refinar um pouco mais oVolumeCast, pois se definirmos valores bastante usuais, por exemplo, volume de lote igual a 0,01 e lote mínimo igual a 0,01 e valor de volume definido pelo usuário estiver correto, por exemplo 0,03, entãoo VolumeCast aumentará o volume para 0,04:

Sim, correto.

 
Você pode me dizer se é possível escrever um código que funcione tanto no MT5 quanto no MT4?
 
Roman Sharanov:
Você pode me dizer se é possível escrever um código que funcione no MT5 e MT4?

Por exemplo

#ifdef __MQL5__
        int totalPsitions = PositionsTotal();
#else
        int totalPsitions = OrdersTotal();
#endif
 
Konstantin Nikitin:

Por exemplo, como este

e obter dados dos indicadores, do gráfico?

Razão: