Para testar e otimizar os experts você precisa de ticks, já que o expert funciona com a sua ajuda. O teste pode ser realizado de acordo com ticks reais fornecidos pela corretora, ou ticks gerados pelo testador de estratégias com base em dados de minutos.
O teste e a otimização de acordo com ticks reais são os que mais se aproximam das condições reais. Em vez de ticks gerados com base em dados de minutos, são usados ticks reais (segundo instrumentos financeiros) acumulados pela corretora. Esses são ticks provindos da bolsa e dos provedores de liquidez.
Ao testar com ticks reais, o spread nos limites da barra de minutos pode ser alterado, enquanto ao gerar ticks dentro nessa barra, é utilizado o spread fixado na barra correspondente.
Se, segundo um instrumento, for transmitido o livro de ofertas, as barras serão construídas a partir dos preços de execução da última transação Last. O evento de chegada OnTick ativa-se em todos os ticks, independentemente do fato de haver, ou não, preço Last.
Por favor, note que as transações são sempre executadas segundo os preços Bid e Ask, mesmo se o gráfico for construído a partir dos preços Last. Por exemplo, se, para a negociação, o expert usar apenas o preço de abertura da barra (particularmente, o Moving Average embutido), então, você receberá um sinal de acordo com um preço (Last), mas a transação será executada de acordo com outro preço (Bid ou Ask, dependendo da direção). Ao usar o modo de geração "Todos os ticks", as barras serão construídas de acordo com os preços Bid, mas as transações serão executadas segundo os preços Bid e Ask. Com isso, o Ask é calculado como o Bid + o spread fixo correspondente à barra de minutos.
Se no histórico do símbolo existir uma barra de minutos, mas, se, nesse minuto, não houver dados de ticks, o testador irá gerar ticks no modo "Todos os ticks". Isso permite que você teste o expert de acordo com o período previsto, no caso de os dados de ticks estarem incompletos na corretora. Se, no histórico do símbolo, não existir uma barra de minutos, mas, se, nesse minuto, houver dados de ticks, então, esses ticks serão ignorados. Os dados de minutos são considerados mais confiáveis.
Os dados de ticks são significativamente maiores do que os dados de minutos. Ao executar pela primerira vez o teste, o seu download pode levar muito tempo. Os downloads dos dados de ticks são armazenados por meses em arquivos TKC no catálogo \bases\[nome do servidor de negociação]\ticks\[nome do símbolo]\.
Os dados de ticks são gerados pelo testador com base nas entradas cache momentâneas em formato de números inteiros. Ou seja, o testador copia os históricos de dados necessários da plataforma e os transfere para o formato de número inteiro para acelerar os cálculos.
No testador de estratégias existem vários modos de gerar ticks. Abaixo está descrito o modo mais preciso, "Todos os ticks". |
Para barras que tenham diversos volumes de ticks, a geração de ticks flui de modo diferente:
Para uma barra com um volume de tick igual a um, não ocorre a geração de ticks, nela é inscrito um tick com o valor Close (fechado):
Também não se geram ticks para barras com dois ticks, primeiro é inscrito um tick com o valor Open (aberto), depois é inscrito um tick com o valor Close (fechado):
Para barras que tenham 3 ou mais ticks existem vários esquemas de geração de ticks, dependendo da sua quantidade.
Para barras que tenham três ou mais ticks existem apenas quatro esquemas de formação:
Variante de desenvolvimento |
Imagem |
|
---|---|---|
O preço tomou uma direção e voltou ao nível do preço de abertura. Assim, a barra terá apenas o valor High (o preço mais alto) ou apenas o valor Low (o preço mais baixo). |
||
O preço tomou uma direção e voltou, atingindo o nível de abertura. Nesse caso, a barra terá apenas o valor High (o preço mais alto) ou apenas o valor Low (o preço mais baixo), embora os preços de abertura e de fechamento não sejam iguais. |
||
O preço tomou uma direção, mas não atingiu o preço de abertura ao regressar. |
||
O preço deslocou-se apenas alguns pontos para um lado. Nesse caso, a barra não terá os valores High e Low. |
A geração de ticks ocorrerá através de pontos de apoio. A quantidade destes pontos não pode exceder o volume de ticks, e não pode ser superior a 11 (o ponto do preço de abertura é ignorado).
Os pontos de apoio são divididos em três partes: para a formação de uma sombra de abertura, proporção da vela (distância entre High e Low) e sombra de fechamento.
Dependendo do número de ticks, são possíveis as seguintes distribuições de pontos de apoio:
Quantidade de pontos de apoio |
Sombra de abertura |
Proporção da vela |
Sombra de fechamento |
---|---|---|---|
11 |
3 |
5 |
3 |
10 |
2 |
6 |
2 |
9 |
2 |
5 |
2 |
8 |
2 |
4 |
2 |
7 |
2 |
3 |
2 |
6 |
1 |
4 |
1 |
5 |
1 |
3 |
1 |
4 |
1 |
2 |
1 |
3 |
1 |
1 |
1 |
|
Os pontos de apoio são calculados como o número de pontos do preço de abertura. A distribuição ideal de pontos (3-5-3) é calculada da seguinte forma:
Vela altista
Cálculo dos pontos de apoio |
Imagem |
---|---|
|
Vela baixista
Cálculo dos pontos de apoio |
Imagem |
---|---|
|
Se a vela for "Doji" (Close = Open), serão analisadas as velas anteriores. Se a vela anterior estivesse em ascenção, a atual será considerada descendente, e vice-versa.
Se a sombra for gerada com a ajuda de três pontos de apoio e os valores inteiros forem iguais a 3/4 ou 1/2 do tamanho da sombra (isso acontece quando a diferença entre open e low ou open e high não excede 2 pontos, isto é, quando a distância de passos do preço à frente e atrás é igual), a geração de uma sombra varia da seguinte forma:
Vela altista
Cálculo dos pontos de apoio |
Imagem |
---|---|
|
Vela baixista
Cálculo dos pontos de apoio |
Imagem |
---|---|
|
Da mesma forma é gerado o fechamento da sombra. |
Se a sombra for gerada com a ajuda de dois pontos de apoio, a geração ocorre da seguinte forma:
Vela altista
Cálculo dos pontos de apoio |
Imagem |
---|---|
|
Vela baixista
Cálculo dos pontos de apoio |
Imagem |
---|---|
|
Da mesma forma é gerado o fechamento da sombra. |
A proporção da vela é gerada como ondas em ciclos. Se Prev = Low (o preço anterior é Low), é usado o ciclo:
Se Prev = High (o preço anterior é High), é usado o ciclo:
Aqui:
N1, N2 – são os pontos de apoio de um ciclo;
Prev – é o preço anterior;
Step – é o tamanho do passo. O passo é calculado segundo a seguinte fórmula: (H – L – 1)/(Número de ciclos) + 1;
O número de ciclos é calculado segundo a seguinte fórmula: (Número de pontos de apoio na proporção + 1)/2.
Os ticks intermediários entre os pontos de apoio são gerados segundo as seguintes regras:
Na janela configurações do testador de estratégias você pode selecionar o modo de geração de ticks. Estão disponíveis as seguintes variantes:
Nesse modo são gerados todos os ticks: OHLC, bem como intermediários. A ordem dessa geração de ticks está descrita acima.
Nesse modo são gerados apenas os ticks OHLC das barras de minuto. Se o volume de ticks da vela for superior a 4, são gerados apenas os valores Open, High, Low e Close. Se o volume de ticks for inferior a 4, são aplicadas as regras de geração descritas acima.
A escolha desse modo não significa que o teste ou a otimização ocorra justamente no período M1. Por exemplo, ao escolher o período H1 no modo "OHLC em M1", o preço será gerado em cada barra de minuto para os valores Open, High, Low e Close. Além disso, o evento OnTick() do expert também será executado quatro vezes por minuto: na abertura, no fechamento, no mínimo e no máximo de cada barra de minuto, embora o teste seja conduzido em H1. |
Na verdade, os valores OHLC estão presentes nos históricos de dados. Assim, ao realizar o teste, é gerado somente o tempo de passagem dos ticks Open, High, Low e Close, os valores dos preços podem ser tirados do histórico.
Nesse modo, ocorrerá a geração de valores OHLC das barras do timeframe escolhido para testar. A função do expert OnTick() é executada apenas no início da barra (segundo o valor Open). Devido a essa característica, os níveis de stop e as ordens pendentes não podem funcionar segundo o valor declarado (especialmente ao testar em timeframes antigos). Mas isso permite realizar rapidamente o teste de avaliação do expert.
As exceções são os períodos W1 e MN1, para os quais as barras são geradas uma vez por dia e não uma vez por semana ou por mês, respetivamente. |
Há uma série de limitações no aplicativo do modo "Apenas preços de abertura":
O modo de geração de todos os ticks é o mais preciso, mas, ao mesmo tempo, o mais lento. Para um teste ou uma otimização rápidos, mas grosseiros, você deve usar o modo "Apenas preços de abertura". |
Esse modo permite usar o testador de estratégias para cálculos matemáticos. Para isso, não é necessário carregar o histórico de dados e a informação sobre os símbolos. Além disso, nele não são gerados ticks. Em experts testados sucessivamente são oferecidas apenas as funções OnInit(), OnTester() e OnDeinit().
Ao incluir esse modo, na qualidade de critério de otimização, é aplicado automaticamente o modo "Critérios de otimização do usuário". Todos os campos nas configurações do testador, exceto o modo de otimização e a seleção do expert, se tornam inativos.
Os cálculos matemáticos são úteis para tarefas de pesquisa do extremum de uma função matemática, cujo valor deve voltar do OnTester(). A otimização é realizada na pesquisa do valor máximo da função. Quando existe um grande número de combinações de parâmetros de entrada de uma função matemática, recomendamos que você use um "Algoritmo genético". Isso permite acelerar significativamente a pesquisa do extremum.