Características da linguagem mql5, subtilezas e técnicas - página 223
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 caso específico em que um campo numérico é usado para classificação (a situação mais comum), escrevi uma variante que é várias ordens de magnitude mais rápida do que a anterior. Mas ela consome o dobro de memória. Ela é relevante para matrizes grandes.
Aplicativo (com medição do tempo de execução).
Resultado.
O que você acha dessa opção?
O que você acha disso?
Não posso testá-lo.
Não verifique.
Biblioteca do QuickSort aqui
A biblioteca QuickSort está aqui
Obrigado, essa é uma ótima opção! Parece que eu também tenho o QuickSort, mas, por algum motivo, ele é extremamente lento.
Sua opção poderia ser envolvida em macros de alguma forma para torná-la mais rápida de usar...
Obrigado, essa é uma ótima opção! Parece que também tenho o QuickSort, mas, por algum motivo, os freios são loucos.
Sua opção poderia ser incluída em macros para agilizar o uso....
Não vejo por que você precisa de macros. É muito simples como está.
como formatar corretamente algo que se parece com isso em C:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
tentando classificar os modelos:
template <typename T>
int sort(T &arr[],int (*cmp)(const T &,const T&))
{
}
não funciona - você não pode colocar um ponteiro de função no argumento. Deve haver um typedef separado
mas o typedef não pode (ou pode??) ser um modelo.
Os macroms se livram desses problemas :-)
como formatar corretamente algo parecido com isso em C:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
Estamos tentando usar modelos:
falha - você não pode colocar um ponteiro de função no argumento. Deve haver um typedef separado
mas o typedef não pode (ou pode??) ser um template....
Os macroms superam esses problemas :-)
Descobri um recurso não óbvio da MQL (e do C++)
Ou seja, o valor padrão é substituído no parâmetro (p) no momento da chamada do método (p.f1()) e esse valor é retirado da descrição do método na classe C1 - o tipo declarado da variável ptr, não o tipo real do objeto obj.
(O que, em geral, é lógico).
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Erros, bugs, perguntas
Andrey Dik, 2022.06.24 08:38
MQL_VISUAL_MODE é um caso especial de MQL_TESTER?
MQL_OPTIMIZATION é um caso especial de MQL_TESTER?
Quero dizer, MQL_TESTER inclui tanto MQL_VISUAL_MODE quanto MQL_OPTIMIZATION?
Preciso que o EA execute algumas ações ao trabalhar em um gráfico e no modo visual, mas não em todos os outros casos. Não consigo descobrir como selecionar os sinalizadores corretos para esse caso ao verificar MQLInfoInteger()?
Eu poderia fazer isso de forma muito simples, por exemplo, assim:
if (MQLInfoInteger(MQL_VISUAL_MODE) || MQLInfoInteger(MQL_CHART_MODE))
{
//выполняем некоторые действия
}
mas o sinalizador MQL_CHART_MODE não é fornecido no mql5.
Alguém tem alguma ideia?
Alguém tem alguma opinião?
if (ChartID()!=0) {
// Graphical chart presents
// draws on it
}