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
Por alguma razão não consigo obter o lucro da conta corrente na função OnTester
É assim que eu recebo 0
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_PROFIT));
}
E é assim que eu obtenho lucro:
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);
}
Sobre o que estamos a discutir? w0 não colocar
PS É obrigatório que haja uma mensagem (talvez algumas linhas abaixo)
Glória eu concordo - todos estes argumentos são tão demorados, que os lixem ( argumentos ). :)
Mas assim, o que se chama na perna - você, tenho a certeza, sabe tudo perfeitamente bem, mas mesmo assim, se esta função é externa e declarada apenas através de declaração, existem modificadores tais como "const" e "dentro" e "fora". E talvez haja uma falha nesta função. A questão é - se for um parâmetro retornável, então no caso de não ser retornado (no caso de ser retornado via "retorno") é dado um aviso e tendo uma segunda forma de função, quando um valor retornável é retornado via parâmetro, também deve ser dado um aviso, porque é um valor retornável. Caso contrário, se o resultado do sucesso/falha fosse devolvido através de um parâmetro e o próprio valor fosse devolvido através de retorno, seria impossível. E o sucesso ou nenhum sucesso é também SEMPRE devolvido. Por outras palavras - ( http://users.telenet.be/bart.demeyere/C++InOutParameters.html ) aqui está uma solução que já existe há muito tempo.
Mas a conversa em geral, uma vez que não notei nada sobre isso. IMHO, precisa de responder a tais perguntas, se não pretende alterar nada cardinal na implementação actual algo como isto :) - "Sim, existe tal problema, ele será resolvido nas próximas versões do programa, agora já corrigimos o código, e só estamos a corrigir erros". Ninguém ( penso que mesmo o mais inadequado ) ficará ofendido, mas a simples resolução do problema em si é importante e necessária.
Assim, quer haja ou não nesta versão tais ( MUITO ) modificadores úteis para fora e outros, eles permitem minimizar significativamente os erros.
***
Demorará meio dia a fazer toda esta correspondência. Estou farto. :)
Por alguma razão não consigo obter o lucro da conta corrente na função OnTester
É assim que eu recebo 0
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_PROFIT));
}
E é assim que eu obtenho lucro:
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);
}
Declarar uma variável global e atribuir-lhe o valor do saldo actual no OnInit().
Em OnTester() calcular o lucro total com base nos resultados de todas as transacções concluídas:
e produzi-lo em OnTester().
E o que está a tentar obter agora é o lucro actual não fixo , que é zero se todas as posições estiverem fechadas.
Glória eu concordo - todos estes debates são tão demorados, não se preocupe com eles ( debates ). :)
Haverá nesta versão tais ( MUITO ) modificadores úteis para fora e outros, eles permitem minimizar erros.
"Sobre o que estamos a discutir"? - é uma frase da minha infância que significa "sobre o que é que estamos a discutir?
Passar um parâmetro por referência é exactamente o que significa inout. Há simplesmente implementações que estão para além do controlo do compilador.
De facto, é bastante fácil analisar o fluxo de execução através da introdução de funções (o exemplo Rashid fornecido). Recusámos deliberadamente esta abordagem. A própria razão era que isso iria aumentar significativamente o nosso tempo de compilação. É por isso que escolhemos a forma mais simples - exibir um aviso. É melhor não produzir um aviso deste tipo? Sim, deve. Se fizer uma inicialização explícita, não haverá qualquer aviso.
Repito também que temos uma estimativa resumida de expressões lógicas. Significa que, no seu caso, se o primeiro ObjectGetDouble retorna falso (por exemplo, porque o objecto, repara no exterior do programa, de repente não existe), o segundo ObjectGetDouble não será chamado
"Sobre o que estamos a discutir"? - é uma frase da minha infância que significa "sobre o que é que estamos a discutir?
Passar um parâmetro por referência é exactamente o que significa inout. Há simplesmente implementações que estão para além do controlo do compilador.
De facto, é bastante fácil analisar o fluxo de execução através da introdução de funções (o exemplo Rashid fornecido). Recusámos deliberadamente esta abordagem. A própria razão era que isso iria aumentar significativamente o nosso tempo de compilação. É por isso que escolhemos a forma mais simples - exibir um aviso. É melhor não produzir um aviso deste tipo? Sim, deve. Se fizer uma inicialização explícita, não haverá qualquer aviso.
Repito também que temos uma estimativa resumida de expressões lógicas. Significa que, no seu caso, se o primeiro ObjectGetDouble retorna falso (por exemplo, porque o objecto, repara no exterior do programa, subitamente não existe), o segundo ObjectGetDouble não será chamado
Certo, não será chamado - isto é um comportamento padrão em código C.
Os modificadores que entram e saem podem ser além das referências. E por defeito, estão sempre a entrar e a sair para referências. Mas posso passar uma referência com modificador, o que significa que o parâmetro desta função é sempre introduzido e não é possível escrever nela mesmo que seja passado por referência. Já leu ? http://users.telenet.be/bart.demeyere/C++InOutParameters.html
Existe um modificador constante. A passagem de uma referência constante pressupõe explicitamente a entrada do parâmetro sem qualquer saída. Definitivamente não introduziremos entidades adicionais dentro, fora, dentro e fora
Existe um modificador constante. A passagem de uma referência constante implica explicitamente um parâmetro in sem qualquer out. Definitivamente não introduziremos entidades adicionais dentro, fora, dentro e fora
Se não o fizer, não o fará. Mas deve compreender que não obterá então uma optimização decente. E se houvesse OUT nesse exemplo, o aviso não teria sido gerado. Mas tudo em vão - IMHO - demorará três minutos, mas há muito menos erros. E se não o quiser usar, não o use. Então tudo é como sempre é. Tal como agora. :)
Como se faz apenas OUT sem IN? O que significa que algo é sempre devolvido, sabe, como um retorno de função?
Desenvolvedores.
1. Presumo que o spread nos pares principais tenha sido martelado desde Maio de 1993, cerca de 930 bares semanais na altura actual?
E na história profunda, as barras foram construídas com base em dias.
Portanto, o Expert Advisor pode ser testado exactamente a partir de Maio de 1993 (se utilizarmos uma TF não inferior a D1)?
Podemos olhar mais fundo do que 9 de Maio de 1993 sobre o GBPUSD (como se fosse implementado no EURUSD)?Olá.
Pode explicar por que razão ao criar manualmente um objecto"Graphic Tag", este não tem o ficheiro bmp especificado para estados on/off?
Aqui está o código:
ObjectCreate(....);
.......
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "Images\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "Images\off.bmp");
A etiqueta é criada completamente correctamente, na posição especificada, com cores especificadas, etc., mas "Images\on.bmp" e "Images\off.bmp" não são especificadas. Se no gui MT5
clique na lista de objectos e defina estes ficheiros para o marcador manualmente, eles serão definidos. Mas porque é que a ObjectSetString não faz isso?
O que pensa?
O que pensa?
Experimente
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "\\Images\\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "\\Images\\off.bmp");
As alterações ao certificado serão em breve.