Aprender e escrever juntos em MQL5 - página 37

 
Dimka-novitsek:
Obrigado! O preço actual da oferta e oferta é zero. Bilhete de Negócio . Encomenda de bilhetes. Certo, ali está o pai.
Qual é o retcode? O que significa?
 

Obrigado!!! Vou dar uma vista de olhos ao código retcode !

OBRIGADO!!!! Consegui! Em lado nenhum sem si.

 

Olá.

Encontrei este problema, que não compreendo de todo. Pode explicar porque é que neste caso o NormalizeDouble() nem sempre funciona?

   for ( x = .... ) {
      close = tf_rates[x].close;
      close = NormalizeDouble(close, 4 );
   }

Estou a adicionar preços e outros dadosa arquivar para o período de tempo actual. Cerca de 10% de todas as entradas são cordas como:

1971.01.07,00:00,0.5368000000000001,0.5368000000000001,0.5368000000000001,0.5368000000000001,1

O resultado é independente da ordem de normalização, eu substituo 1, 2, 3, 4, 5, Dígitos - tudo na mesma. Onde está o problema?

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
wtvirtual:

Olá.

Encontrei este problema, que não compreendo de todo. Pode explicar porque é que neste caso o NormalizeDouble() nem sempre funciona?

Estou a adicionar preços e outros dadosa arquivar para o período de tempo actual. Cerca de 10% de todas as entradas são cordas como:

1971.01.07,00:00,0.5368000000000001,0.5368000000000001,0.5368000000000001,0.5368000000000001,1

O resultado é independente da ordem de normalização, eu substituo 1, 2, 3, 4, 5, Dígitos - tudo na mesma. Onde está o problema?

Não há emboscada. É este o aspecto de alguns valores normalizados. ver a secção do Manual de Referência sobre esta função.
 
Yedelkin:
Não há emboscada. É este o aspecto de alguns valores normalizados. ver a secção do Manual de Referência sobre esta função.
Bem, no Manual de Referência há uma nota apenas sobre a produção com impressão. Vamos supor que não só esta função, mas todas as outras também "normalizam". Então, como devemos exibir este valor como preços numa ordem pendente?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
wtvirtual:
Bem, no manual há uma observação apenas sobre a produção com impressão.

Então, que função usa para produzir estes valores normalizados? :) - Ah, já percebi. Leitura a partir de um ficheiro. No exemplo do Manual de Referência, a função Print() imprime simplesmente o número "tal como está".

wtvirtual:
Suponha-se que não só esta função, mas todas as outras também "normalizam". E como devemos então enviar esse valor sob a forma de preços para uma encomenda pendente?

E é exactamente assim que deve ser apresentado. O que é necessário para a encomenda? - Preços normalizados. Por isso, normalizamo-los e passamos. E não é nosso problema saber como são estes preços normalizados quando são impressos).

Além disso, se produzir "preços para o prazo actual", significa que estes mesmos preços com um grande número de casas decimais são aceitáveis como preços normalizados no servidor. ...Esta é mais ou menos a minha conclusão, mas não consigo encontrar nenhum contra-argumento.

 
wtvirtual:

Olá.

Encontrei este problema, que não compreendo de todo. Pode explicar porque é que neste caso o NormalizeDouble() nem sempre funciona?

Estou a adicionar preços e outros dadosa arquivar para o período de tempo actual. Cerca de 10% de todas as entradas são cordas como:

1971.01.07,00:00,0.5368000000000001,0.5368000000000001,0.5368000000000001,0.5368000000000001,1

O resultado é independente da ordem de normalização, eu substituo 1, 2, 3, 4, 5, Dígitos - tudo na mesma. Onde está o problema?

Pode explicar desta forma, tente escrever o número 1/3 em forma decimal - não vai funcionar (papel, pasta e vida insuficiente).
Mais cedo ou mais tarde, aceitará uma pequena imprecisão e arredondará o valor.
O mesmo acontece com números reais escritos em formato binário (tal como apresentados pelo computador).
Se não for possível representar o número com uma mantissa de 52 bits (por exemplo 0,53680), há uma "ligeira" imprecisão...
 

Olá, poderia dizer-me como declarar correctamente uma variável como um tipo? Aqui está um exemplo de convenção de nomes de funções.

string OrderType() {
fio Si=";
POSITION_TYPE Tipo; bool Bull=false;
Bull =PositionGetInteger(POSITION_TYPE,Type);
se ( Touro ) {
se ( Type==POSITION_TYPE_BUY) Si="OP_BUY";
if ( Tipo==POSIÇÃO_TIPO_SELL) Si="OP_SELL";
retorno (Si); }

ORDER_TYPE ORType;
Bull =OrderGetInteger(ORDER_TYPE,ORType);
se ( Touro ) {
se ( Type===ORDER_TYPE_TYPE_BUY_LIMIT ) Si = OP_BUY_LIMIT
se ( Type===ORDER_TYPE_SELL_LIMIT) Si="OP_SELLL_LIMIT";
se ( Type===ORDER_TYPE_TYPE_BUY_STOP) Si="OP_BUY_STOP";
se ( Type===ORDER_TYPE_SELL_STOP) Si="OP_SELLL_STOP";
retorno (Si); }

}

Talvez haja algo de errado com ele, por exemplo, não tentei obter os valores das funções PositionGetInteger e OrderGetInteger desta forma.

 
Dimka-novitsek:

Boa tarde! Poderia dizer-me como declarar correctamente uma variável como um tipo? Aqui está uma sobreposição de funções de amostra.

Talvez haja algo de errado com isto, por exemplo, não tentei obter os valores das funções PositionGetInteger e OrderGetInteger desta forma.

De que variável estamos a falar?
 
POSITION_TYPE Tipo Oh o meu computador está a abrandar, demorei quase 40 segundos a colocá-lo!