[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 679

 


Caros programadores,
Por favor, responda a seguinte pergunta:

Saídas com 8 casas decimais. Por que não está normalizada?

double open_sss=NormalizeDouble(iOpen(Symbol(),PERIOD_M5,elapsed_bar),Digits);
Print("open_sss= "+open_sss);

http://savepic.ru/1435355.gif

 
Hedin:


Caros programadores,
por favor respondam a seguinte pergunta:

Saídas com 8 casas decimais. Por que não está normalizado?

http://savepic.ru/1435355.gif


Se estiver escrito na ajuda sobre a função NormalizeDouble() que ele arredonda para uma precisão especificada e retorna tipo duplo, você tem tudo certo, e se você precisar de uma seqüência de texto com precisão especificada após um ponto decimal, então você deve usar DoubleToStr()
 
IgorM:


Devo ter entendido mal o significado de int startH = Hora(); - dará ao servidor atual tempo - hora, eu procuraria por zero horas, ou qualquer outra hora:


Obrigado, agora funciona.

Mas porque não funcionou com a função Hora(), eu ainda não entendo.

Isso nos deu a hora atual da hora do norte. Por exemplo, que seja 5.

Portanto, quando chamamos abrir[i+5], obtemos o preço de abertura da vela que abriu no início do dia, ou seja, às 0:00 da manhã.

Por favor, explique o que exatamente eu não entendo...

 
webgreck:


Obrigado, agora funciona.

Eu ainda não entendo porque não funcionou com a função Hora().

Isso nos deu a hora atual da hora do norte. Por exemplo, que seja 5.

Portanto, quando chamamos abrir[i+5], obtemos o preço de abertura da vela que abriu no início do dia, ou seja, às 0:00 horas.

Por favor, explique o que exatamente eu não entendo...


O tempo do servidor é o tempo do servidor ( TimeCurrent() ), você o tem em seu PC ( TimeLocal(); ), a função Hora() :

"Retorna a hora atual (0,1,2,...23) do último horário conhecido do servidor no início do programa (este valor não muda durante a execução do programa ).Nota: o último horário conhecido do servidor é simulado durante os testes. "

Eu mesmo nem sei o que fazer com ele se não mudar - talvez seja necessário apenas para o testador.

 
webgreck:

Você pode me dizer o que eu fiz de errado?

Preciso encontrar o preço de abertura da primeira vela no gráfico horário, ou seja, aquela às 0:00 e desta vela à vela atual para encontrar o valor máximo do preço.

Por que eu sempre fico com o alto da primeira vela do dia atual?

É assim que eu faço:

Cicle no tempo[] e encontre a barra desejada, e depois, rode a partir dessa barra para encontrar um extremo.
 

Colegas, alguém sabe como fazer para que o testador não deduza comissão para uma profissão? Talvez haja um arquivo em MT4, onde o valor da comissão de um contrato para um determinado instrumento é especificado?

Deixe-me explicar para que eu preciso dele. Além das moedas, também estou interessado nos futuros do Uber e do Índice RTS. O Quick não é adequado para o desenvolvimento de robôs. Por exemplo, minha corretora tem uma comissão para um contrato - CFD sobre futuros no índice rts (como parece, mas ...:) - é uma barulheira ... custa 10 livros verdes. É por isso que mesmo um comércio com um lucro de 250p dá uma perda de US$ 1 dólar no testador. É inacreditável, eu tenho ferramentas e citações, mas é impossível testá-las e otimizá-las.

Socorro!

 
Blaid73:

Colegas, alguém sabe como fazer para que o testador não deduza comissão para uma profissão? Talvez haja um arquivo em MT4, onde o valor da comissão de um contrato para um determinado instrumento é especificado?

Deixe-me explicar para que eu preciso dele. Além das moedas, também estou interessado nos futuros do Uber e do Índice RTS. O Quick não é adequado para o desenvolvimento de robôs. Por exemplo, minha corretora tem uma comissão para um contrato - CFD sobre futuros no índice rts (como parece, mas ...:) - é uma barulheira ... custa 10 livros verdes. É por isso que mesmo um comércio com um lucro de 250p dá uma perda de US$ 1 dólar no testador. É inacreditável, eu tenho ferramentas e citações, mas é impossível testá-las e otimizá-las.

Socorro!


provavelmente o seguinte: https://www.mql5.com/ru/forum/119830

 

Por favor, informe como e o que você pode fazer para substituir o código para fazer a mesma coisa, mas trabalhar mais rápido:

if (BB_1>BB_2 && BB_2<=BB_3 && BB_1<0)                               // Найден разворот BB вверх
      {
      switch (tf)
         {
            case 1:     TrBBTurnUP_M1 =true;  TrBBTurnDN_M1=false;      // Флаг разворота вверх на М1
            case 5:     TrBBTurnUP_M5 =true;  TrBBTurnDN_M5=false;      // Флаг разворота вверх на М5
            case 15:    TrBBTurnUP_M15=true;  TrBBTurnDN_M15=false;     // Флаг разворота вверх на М15 
            case 30:    TrBBTurnUP_M30=true;  TrBBTurnDN_M30=false;     // Флаг разворота вверх на М30 
            case 60:    TrBBTurnUP_H1 =true;  TrBBTurnDN_H1=false;      // Флаг разворота вверх на H1
            case 240:   TrBBTurnUP_H4 =true;  TrBBTurnDN_H4=false;      // Флаг разворота вверх на H4
            case 1440:  TrBBTurnUP_D1 =true;  TrBBTurnDN_D1=false;      // Флаг разворота вверх на D1
            case 10080: TrBBTurnUP_W1 =true;  TrBBTurnDN_W1=false;      // Флаг разворота вверх на W1
            case 43200: TrBBTurnUP_MN =true;  TrBBTurnDN_MN=false;      // Флаг разворота вверх на MN
         }
      }

É apenas um pedaço de uma grande função, onde há muitas verificações desse tipo e isso afeta muito o desempenho. Já fiz aqui perguntas sobre otimização de código, mas não obtive respostas e não encontrei nada em busca... É realmente um segredo que ninguém sabe disso ou está disposto a compartilhá-lo? Pelo menos um link para um artigo... para ler a seu gosto... É impossível testá-lo completamente de qualquer maneira...

 
Como posso entrar em contato com você? Eu tenho muitas perguntas e gostaria de receber alguns conselhos.
 
artmedia70:

Por favor, informe como e o que você pode fazer para mudar o código para fazer a mesma coisa, mas trabalhar mais rápido: ...

Eu substituiria o interruptor por uma matriz pronta, por que atribuir valores pré-definidos toda vez?
Razão: