![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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 que eu gostaria de ver em futuros lançamentos:
1. O que o impede agora?
2. Na MQL5, as EAs serão capazes de lidar com eventos de janela (EMNIP).
1. O que está no caminho neste momento?
Bem, se você sabe como, eu ficaria muito grato se você pudesse compartilhar esta habilidade/conhecimento.
2. Na MQL5, os Conselheiros Especialistas poderão processar os eventos da janela (EMMNIP).
O manipulador de eventos ChartEvent só estará disponível em EAs, a propósito... Uma discriminação bastante estranha )))) Penso que a necessidade é a mesma nos indicadores (os Conselheiros Especialistas não precisam disso).
Bem, se você sabe como, eu ficaria muito grato se você pudesse compartilhar essa habilidade/conhecimento.
Não como dois dedos no asfalto, mas você pode. Conectar dll, ligar cálculos em uma nova linha - WinAPI ajudará aqui, terminação por timer ou callback.
O manipulador de eventos ChartEvent estará disponível apenas em Expert Advisors, a propósito... Uma discriminação bastante estranha ))
Eu também não gosto disso. Mas agora os índices não estão ligados ao gráfico.
Não como dois dedos no asfalto, mas é possível. Conectar dll, fazer cálculos em uma nova linha - WinAPI ajudará aqui, terminando por timer ou callback.
Eu estava pensando na variante DLL, mas não está muito claro para mim como obter acesso CORRETO às séries temporais, mais os valores de mais de 10 indicadores diferentes, e tudo isso a uma profundidade decente ao longo da história. E se considerarmos que o tempo de cálculo leva mais de um minuto (eu trabalho com minutos), então não está absolutamente claro, onde os ponteiros DLL se referirão após a adição de uma nova barra no terminal do cliente. E também precisamos retornar algumas dezenas de parâmetros calculados e adicionar vários gráficos às séries de preços. Não é trivial, no fim de contas...
Tendo analisado tudo isso e estimado quanto tempo eu precisaria para experimentos e várias verificações e depuração, escrevi um tempo de processamento em MQL... Funciona, mas... Não é agradável. Mas minha alma o exige! ))) E já estamos no século XXI... E você quer viver até a idade)).
Proponho esclarecer (definir) o conceito de "ponto".
Um pip é o 5º dígito significativo: 1,2345.
Se uma cotação é representada por outro dígito (1,23456) e spread = 0,00018, então o spread em pips é 1,8 p, e não 18 p.
Isto introduzirá uniformidade na terminologia e evitará confusão.
Proponho esclarecer (definir) o conceito de "ponto".
Um pip é o 5º dígito significativo: 1,2345.
Se uma cotação é representada por outro dígito (1,23456) e spread = 0,00018, então o spread em pips é 1,8 p, e não 18 p.
Isso introduzirá uniformidade na terminologia e evitará confusão.
Você está absolutamente certo - corretores escrevem "spread 1.8" em seus sites, não 18 - eles sabem exatamente o que fazem :)
Ainda não tenho idéia de como posso fazer um indicador com objetos e sem saber o número de barras trocadas
Vejo que existe uma função printf
e como seria ótimo conseguir outro sprintf
Ainda não tenho idéia de como posso fazer um indicador com objetos e sem saber o número de barras modificadas
A ajuda da MQL5 declara:
int OnCalculate (const int rates_total, // o tamanho das séries de tempos de entrada
const int prev_calculated, // barras processadas na chamada anterior
const datetime&time[], // hora
const double& open[], // Aberto
const double& high[], // High
const double& low[], // baixo
const double& close[], // Fechar
const long& tick_volume[], // Tick Volume
const long& volume[], // Volume real
const int& spread[] // Spread
);
A relação entre o valor retornado pela OnCalculate() e o segundo parâmetro de entrada pré-calculado deve ser notada. O parâmetro pré_calculado ao chamar a função contém um valorretornado pela OnCalculate() na chamada anterior. Isto permite algoritmos econômicos para o cálculo do indicador personalizado a fim de evitar cálculos repetidos para aquelas barras que não mudaram desde a chamada anterior desta função.
Para isso, geralmente é suficiente retornar o valor do parâmetro rate_total, que contém o número de barras na chamada de função atual. Se desde a última chamada do OnCalculate() os dados de preço mudaram (um histórico mais profundo foi carregado ou o histórico foi preenchido), o valor do parâmetro de entrada pré_calculado será ajustado a zero pelo terminal.