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

 
Sergey Likho:

Obrigado.

Pode dizer-me por que razão OBJ_EDIT pode não ser afixado no gráfico real?

Provavelmente, a encadernação de objectos é colocada incorrectamente, e estes foram para além da borda da janela.

É melhor especificar a ligação não 0,1,2 como está no mt4, masENUM_BASE_CORNER

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Угол привязки
  • www.mql5.com
Существует ряд графических объектов, для которых можно задавать угол графика, относительно которого указываются координаты в пикселях. Это следующие типы объектов (в скобках указаны идентификаторы типа объекта): – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты вычисляются только...
 

Por favor ajudem-me a resolver o problema, o código funciona em cada tick, por isso preciso da solução mais fácil.

O problema: Há uma pilha de posições fechadas na história, e desta pilha precisamos de extrair o tamanho do lucro, que era na altura do último fecho, as posições podem ser de 1 a 100 (grelha).

Em regra, não são fechados ao mesmo tempo, mas a diferença de tempo entre abertura e fecho não excede 2 minutos (mt4).

Se expandir um laço ou uma matriz, tudo funciona, mas não pode expandir nada, tem de procurar de menos para mais

//+------------------------------------------------------------------+
#property strict

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  datetime tm=0;
  datetime pos[5]={D'2018.04.04 10:07:55',
                   D'2018.04.04 10:08:19',
                   D'2018.04.04 12:08:43',
                   D'2018.04.04 12:08:43',
                   D'2018.04.04 12:08:59'
                  };
  
   for(int i=0; i<5; i++) {
    datetime date=pos[i];
    // ... ld = date;
    // Здесь много кода, и цикл/массив разворачивать нельзя
    // ...
    // 120 секунд разницы между закрытием первой и последней в сетке
    if((tm <= date && date <= tm+120) || tm==0) {
      tm = date;
      Print(i,"=",date); // Ожидаемый результат: 2018.04.04 12:08:59, 2018.04.04 12:08:43, 2018.04.04 12:08:43
    }

   }
    Print("");
    Sleep(10000);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

Por favor, ajude-me a resolver o problema, o código corre em cada tick, por isso preciso da solução mais fácil

Porque é a data como texto?? Isto é muito improdutivo.

 
Vitaly Muzichenko:

Por favor, ajude-me a resolver o problema, o código funciona em cada tick, por isso é necessária a solução mais fácil

  datetime pos[5]={D'2018.04.04 10:07:55',
                   D'2018.04.04 10:08:19',
                   D'2018.04.04 12:08:43',
                   D'2018.04.04 12:08:43',
                   D'2018.04.04 12:08:59'
                  };
 
Vladimir Karputov:

Porque é que a data tem a forma de texto? É muito improdutivo.

Isto é apenas um exemplo, no código tudo é normalmente montado numa matriz

P.S. Actualização do post anterior

P.S. A questão está resolvida, vou expandir a matriz e refazer o trabalho do código principal

 

Caros utilizadores do fórum, poderiam dizer-me como desenhar um segmento vertical entre barras sem utilizar uma etiqueta rectangular(OBJ_RECTANGLE_LABEL)? Infelizmente, ainda não encontrei uma resposta a esta pergunta. Se houver algo que eu não tenha lido na documentação ou no fórum, por favor indique onde. Obrigado.

 
MrVIS:

Caros utilizadores do fórum, poderiam dizer-me como desenhar um segmento vertical entre barras sem utilizar uma etiqueta rectangular(OBJ_RECTANGLE_LABEL)? Infelizmente, ainda não encontrei uma resposta a esta pergunta. Se houver algo que eu não tenha lido na documentação ou no fórum, por favor indique onde. Obrigado.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
  • www.mql5.com
//| Создает линию тренда по заданным координатам                     |               time1=0,                            price1=0,                         time2=0,                            price2=0,                        width=1,            //| Перемещает точку привязки линии тренда                           | //
 
FelixFX:
Compreendo que se pode aprender tudo com a ajuda de artigos, gestos e expressões faciais, mas com um livro de texto, por exemplo, passa-se um mês de aprendizagem (sem prática), e outras formas de passar seis meses + prática. Nem todos podem passar todo o seu tempo livre a aprender uma linguagem de programação.

Nem por isso?! e, pelo contrário. Por exemplo, julgo pelo passado: tive um professor de matemática, expliquei tudo de tal forma na aula que não aprendi um único teorema, mas os testes ministeriais escreveram em 15 minutos e durante 5; no oitavo ano fui transferido para outro professor e todos - toda a turma ficou imediatamente estupefacta. É o mesmo com os livros, se eu, ou alguém como eu, os escrever, então o seu tempo de aprendizagem será muito longo. E foi-lhe dito com base no seu desejo de que tudo lhe caia em cima e na rapidez com que será capaz de absorver o material. Depois aprenderá vagueando pelos autores e terá alguma experiência e poderá ver quem e o que está a reter. Se lhe ensinarem a manejar um garfo e nunca lhe mostrarem uma colher, estará a comer sopa durante muito tempo. E prefere morrer à fome do que comê-lo. Por isso, vão para as minas, e nada de sapadores.

 
MrVIS:

Caros utilizadores do fórum, poderiam dizer-me como desenhar um segmento vertical entre barras sem utilizar uma etiqueta rectangular(OBJ_RECTANGLE_LABEL)? Infelizmente, ainda não encontrei uma resposta a esta pergunta. Se houver algo que eu não tenha lido na documentação ou no fórum, por favor indique onde. Obrigado.

É bastante simples.

Opção 1: Traça-se uma linha horizontal e roda-se o monitor 90° no sentido horário ou anti-horário.

Opção 2. Rodar a posição do MT de modo a que o gráfico seja traçado de baixo para cima.

Opção 3.

A imaginação está quebrada.

 
Alexey Viktorov:

Tão simples quanto isso.

Opção 1: Traçar uma linha horizontal e rodar o monitor 90° no sentido horário ou anti-horário.

Opção 2. Rodar a posição do MT de modo a que o gráfico seja traçado de baixo para cima.

Opção 3. ... ...

A imaginação está quebrada.

Aqui está uma dica: Tela
Razão: