Discussão do artigo "Criar Critérios Personalizados de Otimização de Expert Advisors" - página 3

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
Com muitos experimentos, cheguei a conclusões semelhantes. Não sei por que demorei tanto para encontrar este artigo e esta discussão.
Comecei com um problema em que minhas estratégias de rompimento e de tendência tendiam a se ajustar a algumas poucas negociações superlucrativas. O lucro era tão grande com essas poucas operações que o otimizador só "se importava" com elas e usava stops amplos e take profit muito distantes, certificando-se de que seu sinal capturasse e ordenasse essas poucas operações ao máximo. Mesmo ao otimizar com uma relação entre dd e lucro, ele ainda buscava as execuções com essas negociações a todo custo, pois as execuções representavam 90% de seu lucro. Eu queria limitar esse comportamento de alguma forma sem cortar a cabeça da estratégia de fuga/tendência. Descobri que a otimização para a porcentagem relativa de dd (NÃO a proporção de dd em relação ao lucro, apenas a porcentagem relativa de dd e nada mais) oferece bons resultados no futuro, desde que o mínimo de negociações e o fator de lucro mínimo (cerca de 1,3) sejam atendidos.
Parece errado não ter o lucro envolvido, mas, ao ter um critério mínimo de pf, a maioria das execuções bastante lucrativas está aparecendo no topo. Cortar o dd das execuções lucrativas geralmente aumenta os lucros. De qualquer forma, ao selecionar as negociações mais lucrativas e fazer os retoques finais cuidadosamente à mão (como no final deste excelente artigo https://www.mql5.com/pt/articles/156), posso permitir que o otimizador faça grande parte do trabalho inicial e, ao mesmo tempo, evite muitos ajustes de curva. Fiz experimentos e obtive resultados variados com códigos como o seguinte. (As experiências devem incluir a alteração do risco e do saldo inicial também quando você começar a colocar pesos adicionais além de uma pontuação baseada em porcentagem)
Alguém pode me dizer se esse artigo será aplicável ao MT4? Parece que ele já adotou muitas propriedades do MT5.
Em geral, minha tarefa é obter apenas os valores de LR Correlation e LR Standard Error no testador do MT4, como pode ser facilmente visto no testador do MT5.
Quero apenas ler esses valores na função deinit() no final da execução do teste e gravá-los em um arquivo junto com o valor do parâmetro otimizado.
Talvez alguém já tenha feito isso e possa compartilhar comigo o resultado pronto (a função necessária para calcular a correlação LR e os valores de erro padrão LR) para que eu não tenha que reinventar a roda?
Alguém pode me dizer se esse artigo será aplicável ao MT4? Parece que ele já adotou muitas propriedades do MT5.
Em geral, minha tarefa é obter apenas os valores de LR Correlation e LR Standard Error no testador do MT4, como pode ser facilmente visto no testador do MT5.
Quero apenas ler esses valores na função deinit() no final da execução do teste e gravá-los em um arquivo junto com o valor do parâmetro otimizado.
Talvez alguém já tenha feito isso e possa compartilhar comigo o resultado pronto (a função necessária para calcular a correlação LR e os valores de erro padrão LR) para que eu não tenha que reinventar a roda?
Um exemplo de cálculo da correlação LR e do erro padrão LR para negociações no histórico está disponível no AlgLib (MQL4\Scripts\Alglib\UseAlglib.mq4).
Obrigado! Vou dar uma olhada nisso.
Já entendi. A correlação parece ter sido calculada.
A única coisa em que tive de pensar é o fato de que esse ponto não funciona no testador MT4 Build 670:
Simplesmente não há ordens com o tipo 6 no testador.
Ou seja, ao executar no testador do MT4 e usar o código do UseAlglib.mq4, que está incluído no arquivo zip baixado, por meio de uma chamada da função deinit().
O saldo permanece igual a 0. E, em seguida, é impresso o erro"Trading operations with zero balance" (Operações de negociação com saldo zero).
Eu tive que simplesmente inserir o valor necessário do saldo inicial no testador MT4 no próprio código e, então, tudo foi contado perfeitamente.
Talvez os desenvolvedores possam levar esse ponto em consideração em versões futuras da biblioteca.
Testei o Kelly Criterion (Estratégia) usando o código a seguir:
Não tenho certeza se o Metatrader Strategy Tester calcula negociações de lucro 0 (zero) como negociações de lucro. Alguém sabe?
Bem, aqui estou eu novamente, o lobo solitário neste universo :-)
Tenho tentado usar o critério personalizado de retidão para tentar incluir a inclinação da linha reta calculada na equação. Da forma como está, ele pode lhe dar uma classificação muito alta em um lucro muito fraco. Basta adicionar o lucro final
Em uma tentativa de adicionar a inclinação real à equação, alterei o código como mostrado abaixo.
Não é uma solução perfeita, mas está mais próxima do que eu quero ver. Usar o resultado junto com o saldo ou o lucro funciona bem para mim com este código
Sei que já faz muito tempo que você postou isso, mas caso ainda esteja trabalhando com isso ou outra pessoa esteja procurando a mesma implementação de critérios de linearidade.
Encontrei uma solução pública funcional aqui https://community.darwinex.com/t/equity-curve-straigthness-optimization-with-metatrader/3976
O tutorial relacionado tem informações demais, como, por exemplo, especificamente sobre a programação de um EA, que está em outro tutorial, e não se aplica ao apostador comum, que comprará seu EA e tem capacidade mínima de programação.
Descobri que, por padrão, o único critério útil para o MT5 no algoritmo genético é o "balance max", então tenho que repetir isso algumas vezes e procurar nos resultados até encontrar um drawdown baixo, como para uso em vários pares.
Quais critérios eu preciso: - Saldo máximo com rebaixamento <20, MaxBalance com rebaixamento <10
Para todos vocês, "lobos solitários": vocês estão no caminho certo, criando critérios de teste rigorosos e a automação dos mesmos. É claro que há várias maneiras diferentes de encarar o mesmo desafio e, ao ler os comentários aqui, o consenso parece estar em um equilíbrio entre equilíbrio, rebaixamento, RRR e alguma medida de lucro (fator de lucro, critério Kelly etc.).
Cheguei a este artigo tentando fazer o mesmo e querendo que o Strategy Tester fizesse isso por mim; ainda bem que não estou sozinho :)