[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 607

 

cp não prestam atenção :) Vou dar uma olhada se houver alguma pergunta que eu baterei na porta 17

 
rigonich:


Não trabalhar com a barra zero, não há outra maneira.

P.S. Em geral, este é o principal problema com todas as estratégias de indicadores. Todos os indicadores se atrasam. Alguns são mais sensíveis e outros são menos sensíveis. Quanto mais sensível o indicador __, mais falsos positivos ele tem. Se a sensibilidade for baixa, ela perde a maior parte do movimento e, como resultado, o lucro diminui, se for alto, as perdas aumentarão devido a operações falsas. A fim de encontrar a "média dourada", a otimização dos parâmetros é realizada. A operação na barra de zero aumenta a sensibilidade do indicador não de forma gradual, mas acentuada, com tudo o que isso implica.


Mais uma vez, obrigado! Vou pensar e tentar...
 

Por favor, informe como fazer uma entrada no arquivo.

Enquanto o EA está em execução, ele calcula o valor de 4 variáveis cujos valores são armazenados na memória, e se o terminal não estiver sobrecarregado, tudo está bem. Entretanto, após reiniciar o terminal, ele perde esses valores e na primeira partida todos eles ==0 novamente.

O que eu preciso fazer é fazer com que na primeira inicialização ele leia os valores do arquivo e depois, se eles mudarem durante a operação, ele salve os novos valores de volta para o arquivo. E deve criar um arquivo com um nome único, talvez derivado de um par de moedas, porque há alguns Expert Advisors no terminal do cliente e os novos valores não devem interferir um com o outro.

O Expert Advisor foi feito por uma pessoa que atualmente não está disponível para mim, e a questão é importante porque o dinheiro real pode ser perdido. Posso dar-lhe um código onde estas variáveis são calculadas, se alguém me escrever imediatamente como escrevê-las em um arquivo.

 
rigonich:

Próximo fractal superior.

Obrigado pela resposta, mas eu quis dizer como saber se o fractal atual foi quebrado ou não antes que o fractal seguinte apareça.
 
xant:

Por favor, informe como fazer uma entrada no arquivo.

Enquanto o EA está em execução, ele calcula o valor de 4 variáveis cujos valores são armazenados na memória, e se o terminal não estiver sobrecarregado, tudo está bem. Entretanto, após reiniciar o terminal, ele perde esses valores e na primeira partida todos eles ==0 novamente.

O que eu preciso fazer é fazer com que na primeira inicialização ele leia os valores do arquivo e depois, se eles mudarem durante a operação, ele salve os novos valores de volta para o arquivo. E deve criar um arquivo com um nome único, talvez derivado de um par de moedas, porque há alguns Expert Advisors no terminal do cliente e os novos valores não devem interferir uns com os outros.

O Expert Advisor foi feito por uma pessoa que atualmente não está disponível para mim, e a questão é importante porque o dinheiro real pode ser perdido. Posso dar-lhe um código, onde estas variáveis são calculadas, se alguém me escrever imediatamente como escrevê-las em um arquivo.


Utilizam variáveis de terminal GlobalVariableEles guardam os valores quando o terminal é recarregado .

Escreva mais detalhes sobre como utilizá-los?
 
i999i:

Obrigado pela resposta, mas o que eu queria dizer era como saber se o fractal atual foi quebrado ou não antes que o fractal seguinte apareça.

O fractal anterior não pode ser quebrado antes que o fractal seguinte apareça na mesma direção. Por favor, leia Williams novamente. Ele detalha diferentes maneiras de trabalhar com os fractais.
 
rigonich:

O fractal anterior não pode ser quebrado quando o fractal seguinte aparece na mesma direção. Leia Williams novamente. Ele descreve em detalhes as diferentes formas de trabalhar com os fractais.

Eu ainda gostaria de saber como determinar se o preço estava acima do valor de um fractal desde o momento de sua ocorrência até o momento atual
 
i999i:

Eu ainda gostaria de saber como determinar se o preço estava acima do valor de um fractal desde o momento de sua aparição até o momento atual

int iHighest( símbolo de corda, int cronograma, int tipo, int count=WHOLE_ARRAY, int start=0)
Retorna o índice do valor mais alto encontrado (offset em relação à barra atual).
Parâmetros:
símbolo - Nome do símbolo, cujos dados serão pesquisados. NULL significa símbolo atual.
cronograma - Período. Pode ser um dos períodos de um gráfico. 0 indica o período do gráfico atual.
tipo - O identificador das séries temporais. Pode ser qualquer um dos identificadores da série cronológica.
contar - Número de elementos das séries temporais (na direção da barra atual para o índice ascendente), entre os quais a busca deve ser realizada.
início - O índice (offset a partir da barra atual) da barra inicial a partir da qual se iniciará a busca do valor mais alto. Os valores negativos são ignorados e substituídos por valores zero.
 

Olá a todos novamente.

Como fazer um atraso de tempo em uma EA antes de abrir um novo comércio após o final de um comércio anterior.

Isto é, o negócio terminou t/p e depois disso preciso esperar por exemplo 15 minutos e só então a fórmula continuará a funcionar:)

Encontrado

OrderCloseTime( )
Encontrei-o, mas como conectá-lo ao tempo de programação e evitar conflitos com a história da EA executada. Obrigado de antemão
 
Tragedy:

Olá a todos novamente.

Como fazer um atraso de tempo em uma EA antes de abrir um novo comércio após o final de um comércio anterior.

Isto é, o negócio terminou t/p e depois disso preciso esperar por exemplo 15 minutos e só então a fórmula continuará a funcionar:)

Encontrado

OrderCloseTime( )
Mas como ligar isto ao tempo do programa, e para que não haja conflito com a execução da EA através da história. Obrigado antecipadamente


https://www.mql5.com/ru/forum/131859

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество секунд после открытия последней позиций. |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
datetime SecondsAfterOpenLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество секунд после закрытия последней позиций. |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
datetime SecondsAfterCloseLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) t=OrderCloseTime();
            }
          }
        }
      }
    }
  }
  return(TimeCurrent()-t);
}
Razão: