Tema interessante para muitos: o que há de novo em MetaTrader 4 e MQL4 - grandes mudanças no caminho - página 57

 
hrenfx:

Esta é a tarefa de um algotrader adequado, não de um testador.

bem)) Isto é, se eu quiser testar com um lote maior, ou outro método de entrada/saída, preciso de gerar manualmente um novo histórico personalizado))

Um exemplo rudimentar de um histórico personalizado são os diferentes modos de teste no MT4. Ao abrir os preços - prepara-se uma série de históricos (preços de abertura), em outros modos - outros.

São utilizados indicadores e uma matriz com um valor calculado para cada barra (se forem optimizados, são utilizados vários indicadores).

Devemos considerar a liquidez e o tipo de encomendas utilizadas e o histórico pode ser construído/precessado automaticamente em conformidade. O mais importante é a matéria-prima inicial.

 
Avals:

bem)) Isto é, se eu quiser testar com um lote maior, ou outro método de entrada/saída, preciso de gerar manualmente uma nova história personalizada))

Exactamente! Note-se que não estamos a falar de história indicativa, que é vista pelo robô de batalha, mas sim de uma história personalizada para a Execução no testador. Obviamente, a mudança de volumes no TS leva a uma mudança na História da Execução. Ou, por exemplo, uma mudança no ping - de forma semelhante.

Gerar a História da Execução durante os testes é absurdo. Por esta razão, precisamos de estimar correctamente o resultado com reinvestimento-TC. Porque à medida que o volume aumenta, a História de Execução muda (deteriora-se). E como é impossível prever antecipadamente a dinâmica das mudanças nos volumes com que opera, também é problemático recolher antecipadamente o histórico da Execução. Mas devido a isto, em particular, a nuance, ninguém no seu perfeito juízo geraria a História da Execução num testador em tempo real.

Mais uma vez, o meio dourado é importante.

É claro que não precisa de uma tal dança com pandeiro, pois praticamente toda a gente precisa. Mas há TCs onde não se pode passar sem dançar.

Para espremer o máximo do seu TC (qualquer), é necessário que se esforce muito. Quase ninguém faz isto, estando satisfeito com o que recebe.

 
hrenfx:

Exactamente! Note-se que não estamos a falar da história indicativa vista pelo robô de batalha, mas sim da história personalizada para a Execução no testador. Obviamente, a mudança de volumes no TS leva a uma mudança na história da Execução. Ou, por exemplo, uma mudança no ping - de forma semelhante.

Gerar a História da Execução durante os testes é absurdo. Por esta razão, precisamos de estimar correctamente o resultado com reinvestimento-TC. Porque à medida que o volume aumenta, a História de Execução também muda (piora). E como é impossível prever antecipadamente a dinâmica das mudanças nos volumes com que opera, também é problemático recolher antecipadamente o histórico da Execução. Mas devido a isto, em particular, a nuance, ninguém no seu perfeito juízo geraria a História da Execução num testador em tempo real.

Mais uma vez, o meio dourado é importante.

É claro que não precisa de uma tal dança com pandeiro, pois praticamente toda a gente precisa. Mas há TCs onde não se pode passar sem dançar.

Para espremer o máximo do seu TC (qualquer), é necessário que se esforce muito. Quase ninguém faz isto, estando satisfeito com o que recebe.

E não há necessidade de testar com reinvestimento)) tais coisas apenas com o nível 2 sem qualquer pré-processamento (manual ou automático). Noutros casos, o volume de execução pode ser tido em conta com suficiente precisão. Claro que isto só pode ser estimado em negociações reais sem influência no mercado das suas próprias ordens.

Existem 2 formas globais de utilizar carraças reais:

1. o terminal armazena carraças e pré-processa-as antes dos testes para poupar recursos.

2. o utilizador armazena as carraças, comprime-as ele próprio (mas de acordo com as instruções do provador) e entrega-as ao provador. Por exemplo, como agora em mt5, mas tf<1min. Depois pode construir tendo em mente as suas necessidades.

Penso que a maioria ficará satisfeita com qualquer uma destas opções.

P.S. Mas o MQ ganha não daqueles que testam as suas estratégias no MT5, mas dos corretores e DCs. Estes últimos preocupam-se com o comércio através deles e não importa para eles quem e como testam. Ou seja, eles preocupam-se com o terminal comercial, não com o testador. Mas, a popularidade da plataforma depende do testador, e por conseguinte da escolha do corretor) O dilema - histórico personalizado e testes mais exactos separará de certa forma os utilizadores do DC/ corretor (o que não agradará a este último), mas aumentará de certa forma a popularidade da plataforma. O que é mais rentável é até à MQ)

 

Simplesmente não está familiarizado com o retrato do utilizador terminal médio, e é por isso que tem uma visão tão distorcida do que afecta a popularidade da plataforma.

Renat está a fazer quase tudo certo para popularizar o produto de massa entre os comerciantes. Sim, existem muitas restrições, mas o utilizador médio nem sequer as sente.

O corretor médio é também uma criatura burra. E visa, na melhor das hipóteses, o utilizador médio.

O grande dinheiro em FOREX está por trás de plataformas independentes de plataformas com abordagens avançadas de agregação. Precisamos de melhorar as condições comerciais para construir volume.

Compare simplesmente qual o esquema que tem potencialmente mais dinheiro:

  1. Cobrar uma taxa de subscrição aos corretores pela utilização da sua plataforma.
  2. Recolher uma comissão (do volume de negócios) de quaisquer corretores + instituições, para a utilização da plataforma.

Não em igualdade de condições, o mesmo LMAX está a abandonar os clientes retalhistas e a mudar para o segundo esquema - para ser o melhor LP, competindo com o EBS e outros. Mudança do retalho para as suas IBs com MT4/5 e outras plataformas.

Quem quer que fale a sério sobre algotrading não depende de plataformas de negociação.

 

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Quem apoia o MT5

MetaDriver, 2013.08.13 01:36

Se o aumento de clientes for maior do que a perda na implementação, é claramente uma renda. Se o crescimento do cliente for maior do que a perda de implementação - já é claramente lucrativo.

Pelo contrário.
 
hrenfx:

Simplesmente não está familiarizado com o retrato do utilizador terminal médio, e é por isso que tem uma visão tão distorcida do que afecta a popularidade da plataforma.

Renat está a fazer quase tudo certo para popularizar o produto de massa entre os comerciantes. Sim, existem muitas restrições, mas o utilizador médio nem sequer as sente.

O corretor médio é também uma criatura burra. E visa, na melhor das hipóteses, o utilizador médio.

O grande dinheiro em FOREX está por trás de plataformas independentes de plataformas com abordagens avançadas de agregação. Precisamos de melhorar as condições comerciais para construir volume.

Compare simplesmente qual o esquema que tem potencialmente mais dinheiro:

  1. Cobrar uma taxa de subscrição aos corretores pela utilização da sua plataforma.
  2. Recolher uma comissão (do volume de negócios) de quaisquer corretores + instituições, para a utilização da plataforma.

Não em igualdade de condições, o mesmo LMAX está a abandonar os clientes retalhistas e a passar para o segundo esquema - para ser o melhor LP, competindo com o EBS e outros. Mudança do retalho para as suas IBs com MT4/5 e outras plataformas.

Quem leva a sério algotrading não depende de plataformas de negociação.

As duas opções são bem ilustradas por duas visões do mundo.

Um diz para activar o ambiente, o outro diz para congelar tudo como está. Democratas e Republicanos, Liberais e Conservadores.

A primeira opção (com uma taxa de subscrição) obriga o corretor a actualizar os seus clientes e encorajá-los a negociar (a taxa de subscrição deve ser paga de volta), caso contrário o corretor sofre perdas e é questionável se deve continuar a fazer parte do mercado.

A segunda opção não importa, mesmo que não haja uma única transacção num mês, o corretor continuará a ser um utilizador da plataforma (sem transacções, sem despesas).

O que é melhor é uma questão perene, há momentos em que um é melhor e outros em que o outro é melhor.

 

Precisava de melhorar o meu testador para uma nova profissão. Para compreender o código do antigo foi mais tempo perdido (matei várias semanas - abordagens ocasionais), do que para escrever um novo.

Assim, levei 5 horas (com depuração) para escrever um novo testador a partir do zero. As suas características (satisfazendo-me como um começo):

  • Funciona com o modelo de apostas M1 HighBid + LowAsk (os resultados são mais precisos do que o testador MT5).
  • Um símbolo.
  • Velocidade (i7 2700K) cerca de 100.000.000 barras por segundo (277 anos de FOREX por segundo) no teste TS - não vazio, muitas coisas calculadas. Constantemente no mercado.
  • Sem MM - sem lotes.
  • Lucro apenas em pips.
  • O negociante pode regular o escorregamento e a comissão.
  • Optimizer com os seus próprios critérios de optimização - para cada um deles abre o seu próprio ficheiro (pode levar muitos GB) com cadeias ordenadas de ofícios.
  • Não há verificações de erro no testador - conheço todas as nuances do meu testador, por isso não o permito.
  • O TS está escrito num MQL4 ligeiramente abreviado - todas as coisas desnecessárias foram removidas. Mas pode usar todo o poder do C++.
  • O provador é escrito sem OOP - não sei como fazê-lo de forma competente. Portanto, é praticamente uma língua C pura.
  • Código fonte em C++ livre~ 20Kb.
  • As paragens e os mercados foram expulsos (OrderClose foi deixado) - não foi necessário.
  • Cada execução (por escolha - especificar número de execução) pode ser visualizada e estudada no pacote matemático - o ficheiro de alterações de Equidade e Equilíbrio é escrito de forma simples.
  • Sem genética.
  • Não OpenCL - não o pode fazer.
  • Com uma única rosca. Carrega todos os núcleos estúpidos - múltiplos optimizadores executados manualmente.
  • Aplicação de consola.
  • Os parâmetros de entrada TC, as configurações do testador e as gamas de optimização são definidos em ficheiro.
  • TC é compilado em conjunto com o testador num ficheiro EXE.
  • Antes do início, existem apenas três ficheiros: EXE, histórico, definições.
  • O optimizador tem uma interrupção da corrida, se o estado actual da corrida não satisfizer as condições (por exemplo, a subsidência é demasiado elevada).
  • O guião MQL4 prepara a história para o testador, foi escrito há muito tempo.
  • Sem atribuição dinâmica de memória para a tabela de encomendas - uma vez atribuída memória e esquecida.
  • Sem registos - não olho para eles.
  • Sem historial de encomendas - da mesma forma.
  • Não há nenhuma ideia sobre indicadores e tudo o que tem a ver com eles - não precisamos deles para o TS.
  • Os preços são inteiros (int longo).

Se o mesmo disparate for implementado na MQL5, podemos utilizar a Cloud no modo de optimização da matriz. Só tem de ser enviado sempre o histórico - é necessária a compressão integrada de tal informação.

Teoricamente, a velocidade de ~ 100 Bb/s (no teste TS) pode teoricamente ser alcançada. O que será o desempenho do MT5-tester em toda a nuvem, nos mesmos papagaios?

100 mil milhões de barras por segundo é uma boa velocidade para todo o tipo de investigação. Se convertida para outras unidades, essa velocidade diz que um ano de um minuto de história FOREX é executado ~300.000 vezes por segundo sobre um símbolo.

A maior parte do tempo foi gasto a aprender a sintaxe da língua - basta pesquisá-la no Google. Não é um programador.

Digo-vos desde já que é uma enorme perda de tempo escrever um quadro universal para as vossas próprias necessidades modestas. É melhor explorar. Se algo precisa de ser tido em conta - basta adicioná-lo.

Isto é apenas um núcleo, agora precisa de um conjunto de ferramentas astuciosas para o optimizador. Aqui vai demorar consideravelmente mais tempo - é preciso pensar.

The Dev-C++ Resource Site
  • Hongli Lai
  • www.bloodshed.net
Dev-C++ is Free Software distributed under the GNU General Public License. This means you are free to distribute and modify Dev-C++, unlike most Windows software! Be sure the read the license. Donations Please support Dev-C++ by making a donation ! The money will be shared between the active developers and the support manager in order to...
 
hrenfx:
  • Velocidade (i7 2700K) cerca de 100.000.000 barras por segundo (277 anos de FOREX por segundo) no teste TS - não é nada, muitas coisas são calculadas. Constantemente no mercado.

Mais importante, não se esqueça de acrescentar a leitura do disco ao tempo.

O número de 100 000 000 de barras é muito agradável, especialmente com o esclarecimento de que existe HighBid + LowAsk (ou seja, não). Ou será que existem apenas 100 000 barras?

Analisar os resultados do teste em Excel? Calcular num segundo e olhar para o Excel durante uma hora?


Para comparação, o testador MetaTrader 5 em M1 em Openbar, sem indicadores, mas com toda a bagagem e serviços (com os quais não se preocupou), incluindo animação GUI e levantando toda a base do disco:

  • EURUSD,M1: 19.538.553 carrapatos (5.180.083 barras) gerados dentro de 7906 ms

o que dá cerca de 2,4 milhões de carraças por segundo num i7 semelhante.

 
Renat:

O principal é não esquecer de adicionar a leitura do disco ao tempo.

Este é um tempo inútil, uma vez que não tem qualquer efeito na optimização. Agora que tem SSD, também pode arranjar RAM-Drive. Em suma, este tempo não tem qualquer utilidade.

O número de 100 000 000 de barras é muito agradável, especialmente quando se especifica que existe HighBid + LowAsk(ou seja, não). Ou será que existem apenas 100 000 barras?

Porque pensa que não existe? Utilizei apenas algumas centenas de milhares de barras para o teste TS. Ou seja, 100 milhões de barras por segundo é a velocidade de optimização. Portanto, a duração da história inicial não é importante para este parâmetro.

Por exemplo, a história inicial de 100 000 barras é percorrida 1000 vezes por segundo no optimizador - isto significa a velocidade de 100 milhões de barras por segundo.

Analisar os resultados do teste em Excel? Calcular num segundo e olhar para o Excel durante uma hora?

O Excel é uma porcaria (não o conheço bem simplesmente). Em pacotes matriciais é elementar torcer e transformar o resultado de uma corrida. Não é necessário alterar o documento de matriz em si. Quase todas as características do TC dão no local. Isto é muito mais avançado e eficiente do que a análise num testador MT5 ou em qualquer outro testador.

A propósito, o MT5-tester não tem filtros de resultados de optimização. Integrei-os imediatamente (sem GUI, mas 100% justificado) . Por exemplo, separei as corridas por lucro. Eu defini o filtro por sorteio, e tudo está claro: a fila abaixo é sempre uma corrida com menos sorteio do que a acima. Método muito eficaz - recomendo-lhe que o implemente no seu testador.

Para comparação, MetaTrader 5 tester em M1 em Openbar, sem indicadores, mas com toda a bagagem e serviços (com os quais não se preocupou), incluindo animação GUI e levantamento de toda a base a partir do disco:

  • EURUSD,M1: 19.538.553 carrapatos (5.180.083 barras) gerados dentro de 7906 ms

o que dá aproximadamente 2,4 milhões de carraças por segundo num i7 semelhante.

Cite melhor a velocidade de optimização (escrita acima) - em teoria deveria ser mais elevada para si. Não sabe bem porque é que as carraças foram geradas em modo de barra aberta?

A propósito, o MT4 ainda bate (e se eu tiver em conta a aceleração do código MQL4?) a velocidade do MT5 em modo de barra aberta em optimização ou não?

 

Estou a ver, portanto é exclusivamente sobre o ciclo para(i=0;i<100000;i++) { microdispositivo(); }, os custos para tudo o resto são descartados.

Neste caso, não há efeitos de velocidade de que se possa falar. Porque não se pode sequer lançar uma tarefa de optimização num motor de metal nulo como este. Não se pode lançar qualquer investigação. Enfrenta imediatamente o problema de "precisa de indicadores, mecanismos de análise convenientes, funções matemáticas e assim por diante" para uma tarefa sensata.

Sobre matpackages, onde se roda tudo o que se quer - também a partir do mesmo fio, pois "não reparo nas despesas gerais". Nada nos matpackages (quanto é que custam, já agora?) é fiado, tudo tem de ser feito de mão em mão, pior do que a excelência. Já para não falar em obter todas as transacções correctamente afixadas na tabela de preços com um botão.

Ainda estamos a verificar/sobrepor pontos-chave nas barras abertas. E sim, simulamos o desenvolvimento da história a partir de carraças por uma questão de precisão e de não sermos capazes de olhar para o futuro. Não temos um modo sujo de "atravessar as barras como está", basta fazer vista grossa ao facto de que, no seu caso, a barra completa está inteira, basta honestamente não olhar para nada além do preço Aberto, protegendo-se assim de olhar para o futuro. Consegue imaginar o que nos chamariam se lançássemos um modo que lhe permitisse olhar para o futuro? Exactamente.

O MT4 é arquitectonicamente mais rápido do que o MT5 devido ao testador integrado no terminal, à falta de custos gerais na transferência de todo o ambiente de mercado para um processo de terceiros via TCP/IP, ao desempacotar o histórico bem comprimido do agente, ao executar o teste, ao reencaminhar os registos e estados para o terminal e depois ao devolver os resultados.

O que é espantoso, há tantos anos que nos fala de arbitragem, escalpelização, vórtice de micropips no fluxo do tick-flow, critica os nossos testadores, e agora mostra-nos um ciclo de for-bar com dois preços de compra/venda.