Erros, bugs, perguntas - página 1380
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
O pedido foi criado, mas ninguém olhou para ele em mais de três dias.
Qual é o número de candidatura?
O tema perene dos dubs =)
Peço aos criadores que acrescentem duas características padrão.
Sugiro a seguinte especificação:
====
Rp
A função retorna o valor a ser alinhado com a etapa de preço do instrumento.
duplo Rp(
nome_símbolo decadeia, // nome do símbolo
duplovalor// preço a alinhar
);
Parâmetros
símbolo_nome
[em] Símbolo.
valor
[em] Número positivo.
Valor devolvido
Onúmero mais próximo arredondado ao preço do instrumento comercial.
...
Exemplo:
Valores de entrada:
símbolo_nome = ES-...
valor = 2000.55
produção = 2000.50
(preço por instrumento ES = 0,25)Valores de entrada:
símbolo_nome = SPX
valor = 2000.55
produção = 2000.63
(no SPX a etapa de preço é também 0,25, como no ES, mas há um offset de base e a cotação pode ter apenas as seguintes partes fracionárias -- 13,38,63,88)
Valores de entrada:
símbolo_nome = RTS
valor = 82055,55
saída = 82060
(preço por instrumento RTS = 10)
...e assim por diante.
A segunda função, que me interessa ainda mais:
====
Rv
A função retorna um valor que será alinhado com o passo de volume do instrumento e estará na gama de SYMBOL_VOLUME_MIN a SYMBOL_VOLUME_MAX.
duplo Rv(
nome_símbolo decadeia, // nome do símbolo
duplovalor// lote a alinhar
);
Parâmetros
símbolo_nome
[em] Símbolo.
valor
[em] Número positivo.
Valor devolvido
Número mais próximo arredondado para o passo de volume doinstrumento comercial. O número não será maior que SYMBOL_VOLUME_MAX ou menor que SYMBOL_VOLUME_MIN.
...
======
A principal propriedade que espero destas funções é que elas sejam válidas para TODOS OS INSTRUMENTOS DE TRADUÇÃO NO MUNDO e PARA QUALQUER INTRODUÇÃO.
Se alguém tiver uma solução pronta, por favor partilhe, desde que os criadores a tenham.
Estranho que ainda não exista =/
Resolvendo o problema a partir do vosso comentário, fiz uma função mais estúpida e desajeitada, mas mesmo assim falha para muitos valores de entrada.
Código de função:
A questão é que mudei estupidamente todo o incómodo de determinar a parte significativa do número fracionário para o método que o compilador insere em vez de operador =(string).
Mas acontece que, desta forma, o código formata a corda quase como o tipo g da printf(), ou seja, para fracções longas, a corda imprime num formato científico.
Como posso obter a saída para um fio para qualquer n sem formato exponencial e sem dígitos extra à direita, e sem aborrecimentos =)?
E outra questão: é sempre uma fracção decimal separada por um ponto ou por defeito das definições do sistema pode ser uma vírgula ou outra coisa qualquer?
Resolvendo o problema a partir do vosso comentário, fiz uma função mais estúpida e desajeitada, mas mesmo assim falha para muitos valores de entrada.
Código de função:
A questão é que mudei estupidamente todo o incómodo de determinar a parte significativa do número fracionário para o método que o compilador insere em vez de operador =(string).
Mas acontece que, desta forma, o código formata a corda quase como o tipo g da printf(), ou seja, para fracções longas, a corda imprime num formato científico.
Como posso obter a saída para um fio para qualquer n sem formato exponencial e sem dígitos extra à direita, e sem aborrecimentos =)?
E outra questão: é sempre uma fracção decimal separada por um ponto ou por defeito das definições do sistema pode ser uma vírgula ou outra coisa qualquer?
E o que é que não gosta em Point(), Digits?
Pelo menos tem DigitsLot(), que devolverá a precisão do passo do volume.
Talvez eu não tenha percebido a sua dica. Existe alguma forma sensata de obter o que se procura através de Point() ou Digits()?
Ainda assim, precisam realmente dessas duas funções que descrevi acima (equalizadores válidos para o preço e para o lote).
Compreendo que em cozinhas forex o volume é mais frequentemente aceite em incrementos de 0,01, e ninguém quer saber o que vai acontecer amanhã, mas o terminal está a desenvolver-se.
Há cada vez mais ferramentas. Todos os dispositivos caseiros que não permitem o aumento do lote inteiro já não funcionam. Quem diz que não haverá o lote mínimo, digamos, um quarto? Não há muitas variantes.
Esta solução deve ser absoluta (para todos os valores) ou não pode ser confiável.
E sobre a citação. Quando se envia um pedido, o servidor aceita preços que nem sequer são, nem sequer para os normalizar (cortá-los em caracteres), mas existem outras tarefas.
Concorda que devemos ser capazes de obter uma citação real possível para qualquer símbolo, mas não para um símbolo aparado.
Resolvendo o problema a partir do vosso comentário, fiz uma função mais estúpida e desajeitada, mas mesmo assim falha para muitos valores de entrada.
Código de função:
...Não pensem que sou tão tolo, tão teimosamente a fazer um fio de um número por causa de um problema puramente matemático.
No início tentei fazê-lo através do logaritmo, mas acabou por se revelar uma falha ao ponto de não haver retorno =(
A corrigir-me a mim próprio. Este parece funcionar:
Não pense que sou demasiado estúpido para fazer um fio de um número por um problema puramente matemático.
No início tentei honestamente fazê-lo através do logaritmo, mas acabou por se revelar uma falha como o inferno =(
Só por precaução, porque não gosta de NormalizeDouble()_Ponto _Dígitos ?????????
Porque é que se faz uma bicicleta?
Só por precaução, o que há de errado com NormalizeDouble() _Ponto _Dígitos ?????????
Porque é que está a criar uma bicicleta?
Responderei a isto mais uma vez, só por precaução. Por favor explique-me como descobrir a precisão de SYMBOL_VOLUME_STEP usando "NormalizeDouble() _Point _Digits"?
Ou como obter um múltiplo de valor de SYMBOL_VOLUME_STEP a partir de qualquer número positivo?
Como obter o seguinte resultado:
2000.55 (Símbolo do ES) -----> 2000.50
2000.55 (símbolo SPX) -----> 2000.63
1055.5555 (Símbolo RTS) ------> 1060
para qualquer símbolo no mundo que esteja disponível no terminal MT5 hoje (e de preferência amanhã)
"????????"
Os criadores podem acrescentar apenas 2 funções e modificá-las à medida que o terminal se desenvolve, e eu não conheço todas as peculiaridades dos diferentes instrumentos comerciais. Onde posso descobrir que citações existem mesmo? E eu preciso de uma citação, não do resultado de NormalizeDouble().
Se esta bicicleta já anda por aí - picar uma implementação específica, agradecia que o fizesse. O que já me encontrei não funciona em alguns símbolos neste momento.
...
2000.55 (Símbolo do ES) -----> 2000.50
2000.55 (símbolo SPX) -----> 2000.63
1055.5555 (símbolo RTS) ------> 1060
...