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
Claro que deveria, todos eles são apenas inteiros, não um tipo separado.
Uma pequena dica.
É claro que é desejável não reescrever a estratégia para o testador. Uma vez escrita, a estratégia deve funcionar no testador e sem ele (no mundo real).
Isto pode ser feito com a ajuda de bibliotecas.
1. Todas as funções relacionadas ao comércio, mudar um pouco seus nomes (meu... - não muito bom, talvez melhor _....).
2. Criar 2 bibliotecas. O primeiro contém código para testes (sem realmente enviar ordens), o segundo apenas duplica parâmetros em chamadas de funções padrão. A troca de trabalho/teste é feita simplesmente substituindo a biblioteca.
É claro que poderíamos colocar tudo em uma biblioteca e introduzir um parâmetro global para mudar, mas provavelmente é desnecessário.
E seria maravilhoso introduzir à MT mais uma função, que, imho, simplificaria radicalmente a escrita de tal testador - a função de estabelecer a última barra atual.
Isto é, suponha que tenhamos 1000 barras na história em que estamos testando.
Vamos definir 200 bar como a última e usar Close[200] em vez de Close[0]. Esta característica deve funcionar em todas as funções incorporadas.
O testador então parecerá um loop no número da barra em que este valor é definido (a última barra no teste) e a chamada da função de início na estratégia.
Na verdade, não é tão simples assim :))
Preciso de mais alguns pontos ...
A frase "código para teste" é um código de teste ou código EA? Seja mais específico.
Isso também
Definimos 200 barras como a última, então em vez de Fechar[0] usamos Fechar[200] em todos os lugares.
E esta ficção deve funcionar (afetar) em todas as funções em linha.
Qualquer código EA é facilmente convertido em código para um indicador :
Pegamos o bloco start() do EA, adicionamos uma construção para (testerconter=Bars;testerconter>=0;testerconter--)
{
fechá-lo com um suporte no final
}
Substituir todos os lugares que utilizam referências por [testerconter+referência].
Aqui está um exemplo do MACD_sample.mq4 Expert Advisor incorporado.
Código fonte:
Modificado
Como você pode ver, não há nenhum problema. Se você quiser, você pode sempre redefinir o testadorconter=0 se
O código é executado no órgão do Expert Advisor, não no órgão do Expert Advisor .
Na primeira biblioteca, a função
emula a execução da ordem no testador, ou seja, adiciona-a à lista de ordens no testador e não envia a ordem para o servidor.
Na segunda biblioteca, esta função simplesmente chama a função embutida
Pegamos o bloco start() do EA, adicionamos uma construção para(testerconter=Bars;testerconter>=0;testerconter--)
{
fechá-lo com um suporte no final
}
Substituir todos os lugares que utilizam referências por [testerconter+referência].
É isso que eu quero dizer.
Seria mais fácil chamar a função que define o valor da variável testconter em MT (0 por padrão) ao invés de substituí-la e esta substituição ([testconter+referência]) seria feita na própria MT.
Assim, não teríamos que fazer essas substituições na própria estratégia.
Por favor, substitua pré por. pré com citação em "ou seja, digamos que temos 1000 barras em ...".
caso contrário, a página desaparece novamente.
sobre
Minha conclusão: parece que estamos falando da mesma coisa. Podemos esquecer o pedido atual do último bar, por enquanto.
Devemos tentar fazer isso.
Por enquanto, basta redefinir as funções comerciais padrão, o prefixo _. é ainda mais respeitável :)
Eu suspeito que você testou "com muito sangue", ou seja, você não redefiniu as funções comerciais. E cada novo teste
Cada novo teste requer a escrita de um novo indicador-avaliador. Mas você só precisa fazer isso uma vez - e sem problemas.
Se eu estiver errado - afixar as funções - não seja mesquinho.
Parece que não podemoschamar diretamente afunção de partida do Expert Advisor.
Portanto, seria melhor escrever o código do Expert Advisor em uma biblioteca e ter lá funções _init, _deinit e _start.
No Expert Advisor, escreveremos
No entanto, é um pouco obscuro quais são os parâmetros.
Como é feito em Omega:
Não é muito bonito, mas vai funcionar.
Em geral, um sistema de processamento de eventos caseiros irá funcionar :))
Ele processa este código - insere todos os tipos de includes, arrays de trabalho para Equilíbrio, Equidade, etc,
renomeia as variáveis Lotes em _Lots (e outros). Em geral, ele faz o trabalho rude.
Só terei que arquivar a saída e ir embora. :)
Método de transporte simples.
Eu suspeito que você testou "com muito sangue", ou seja, você não redefiniu as funções comerciais. E cada novo teste exigia que você escrevesse um novo indicador de testador. Mas você só precisa fazer isso uma vez - e não precisa mais ter problemas. Se eu estiver errado, eu quero que você poste funções - não seja mesquinho.
Absolutamente certo. "Sangue grande". Não houve substituições. Eu fiz tais testadores de volta no MT3.x. A MQL4 é tão diferente da MQL2 quanto o céu é da terra. Entretanto, eu não tirei proveito da MQL4. Eu tenho um estupor psicológico. Eu deveria ter pensado primeiro, e depois trabalhado.
A mulher foi aconselhada: "Pense primeiro, fale depois". A mulher respondeu: "Como posso pensar no que ainda não disse".