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

 
leonerd:


Como passar por todos os IDs de gráficos no terminal? o ID_do_cartão_actual no meu código é 1662429437, o_id_do_cartão é 1859831371. ChartNext() já retorna -1. O que é ChartFirst()?

O que isso significa primeiro? Aberto primeiro? Por que sua identificação é maior do que a do gráfico atual (aberto mais tarde, a propósito)?

Aparentemente, é por causa de uma longa -> conversão int.

 
Artyom Trishkin:

Obrigado, sim, costumava ser assim.

 
Quem sabe como criar para enquanto se faz loops etc. Eu gostaria de criar um loop usando minha tecnologia, o que eu posso aprender?
 
leonerd:

Aparentemente, é por causa da longa -> conversão int.

não existe tal lógica, veja o exemplo da ajudahttps://www.mql5.com/ru/docs/chart_operations/chartnext

Os números de identificação dos gráficos não têm lógica em sua formação, talvez sejam alças do Windows ou alguns outros números, para ver todos os IDs dos gráficos no terminal, o exemplo da ajuda é suficiente, afixei no indicador kodobase que constrói o segundo TF, usei um exemplo da ajuda - tudo funciona como um relógio - encontro meu gráfico personalizado - lembro-me de seu ID de gráfico e gero ticks nele


Seric29:
Quem sabe como são criados loops para enquanto etc. Eu gostaria de criar um loop usando minha tecnologia, o que eu posso aprender?

hmm, veja sua pergunta por alguns dias, que resposta você quer ouvir? - são operadores de linguagem, eles trabalham conforme definido pelos desenvolvedores, conforme especificado na ajuda. em nenhuma linguagem de programação são operadores de linguagem descritos "como eles são" - operadores de linguagem são sempre "fornecidos como são" - nem mais nem menos

aqui estão os operadores da linguagem MQL4https://docs.mql4.com/ru/basis/operators- eles são "exatamente assim" - esta éa base de qualquer linguagem de programação

 
Igor Makanu:

hmm, vários dias eu vejo sua pergunta, e que resposta você quer ouvir? - são operadores de linguagem, funcionam como definidos pelos desenvolvedores, o que é indicado na ajuda, os operadores de linguagem não são descritos "como dispostos" em qualquer linguagem de programação - os operadores de linguagem são sempre "fornecidos como estão" - nem mais nem menos

aqui estão os operadores da linguagem MQL4https://docs.mql4.com/ru/basis/operators- eles são "exatamente assim" - esta é a base de qualquer linguagem de programação

Portanto, é ruim que eles não sejam descritos que metade das informações necessárias esteja escondida. Estou interessado em como eles são estruturados. Eu quero criar meus próprios loops, e como se viu existem pelo menos 3 loops em mql que existem em c++ e pascal, e estes loops também poderiam facilitar o trabalho para reduzir o número de verificações e inicialização de bandeiras e variáveis desnecessárias, mas eu quero criar meus próprios loops, mas eu não consigo entender como estas iterações ocorrem, como é feito em qualquer bloco de código, você pode escrever um loop e abrir chaves, que também contêm código. Caras muito interessantes se alguém quiser o que escrever plz.

 
Seric29:

Além disso, como se viu, o mql tem pelo menos 3 loops que estão em c++ e pascal

Eu estudei tanto Pascal quanto C++ na universidade e ainda lá estou:

C++ : para , enquanto , faz...enquanto

Pascal : para , enquanto , repita

MQL: para , enquanto , faz...enquanto

????


Seric29:

Portanto, é ruim que eles não sejam descritos e metade das informações necessárias esteja escondida. Como será que eles funcionam?

Eu nem sei como explicar o absurdo de sua pergunta, mas vou tentar de qualquer forma:

Você: - "Estou estudando russo e preciso saber como funciona o alfabeto".

Eu: "O alfabeto não tem estrutura, são apenas letras e elas formam palavras"(na MQL há cerca de uma dúzia de operadores e eles formam o programa)https://docs.mql4.com/ru/basis/operators

Você: "nem pensar! Eu sei que as letras do alfabeto em zimbabuense significam muitas coisas"!

Eu: "Infelizmente, eu não conheço o idioma, mas em russo uma carta significa apenas que é uma carta, é claro que você pode fazer uma análise fonética, mas isso não impedirá que uma carta seja um elemento elementar da palavra.

Você diz: "Hmm, estranho, mas no Zimbábue, se você diz 'a' é uma carta, e se você diz 'A' significa paz para sua casa, e se você diz 'aaaaaaaah! - significa que eu tenho a maior vontade"! - não há como não ver como as cartas são arranjadas na língua russa! - há tecnologia oculta ali....


Bem, isso é sobre como eu vejo nosso diálogo, desculpe pelo meu inglês - eu não posso fazer de outra forma

)))

 
Igor Makanu:

não existe tal lógica ali, veja o exemplo de ajudahttps://www.mql5.com/ru/docs/chart_operations/chartnext

Os números de identificação dos gráficos não têm lógica em sua formação, talvez sejam alças do Windows ou alguns outros números. Para procurar todos os números de identificação dos gráficos no terminal, o exemplo da ajuda é suficiente, eu usei um indicador para construir sec-tFs em kodobase.

ChartFirst() retorna o menor ID do gráfico aberto?

 
leonerd:

ChartFirst() retorna a menor identificação dos gráficos abertos?

novamente não! - o valor numérico de ChartFirst() não faz sentido

PZS: ...... pode estar errado, mas li em algum lugar que ChartFirst() retorna o ID do gráfico que foi aberto primeiro, não aquele que está primeiro em sua seqüência gráfica (você pode movê-lo), mas aquele que foi aberto primeiro no terminal do cliente - bem, não tenho certeza se estou certo sobre isso


ChartFirst() lhe dá um ponto de partida a partir do qual você pode percorrer os gráficos com ChartNext(). Parece assim: obter o primeiro ID ChartFirst() - memorizar o valor e transmitir este valor para ChartNext() - e assim por diante, até que o primeiro valor ChartFirst() seja repetido - o que significa que você percorreu todos os gráficos possíveis,

aqui está o código do meu indicador em KB - encontrei-o na ajuda, verifiquei-o e usei-o para encontrar meu gráfico:

//+------------------------------------------------------------------+
//| поиск  идентификатора графика                                    |
//+------------------------------------------------------------------+
long CheckChart(string sym,int period,int &wh)
  {
   long result=0,id=ChartFirst();
   while(id>=0)
     {
      if(ChartSymbol(id)==sym && ChartPeriod(id)==period && ChartGetInteger(id,CHART_IS_OFFLINE))
        {
         result=id;
         ChartSetInteger(id,CHART_AUTOSCROLL,true);
         ChartSetInteger(id,CHART_SHIFT,true);
         ChartNavigate(id,CHART_END);
         ChartRedraw(id);
         wh=WindowHandle(sym,period);
         PrintFormat("Найдено окно графика: [%s,%d]",sym,period);
         break;
        }
      id=ChartNext(id);
     }
   return(result);
  }
//+------------------------------------------------------------------+
 
Igor Makanu:

novamente não! - O valor numérico de ChartFirst() não faz sentido

SZY: ...... pode estar errado, mas li em algum lugar que ChartFirst() retorna o ID do gráfico que foi aberto primeiro, não o primeiro gráfico em sua seqüência de gráficos (você pode movê-lo), mas o que foi aberto primeiro no terminal do cliente - em geral, não tenho certeza se estou certo sobre isso


ChartFirst() lhe dá um ponto de partida a partir do qual você pode percorrer os gráficos com ChartNext(). Parece assim: obter o primeiro ID ChartFirst() - memorizar o valor e transmitir este valor para ChartNext() - e assim por diante, até que o primeiro valor ChartFirst() seja repetido- o que significa que você percorreu todos os gráficos possíveis,

aqui está o código do meu indicador em KB - encontrei-o na ajuda, verifiquei-o e usei-o para encontrar meu gráfico:

Estranho. Não diz nada em ajuda sobre "até que o primeiro valor ChartFirst() seja repetido". No final da lista de gráficos, ele retorna -1

Valor retornado

O identificador do gráfico. Se a lista de gráficos tiver terminado, a função retorna -1.

Документация по MQL5: Операции с графиками / ChartNext
Документация по MQL5: Операции с графиками / ChartNext
  • www.mql5.com
Операции с графиками / ChartNext - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:

Estranho. A ajuda não diz nada sobre "até que o primeiro valor ChartFirst() seja repetido". Quando a lista de gráficos termina, ela retorna -1

Desculpe - sou um pecador! Não li, estava bêbado quando escrevi neste fórum!

Razão: