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

 
o índice de barras e eu o tomo para determinar o tempo da barra. Aparentemente, precisamos cavar mais fundo aqui, indo até segundos no tempo de formação da barra
 
Evgeniy Butakov:
Eu tomo o índice de barras para determinar a hora da barra. Aparentemente, precisamos cavar mais fundo aqui, para passar para os segundos no tempo de formação da barra

Leia a documentação cuidadosamente. Preste atenção à sobrecarga da função.

Por que você está tomando o número de barras de vez em quando? De tempos em tempos, escrevo para você.

int  CopyRates( 
   string           symbol_name,       // имя символа 
   ENUM_TIMEFRAMES  timeframe,         // период 
   datetime         start_time,        // с какой даты 
   datetime         stop_time,         // по какую дату 
   MqlRates         rates_array[]      // массив, куда будут скопированы данные 
   );

De que data para que data, não apenas data, mas data_tempo. Então, leve do tempo aberto do bar menos 2*PeríodoSegundos(PERÍODO_M15) para o tempo do próximo bar H4

 
Alexey Viktorov:

Leia a documentação cuidadosamente. Preste atenção à sobrecarga da função.

Por que você está tomando o número de barras de vez em quando? De tempos em tempos, escrevo para você.

De que data para que data, não apenas data, mas data_tempo. Você precisa levar do tempo de abertura do bar menos 2*PeríodoSegundos(PERÍODO_M15) para o tempo do próximo bar H4

Eu tenho o jeito... Converti o tempo necessário "de que data" e "até que data" em segundos e estou seguindo-o... E por que exatamente 2*PeriodoSegundos(PERÍODO_M15)? 900 segundos é suficiente para mim, ou seja, uma barra em M15. Muito obrigado!!!

 
Evgeniy Butakov:

Eu descobri... Eu converti o tempo necessário "de que data" e "até que data" para segundos e estou dançando a partir deles... E por que exatamente 2*PeriodoSegundos(PERÍODO_M15)? 900 segundos é suficiente para mim, ou seja, uma barra em M15. Muito obrigado!!!

Com base neste desejo

Evgeniy Butakov:

Boa tarde!

Pela segunda vez, com minha tarefa de calcular dentro da barra de armação superior (H4) às custas das barras de armação inferior. Eu entendi como obter os dados sobre a M15 no bar da H4. Mas eu fiquei preso neste ponto. Por exemplo, eu recolho dados da M15 TF na terceira vela H4 e, como resultado, processo todas as 16 velas dentro da terceira barra. Mas como conseguir mais barras na M15, além dessas 16, porque elas já serão da 4ª vela na H4? Por favor, me guie, me dê uma dica.

Para recuperar dados da M15 usa o seguinte código:

Se você precisar de uma barra, simplesmente não se multiplique e pronto.

E mais uma dica grátis: desista de segundos. O que é mais claro ao ler o código de outra pessoa ou seu próprio código após algum tempo 1800 ou 2*PeriodoSegundos(PERÍODO_M15) o que significa 2 barras de período M15 expressas em segundos. E o que será uma semana ou um mês em segundos? Devo recalcular cada vez ou entupir minhas células de memória com informações desnecessárias?

 
Alexey Viktorov:

Com base neste desejo.

Se você precisar de uma barra, simplesmente não se multiplique e pronto.

E mais uma dica grátis: Deixe de lado com os segundos. O que é mais claro ao ler o código de outra pessoa ou seu próprio código após algum tempo 1800 ou 2*PeriodoSegundos(PERÍODO_M15) o que significa 2 barras de período M15 expressas em segundos. E o que será uma semana ou um mês em segundos? Devo recalcular cada vez ou entupir minhas células de memória com informações desnecessárias?

Sim, Alexey, obrigado pela orientação e direção. Eu esqueci completamente a função PeriodSeconds ;).
 
int file = FileOpen("expert_file", FILE_WRITE | FILE_BIN);
   if (file != INVALID_HANDLE){
      uint file_bytes = FileWriteArray(file, file_data);
      FileClose(file);
      Print("Bytes count: ", file_bytes);
      Print("Error: ", GetLastError());
   } else{
      return false;  
   }    

Tentando escrever um conjunto de bytes em um arquivo.

Log

O arquivo em si.

Ou seja, o programa retorna que escreveu 186368 bytes no arquivo, mas o arquivo em si está completamente vazio. E não há erro.

 

Hi.

Há um problema. Foi feito um depósito de, digamos, 1k para uma conta de corretagem. Então este depósito foi reabastecido com mais 5k. Como resultado no relatório "histórico" do MT5, o 1k inicial é mostrado como um depósito e a reposição é mostrada como um lucro, e naturalmente todos os resultados comerciais estão ultrapassando os limites.


Pergunta: Posso definir manualmente o tamanho do saldo comercial inicial, a partir do qual se deve calcular o lucro?


Obrigado de antemão ^^

 
MQL_User:

Há alguma maneira de determinar a partir do OnChartEvent se uma tecla foi pressionada no teclado quando o mouse clicou sobre o gráfico?

Há uma função chamada GetAsyncKeyState. Ele pode ser usado no código?

Eu tentei uma construção assim:

#importar "user32.dll"
int GetAsyncKeyState(int a0);
#importar

printf("--"+(GetAsyncKeyState(88)));

Mas o carregamento de DLL não é permitido.

Assinalei a caixa "Permitir a importação de DLL" no início. Não ajudou.
 
Talvez eu esteja no fio errado. Que os deuses me perdoem Mcl!!! Preciso escrever um indicador, o que daria um sinal a partir de uma combinação de quatro ou cinco indicadores.definido no porão.Talvez haja um modelo. Ou um conselheiro já pronto. Possível conselho por favor!!!!!!!!!!
 
Como posso adicionar um consultor especializado a uma pasta mql5 e para que ela apareça na seção de consultores?