[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 489

 
DOCTORS:


Acho que minhas funções cerebrais se deterioraram parcialmente após as férias, o que se traduz em um baixo nível de auto-relatos :(

O ponto é um pouco diferente:

1. Assim que o Expert Advisor começa, atribuo o valor inicial do depósito a alguma variável (estou procurando por função de atribuição, embora possa, é claro, prescrevê-la manualmente nas configurações iniciais, mas já fui reprovado por minhas pobres habilidades de programação, mas quero fazê-lo como uma pessoa branca faz).

2. Como meu sistema é astuto, e funciona apenas um lote, o valor inicial do lote (digamos) 1,0 ...

E a questão principal - eu quero depois de cada negociação lucrativa, o depósito foi comparado ao original, e se o novo valor (digamos) foi mais de 30%, eu mudo o valor do lote em 0,1, ou seja, 1,0 +0,1, e assim por diante constantemente (claramente a nuança que constantemente tem que mudar o valor antigo da variável, e novamente o operador de atribuição do valor variável do depósito).

De qualquer forma, é assim.


Na biblioteca, veja as ferramentas de gerenciamento de volume de I. Kim e outras versões, incluindo a versão do livro didático que lhe dei - quando você entender como elas funcionam, não será difícil fazer a sua própria, que é exatamente o que você precisa... É assim que é. Sem ele - de jeito nenhum - praticar e resolver problemas típicos - IMHO, antes de tudo. Veja o trailer - características de gerenciamento de capital por Igor Kim.
Arquivos anexados:
b-lots.mqh  3 kb
 
sss2019:

O descritor de arquivo é sempre maior que zero na abertura bem sucedida?

Veja se a lógica deste código, que abre o arquivo para escrita

errado, e quem fecharia um arquivo depois de ter sido criado se não houvesse um?

e então o terminal lhe dará um erro aberto neste caso, então é melhor verificar a presença do arquivo com a bandeira FILE_CSV|FILE_READ, neste caso se não houver arquivo, o terminal ficará em silêncio

 
FAQ:

errado, e quem fechará o arquivo após a sua criação se não houver arquivo?

E então, o terminal lhe dará um erro aberto neste caso, então é melhor verificar o arquivo com a bandeira FILE_CSV|FILE_READ, neste caso, se não houver arquivo, o terminal ficará em silêncio


Bem, ele está lá. Se o arquivo estivesse aberto

  if(Handle >0)
  FileClose(Handle);

Eu fiz um registro no arquivo, mas o delimitador no final não é adicionado, e o tutorial diz que é adicionado automaticamente.

FileWrite(Handle,"Pair, Min, Max, Open, Close, Moment");
 

E se não estava lá, você o cria e não o fecha. ou então se você tem um fechamento extra (abaixo no código)

quanto ao delimitador - qualquer que seja o delimitador com que você abra o arquivo (em vez de criá-lo), ele será o mesmo

 


Hehe, é um avatar temático. :)

2 Romano - obrigado, vamos analisar isso.

 

FAQ:

E se não estava lá, você o cria e não o fecha. ou então se você tem um fechamento extra (abaixo no código)

o separador - qualquer que seja o separador com o qual você abra o arquivo (você não o cria), ele será o mesmo


Então por que é redundante não entendo, se eu não fechar imediatamente, então feche-o mais tarde. Por favor, mostre-me um exemplo de como abri-lo e fechá-lo corretamente.

 
Favor informar como fazer o sinal de alerta aparecer no indicador, apenas uma vez na barra de corrente. Eu tentei fazer uma variável e desde que esta variável tenha valor 0 o sinal é permitido, assim que o sinal soar a variável toma valor 1. Mas não funciona.
 
sss2019:
Favor informar como fazer o sinal de alerta aparecer no indicador, apenas uma vez na barra de corrente. Eu tentei fazer uma variável, e desde que esta variável tenha valor 0 o sinal é permitido, assim que o sinal é soado a variável toma valor 1. Mas não funciona.

https://docs.mql4.com/ru/basis/variables/static
 
sss2019:
Favor informar como fazer o sinal de alerta aparecer no indicador, apenas uma vez na barra de corrente. Eu tentei fazer uma variável, e desde que esta variável tenha valor 0 o sinal é permitido, assim que o sinal é soado a variável toma valor 1. Mas não funciona.
Arquivos anexados:
 
sss2019:
Favor aconselhar como fazer um alerta aparecer em um indicador, apenas uma vez na barra atual. Tentei fazer uma variável e desde que esta variável tenha valor 0 o sinal é permitido. Assim que o sinal é emitido, a variável toma valor 1. Mas não funciona.


Normalmente faço uma variável LastBarAlert e escrevo Tempo[0] para ela quando o alerta é acionado.

E então elementar, Alerta é exibido se LastBarAlert!=Time[0]

if (Signal && LastBarAlert!=Time[0]){
  Alert('Signal detected');
  LastBarAlert=Time[0];
}
Razão: