Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1052
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
Nota
A função Sleep() não pode ser chamada a partir de indicadores personalizados, pois os indicadores são executados na rosca de interface e não devem retardá-la. A função tem uma verificação incorporada do estado da bandeira de parada do especialista a cada 0,1 segundo. A função Sleep() no testador de estratégia não causa nenhum atraso.
Todos são tão inteligentes, que é assustador. Escrevi que o lapso foi ignorado no testador (que é claro), mas todas as posições estão abertas desde que eu as tenha especificado. Mas no talão de demonstração não funciona, e a posição é aberta apenas uma, e esta se fecha imediatamente. Este é o problema que não posso resolver.
Onde está seu código?
Talvez isto possa ajudar?
Como todos são inteligentes - apenas assustadores. Se você não sabe ler: escrevi que o deslize é ignorado no testador (que é claro), mas as posições estão todas abertas, como indicado. Mas no talão de demonstração não funciona, e a posição é aberta apenas uma, e esta se fecha imediatamente. Eu não posso resolver este problema.
Aparentemente esta não é a primeira vez que você foi rude, por isso ninguém responde. Embora você já tenha recebido uma resposta à sua segunda pergunta.
Mas você só poderia responder desta forma.
É claro que a oferta envelheceu, mas eu esperava que este projeto permitisse abrir várias posições no bar atual com preços de abertura de oferta diferentes. E funciona bem no testador, mas na demonstração ele abre uma posição e a fecha imediatamente. como evitá-la não está claro.
O que você esperava? Nós oferecemos uma solução. Você deve lê-lo com atenção.
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Sleep(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Sim, para determinar o número de casas decimais. Isto é necessário para normalizar o valor do lote se o lote for definido por alguma fórmula e o resultado pode ter mais casas decimais do que o permitido. Em alguns casos, você pode simplesmente colocar um duque, mas depois pode encontrar um erro, então é melhor defini-lo de forma programática.
Há outra maneira de fazer isso. Há duas maneiras de resolver este problema. Uma é converter número em string, definir o comprimento da string, encontrar índice de caractere de ponto e a diferença entre o comprimento da string e o índice de caractere de ponto será avaliada como parte fracionária do número. E no fórum mql5, você pode encontrar várias variantes, algumas mais finas, outras mais fáceis.
Aqui está mais uma das minhas variantes.
Esta função determina o número de casas decimais de absolutamente qualquer número.
O algoritmo é escandalosamente simples - considere quantas vezes o resíduo de divisão por 1 é maior que zero.
Eu não disse que meu caminho é melhor. Cada programador está escrevendo sua própria maneira de resolver o problema.
Um número do tipo duplo, mesmo que não tenha dígitos significativos na parte fracionária, parece 2,0, o que não é totalmente correto, e para obter um número inteiro normal é convertido implicitamente em int tipo.
Muito obrigado.
Mas por que (int) deveria ser colocado antes da expressão?
Muito obrigado.
Por que (int) é colocado na frente da expressão?
Posso abrir um gráfico em um Expert Advisor a partir do Open Offline Chart por seu nome? Eu olhei para ChartOpen() mas ele não funciona pelo nome.