Erros, bugs, perguntas - página 2301
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
Para um objecto de texto localizado em High[], o ponto de ancoragem (propriedade OBJPROP_ANCHOR) deve ser colocado em ANCHOR_LOWER (ponto de ancoragem no centro inferior).
Para um objecto de texto localizado em Low[], o ponto de ancoragem (propriedade OBJPROP_ANCHOR) deve ser colocado em ANCHOR_UPPER (ponto de ancoragem no centro superior).
Ou ANCHOR_CENTER para ambos os locais, o ponto de ancoragem está centrado.
Experimente-o.
Mas isso requer a criação de DOIS objectos nomeados, por exemplo, Hi e Lo (extremos superior e inferior de um ziguezague ou extremidades superior e inferior da tendência local real de subida ou descida) e ligá-los ambos ao gráfico com os valores correspondentes de ANCHOR_LOWER e ANCHOR_UPPER. Não seria mais fácil (de alguma forma) amarrar a parte superior do ZigZag - à parte inferior anteriormente "amarrada"? Foi mais ou menos o que fiz, acrescentando uma linha à função anterior
ObjectSetInteger(0,Obj,OBJPROP_ANCHOR,ANCHOR_CENTER); e introduzindo uma "correcção de offset" na linha de saída if(tvT) ORT(kBtT,Low[kBtT]-2*_Point,DtT,LowClr); //
Até agora parece estar a funcionar. Obrigado!
Mas isso requer a criação de DOIS objectos nomeados, por exemplo, Hi e Lo (extremos superior e inferior do ziguezague ou extremidades superior e inferior da tendência local real de subida ou descida) e ligá-los ambos ao gráfico com os valores correspondentes de ANCHOR_LOWER e ANCHOR_UPPER. Não seria mais fácil (de alguma forma) ligar a parte superior do ZigZag - à parte inferior anteriormente "ligada"? Foi mais ou menos o que fiz, acrescentando uma linha à função anterior
ObjectSetInteger(0,Obj,OBJPROP_ANCHOR,ANCHOR_CENTER); e introduzindo uma "correcção de offset" na linha de saída if(tvT) ORT(kBtT,Low[kBtT]-2*_Point,DtT,LowClr); //
Até agora parece estar a funcionar. Obrigado!
Qual é o objectivo? Pode alterar o anexo em qualquer altura. Ou está-me a escapar alguma coisa? Muda-se a cor. Por isso, alteram a ligação.
Depois de fechar a janela do visor de depuração, recompilar e executar uma única corrida no Testador sem visualização, consegui isto
Não consegui fazer nada durante 20 segundos. O botão Start estava cinzento o tempo todo.
Registos dos agentes.
Os registos mostram que o Testador tentou ligar-se ao Agente à 01:52, mas o próprio Agente (Servidor) só parou à 01:54. Daí a incapacidade de ligação e enforcamento. É um insecto de longa data, mas pelo menos a causa é agora clara.
Resultados do perfilador em dados históricos
O OrderSend interno demora um terço do tempo. O que causa resultados tão desagradáveis?
Resultados do perfilador em dados históricos
O OrderSend interno demora um terço do tempo. O que causa resultados tão desagradáveis?
No testador, toda a lógica comercial está aqui, não no servidor comercial.
No testador, toda a lógica comercial está aqui, não no servidor comercial.
Quase três milhões de carraças e apenas 16K OrderSend. Mas estas ordens de comércio demoram um terço do tempo. E, em cada tick, há cálculos no Expert Advisor.
Daí a minha pergunta. Poderia executar o código de OrderSend no profiler? Em que lugar existe tal problema?
Presumo que se substituir a função padrão pela sua própria, ela funcionará mais rapidamente. Provavelmente, existem alguns controlos e gestos dispendiosos na OrderSend. Por exemplo, se não houver funções históricas e OnTrade* no Expert Advisor (+ indicadores), então a formação dos registos/eventos adequados é uma perda de tempo.
Compreendo que para algumas pessoas uma corrida dura muitos minutos. Mas há casos como os acima referidos - unidades de segundos, se prestar atenção à velocidade de execução. E aqui acontece que lanço Optimize durante três horas, e delas uma hora é OrderSend, cujo tempo médio de execução é de 69 µs (ver imagem do ecrã):
Fiz o perfil do provador muitas vezes. E eu sei onde está o "engate". Estes são cálculos financeiros, que envolvem várias normalizações dos resultados para o número de dígitos da moeda de depósito
Irei escrever o meu OrderSend e compará-lo.