Características da linguagem mql5, subtilezas e técnicas - página 18
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
E posso perguntar porquê estática?
Porque tirado do contexto - ver post original.
recurso não documentado da função OnInit(), esta função pode ser executada em qualquer parte do programa. Código de teste.
Resultado
...
uma característica não documentada da função OnInit(), esta função pode ser executada em qualquer parte do programa. Código de teste.
Todas as funções On-funções são funções normais e por isso podem ser chamadas sempre que quiser. OnCalculate ou OnTradeTransaction.
Todas as funções On-funções são funções normais e, portanto, podem ser chamadas quando você quiser. Seja OnCalculate ou OnTradeTransaction.
Mas não está escrito na documentação...
OnInit
A função OnInit() é o manipulador de eventos OnInit. Pode ser de tipo ovóide ou não, e não tem parâmetros:
vazioOnInit();
O evento Init é gerado imediatamente após o carregamento de um Expert Advisor ou indicador, este evento não é gerado para scripts. A função OnInit() é utilizada para inicialização. Se OnInit() tiver o valor int de retorno, o código de retorno não zero significa inicialização sem sucesso, e gera o eventoDeinit com o código do motivo de inicializaçãoREASON_INITFAILED.
A fim de otimizar os parâmetros de entrada de um especialista, recomenda-se utilizar os valores da enumeraçãoENUM_INIT_RETCODE como códigos de retorno. Estes valores são usados para controlar o curso da otimização, incluindo a seleção dos agentes deteste mais apropriados. Durante a inicialização de um Expert Advisor antes do início dos testes você pode solicitar informações sobre a configuração e recursos de um agente (o número de núcleos, quantidade de memória livre, etc.) usando a funçãoTerminalInfoInteger(). Com base nas informações obtidas, você pode permitir o uso deste agente de teste, ou rejeitá-lo durante a otimização deste Expert Advisor.
ENUM_INIT_RETCODE
Identificador
Descrição
INIT_SUCCEED
Inicialização bem sucedida, o teste do Expert Advisor pode ser continuado.
Este código significa o mesmo que zero - a inicialização do Expert Advisor no testador foi bem sucedida.
INIT_FAILED
A inicialização falhou, os testes não têm sentido devido a erros irrecuperáveis. Por exemplo, não conseguiu criar um indicador que seja necessário para o trabalho do Expert Advisor.
O retorno deste valor significa o mesmo que um retorno de um valor diferente de zero - a inicialização do Expert Advisor no testador falhou.
INIT_PARAMETERS_INCORRECTOS
Concebido para indicar ao programador um conjunto incorrecto de parâmetros de entrada. A sequência de resultados contendo este código de retorno será destacada a vermelho na tabela de optimização geral.
Os testes para este conjunto de parâmetros do Expert Advisor não serão executados e o agente está livre para receber uma nova tarefa.
Ao receber este valor, o testador de estratégia tem a garantia de não passar este trabalho a outros agentes para execução repetida.
INIT_AGENT_NOT_SUITABLE
Sem erros durante a inicialização, mas por alguma razão o agente em questão não é adequado para testes. Por exemplo, RAM insuficiente, suporteOpenCL e assim por diante.
Após o retorno deste código, o agente não receberá tarefas até o final destaotimização.
A função OnInit() do tipo void significa sempre uma inicialização bem sucedida.
Mas não está escrito na documentação.
OnInit
A função OnInit() é o manipulador de eventos OnInit. Pode ser de tipo ovóide ou não, e não tem parâmetros:
vazioOnInit();
O evento Init é gerado imediatamente após o carregamento de um Expert Advisor ou indicador
Diz que é uma função.
Antes do OnInit e depois do OnDeinit há chamadas de construtores/destructores de objectos globais (inexactidão na Ajuda). É por isso que, por exemplo, nos indicadores você pode declarar buffers de indicadores sem o OnInit. Os rudimentos são os seguintes.
Se a matriz for menor, apenas parte das cores são transferidas. Se o conjunto for maior, é aparado.
Para as matrizes de largura e estilo, o princípio é o mesmo.
Em OrderSendSync é chamado o HistoryDealSelect (ver acima).
Como posso determinar a hora de abertura da última posição e a hora de fechamento da última posição?
E em geral, eu gostaria de conhecer os princípios gerais e algoritmos para obter informações sobre posições abertas/fechadas no mql5.
O que precisa ser levado em conta, quais são as especificidades existentes no momento?
Como posso determinar a hora de abertura da última posição e a hora de fechamento da última posição?
Em geral, gostaria de conhecer os princípios gerais e algoritmos para obter informações sobre posições abertas/fechadas em mql5.
O que deve ser considerado, quais são as peculiaridades no momento?
Tudo isso é determinado pela seleção do histórico da ordem e da negociação e, em seguida, a leitura das propriedades das ordens.
POSITION_IDENTIFIER
O identificador de posição é um número único, que é atribuído a cada posição recém-aberta e não muda durante toda a sua vida útil. Corresponde ao bilhete da ordem com que a posição foi aberta.
O identificador da posição é especificado em cada ordem (ORDER_POSITION_ID) e cada negociação (DEAL_POSITION_ID) que a abriu, alterou ou fechou. Use esta propriedade para procurar ordens e negociações relacionadas com a posição.
Quando uma posição é revertida em modo de compensação (uma única operação de entrada/saída), o identificador POSITION_IDENTIFIER da posição não é modificado. No entanto, POSITION_TICKET é alterado para o bilhete de encomenda, o que resultou no estorno. No modo de cobertura, não há inversão de posição.
longo
E usando as propriedades da enumeração ENUM_DEAL_ENTRY
DEAL_ENTRY_IN
Entrada no mercado
DEAL_ENTRY_OUT
Saída do mercado
DEAL_ENTRY_INOUT
Inversão de marcha
DEAL_ENTRY_OUT_BY
Fechar posição do contador