Discussão do artigo "Criação e teste de símbolos personalizados na MetaTrader 5" - página 2

 
Rashid Umarov:

De acordo com os registros, a moeda de depósito = USD, o teste é realizado no símbolo EURCHF. O testador precisa de cotações EURUSD ou USDEUR para calcular a margem.

Ele procura por elas entre os símbolos disponíveis e encontra EURUSD, o download e a sincronização ocorrem

A captura de telaaqui mostra as configurações de todas as moedas do símbolo personalizado, que é usado para o teste. E nada deve depender do nome do símbolo personalizado.

 
fxsaber:

E nada deve depender do nome do símbolo personalizado.

Leia atentamente o artigo

Teste de estratégias de negociação em um símbolo personalizado

O MetaTrader 5 Multi-threaded Strategy Tester permite que você teste estratégias de negociação em muitos instrumentos financeiros em ticks reais. Tire o máximo proveito de suas vantagens para testar estratégias em seus próprios símbolos. Tudo o que você precisa fazer é importar um histórico de minutos (ou, melhor ainda, de ticks) de alta qualidade e definir as propriedades de cada instrumento necessárias para recriar o ambiente de negociação em detalhes. Depois disso, basta selecionar o Expert Advisor desejado e definir as configurações de teste. Tudo é feito da mesma forma que com os símbolos de negociação regulares fornecidos por sua corretora.

É importante fornecer ao testador todos os símbolos necessários para calcular os requisitos de margem e o lucro na moeda de sua conta de negociação. Ao calcular a margem e o lucro, o testador de estratégia usa automaticamente as taxas cruzadas disponíveis. Por exemplo, criamos o símbolo AUDCAD.custom com o tipo de cálculo de margem Forex e a moeda de nossa conta é USD. Então, com base no nome do instrumento forex , o testador procura os símbolos necessários na seguinte ordem:

  1. Primeiro, são pesquisados símbolos como AUDUSD.custom (para cálculo de margem) e USDCAD.custom (para cálculo de lucro em negociações).
  2. Em seguida, se algum desses instrumentos estiver faltando, será pesquisado o primeiro símbolo, que corresponde, pelo nome, aos pares de moedas necessários - AUDUSD e USDCAD, respectivamente. Por exemplo, AUDUSD.b e USDCAD.b são encontrados - isso significa que as taxas desses instrumentos serão usadas para cálculos de margem e lucro.

 
Rashid Umarov:

Leia o artigo com atenção

Prestei atenção a isso logo ao ler o artigo pela primeira vez. Para um testador, os conceitos de"Moeda base do símbolo", "Moeda de margem do símbolo" e "Moeda de lucro do símbolo" não são nada?

Eu queria testar um símbolo personalizado XXXYYYY - sim, exatamente com esse nome. Ele é um clone do símbolo EURUSD. Ou seja, todas as moedas do símbolo estão claramente definidas.

E agora o teste deve ser rejeitado com base no fato de o nome não ser do seu agrado?

Todas as configurações do símbolo estão contidas em suas propriedades, não no nome.

Como fazer com que o símbolo EURCHF_custom perceba suas configurações claramente definidas e não as ignore olhando apenas para o nome?

Mudei o método de cálculo de Forex para Futuros, resultado

2017.09.05 11:25:03.448 Tester  EURCHF_custom: history data begins from 2017.07.26 00:00
2017.09.05 11:25:03.448 Tester  EURUSD: history data begins from 1981.01.02 00:00
2017.09.05 11:25:03.548 Tester  USDCHF: preliminary downloading of M1 history started
2017.09.05 11:25:05.472 Tester  USDCHF: 20% history downloaded
2017.09.05 11:25:07.102 Tester  USDCHF: 31% history downloaded
2017.09.05 11:25:08.023 Tester  USDCHF: 40% history downloaded
2017.09.05 11:25:09.761 Tester  USDCHF: 54% history downloaded
2017.09.05 11:25:10.576 Tester  USDCHF: 61% history downloaded
2017.09.05 11:25:12.310 Tester  USDCHF: 75% history downloaded
2017.09.05 11:25:13.128 Tester  USDCHF: 82% history downloaded
2017.09.05 11:25:14.871 Tester  USDCHF: 95% history downloaded
2017.09.05 11:25:15.685 Tester  USDCHF: preliminary downloading of M1 history completed in 0:12.231
2017.09.05 11:25:15.685 Tester  USDCHF: history data begins from 2015.12.14 00:00
2017.09.05 11:25:15.685 Core 1  agent process started

Continua puxando duas majors, ignorando completamente as configurações do símbolo.

 
Muitas configurações de tempo de execução dependem do Character User Group. Como faço para defini-lo?
 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Bibliotecas: Symbol

fxsaber, 2017.09.20 07:31 AM.

Obtém uma versão demo gratuita do Expert Advisor do Market e executa o testador em cotações novas, a copiadora obtém dados do resultado do testador. Assim, a versão paga não é necessária.


Talvez seja necessário proibir o backtest dos Expert Advisors do Mercado em símbolos personalizados...

 

Se eu precisar criar uma cópia interativa completa de um símbolo, só devo lançar ticks por meio do CustomTicksAdd por meio de indicadores (eles não pulam ticks)?

Os serviços ignoram os ticks, assim como os Expert Advisors?

 
Ele não tem essa funcionalidade
// Lança um vidro, acionando um evento BookEvent no personagem personalizado
bool  CustomMarketBookSet( 
   const string        symbol,     // símbolo 
   const MqlBookInfo&  book[]      // referência de matriz
   );
Eu formo copos sintéticos. Gostaria de trabalhar com elas como com as xícaras convencionais.
 

O Forex é bom, mas ainda não entendi como fazer o testador funcionar com futuros de Si no MOEX!

Copiei o histórico e as configurações do instrumento do original, mas a saída está vazia.

Este é o aspecto do registro - não sei como interpretá-lo

2017.10.14 21:23:55.365 2017.10.01 00:00:00   Si-12.17_custom has type Exchange Execution. The execution policy is set - Return
2017.10.14 21:23:55.368 Si-12.17_custom,M5: history cache allocated for 133714 bars and contains 1131 bars from 2017.09.21 10:00 to 2017.09.29 23:45
2017.10.14 21:23:55.368 Si-12.17_custom,M5: history begins from 2017.09.21 10:00
2017.10.14 21:23:55.372 Si-12.17_custom,Daily: history cache allocated for 464 bars and contains 7 bars from 2017.09.21 00:00 to 2017.09.29 00:00
2017.10.14 21:23:55.372 Si-12.17_custom,Daily: history begins from 2017.09.21 00:00
2017.10.14 21:23:55.375 Si-12.17_custom,H1: history cache allocated for 11142 bars and contains 98 bars from 2017.09.21 10:00 to 2017.09.29 23:00
2017.10.14 21:23:55.376 Si-12.17_custom,H1: history begins from 2017.09.21 10:00
2017.10.14 21:23:55.377 BR Splice: symbol to be synchronized
2017.10.14 21:23:55.377 BR Splice: symbol synchronized, 3624 bytes of symbol info received
2017.10.14 21:23:55.377 BR Splice: history synchronization started
2017.10.14 21:23:55.379 BR Splice: load 33 bytes of history data to synchronize in 0:00:00.000
2017.10.14 21:23:55.379 BR Splice: history synchronized from 2015.01.05 to 2017.10.13
2017.10.14 21:23:55.538 BR Splice,Daily: history cache allocated for 464 bars and contains 440 bars from 2016.01.04 00:00 to 2017.09.29 00:00
2017.10.14 21:23:55.539 BR Splice,Daily: history begins from 2016.01.04 00:00
2017.10.14 21:23:55.661 Si-12.17_custom,H4: history cache allocated for 2785 bars and contains 28 bars from 2017.09.21 08:00 to 2017.09.29 20:00
2017.10.14 21:23:55.661 Si-12.17_custom,H4: history begins from 2017.09.21 08:00
2017.10.14 21:23:55.856 BR Splice,H4: history cache allocated for 2785 bars and contains 1759 bars from 2016.01.04 08:00 to 2017.09.29 20:00
2017.10.14 21:23:55.856 BR Splice,H4: history begins from 2016.01.04 08:00
 

Saudações!
Estou criando um índice sintético com base na convolução linear de vários instrumentos. (SYMBOL1*X1+SYMBOL2*X2+....SYMBOLn*Xn).
Eu estava planejando visualizá-lo por meio de um indicador, mas me deparei com símbolos personalizados, acho que será muito mais conveniente para a percepção.
Faço isso por meio de funções de tick (CustomTicksUpdate).

Não consigo fazer com que o símbolo personalizado "tique". Existe algum exemplo de implementação dessa tarefa exatamente por meio de dados de tique?

Faço isso de forma muito simples: criei um símbolo e, em seguida, no script.

   MqlTick tick[];
   ArrayResize(tick, 1);
   tick[0].ask=indexAsk;
   tick[0].bid=indexBid;
   tick[0].flags=TICK_FLAG_BID|TICK_FLAG_ASK;
//---
   CustomTicksUpdate("ARBINDEX",tick);

Onde indexAsk e indexBid são meus preços calculados.
Pensei que, se eu executasse esse script em qualquer instrumento várias vezes, formaria algum histórico de cotações em meu símbolo, mas há "Waiting for update".
Minha compilação: 1643
Ficaria grato por sua ajuda.

 
bistreevseh:

Minha compilação: 1643

Pegue a 1653 (há mudanças significativas nesse tópico) e, se não funcionar, poste aqui.