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

 
Maxim Kuznetsov:

Ao abrir uma ordem, escreva o número da regra/variável no comentário.

Depois, quando você faz uma verificação de histórico, você puxa esse número, adiciona 1 a ele e obtém um novo número de regra

Obrigado! Essa é uma boa maneira. Vou tentar

 
Igor Makanu:

Experimente este código, talvez isto seja o que você precisa

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.7 ---> 0.7

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.6 ---> 0.7

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.5 ---> 0.6

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.4 ---> 0.5

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.3 ---> 0.4

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.2 ---> 0.3

2019.11.28 22:31:26.409 tst EURUSD,H1: 0.1 ---> 0.2

Em minha função GetNextLot() você alimenta o volume da última ordem fechada, e ele retornará o próximo valor da configuração do Lote_XX

a única limitação neste código é que você tem que configurar lotes em ordem ascendente - acho que o código é simples e direto, você pode modificá-lo de acordo com suas necessidades

Obrigado!!!

 
Corvin85:

Obrigado!!!

por favor

Se seu cálculo de lote for arbitrário, você poderia tentar substituir se por caso de troca no meu exemplo

 
Quero abrir dois terminais MT4 e me conectar a um deles, ou seja, um programa será instalado em um terminal e o outro também poderá encontrar o EA, é muito difícil compilar o programa e a cada vez lançar um arquivo lá e ali. É possível fazer isso?
 

Qual é a melhor maneira de escrever o algoritmo?


Tarefa:

Um Expert Advisor funciona com base em diferentes gráficos.

Preciso ter um arquivo separado com informações minuto a minuto sobre conta, saldo, patrimônio líquido, etc.


Agora acontece que todos os consultores especializados escrevem todas as informações em um único arquivo. Como resultado, temos muitas entradas desnecessárias.


Qual poderia ser a solução engenhosa para que apenas um bot faça registros no arquivo? (E se, por exemplo, foi apagado, os registros começaram a fazer outro bot, etc.)

 
Seric29:
Quero abrir 2 terminais MT4 e me conectar a um EA a partir deles, ou seja, um programa será instalado em um terminal e o segundo também será capaz de encontrar o EA, muito difícil de compilar um programa e toda vez que jogar o arquivo lá e ali. É possível fazer isso?

Você não pode fazer isso.

Procure um programa Windows que sincronize os dados em pastas. E configurá-lo para que o EA seja automaticamente copiado para o novo terminal

 
Sergey Likho:

Qual é a melhor maneira de escrever o algoritmo?


Tarefa:

Um Expert Advisor funciona com base em diferentes gráficos.

Preciso ter um arquivo separado com informações minuto a minuto sobre conta, saldo, patrimônio líquido, etc.


Agora acontece que todos os consultores especializados escrevem todas as informações em um único arquivo. Como resultado, temos muitas entradas desnecessárias.


Qual é a solução original possível, para que apenas um bot escreva no arquivo (E, por exemplo, se ele foi apagado, o outro bot começa a fazer registros, etc.).

Você pode tentar organizar a comunicação através da GV.

Por exemplo: Iniciou a primeira, não encontra GV e a cria com um certo nome. O ID do gráfico pode ser usado como o valor. Você inicia o próximo Expert Advisor, a GV está lá, ela não escreve. Você apaga o primeiro, ele verifica o valor e se o valor for igual ao ID do gráfico, ele apaga o GV. O próximo vê que o GV está ausente e o cria com seu próprio valor.

Assim, a GV pode ser apagada somente por quem a criou ou por quem está no comando, literalmente. Deleta à mão.

 

Olá a todos. Tenho uma pergunta boba, só não quero experimentar um pouco. Eu tenho um indicador, não preciso emitir nada dele, mas meu Consultor Especialista tem que tirar dados dele. Qual é a maneira correta de inicializar as arrays?

INDICADOR_DATA ou INDICADOR_CALCULATIONS?

Bem, em geral, quero saber, se posso obter dados do número do buffer na função iCustom - usando o buffer definido como SetIndexBuffer(N, BufferName, INDICATOR_CALCULATIONS);

 
Никита Парамонов:

Olá a todos. Tenho uma pergunta boba, só não quero experimentar um pouco. Eu tenho um indicador, não preciso emitir nada dele, mas meu Consultor Especialista tem que tirar dados dele. Qual é a maneira correta de inicializar as arrays?

INDICADOR_DATA ou INDICADOR_CALCULATIONS?

Bem, em geral, quero saber, se posso obter dados do número do buffer na função iCustom - usando o buffer definido como SetIndexBuffer(N, BufferName, INDICATOR_CALCULATIONS);

Pegue o MA padrão, mude o tipo de dados do buffer, compile e verifique na janela de dados do terminal (Ctrl+D)

 

ChartID() é escrito nas variáveis globais do terminal com um erro. o que é este absurdo?


Tente este código:


   string GlobalVar1 = "GVAR";
   long ChID = ChartID();
   
   if(GlobalVariableSet(GlobalVar1,ChID) == 0)
      Print("Error GV", GetLastError());

   Print(GlobalVar1," id:",ChID, " GV_id:", (long)GlobalVariableGet(GlobalVar1));


//мой ответ 2019.11.29 13:30:39.292     test EURUSD,M5: GVAR id:132194970392300419 GV_id:132194970392300416

разница в конце в одну цифру
Razão: