Discusión sobre el artículo "Creación y simulación de símbolos personalizados en MetaTrader 5" - página 2

 
Rashid Umarov:

Según los registros, la divisa del depósito = USD, la prueba se realiza en el símbolo EURCHF. El probador necesita cotizaciones EURUSD o USDEUR para calcular el margen.

Los busca entre los símbolos disponibles y encuentra EURUSD, la descarga y la sincronización se llevan a cabo.

La captura de pantallamuestra la configuración de todas las divisas del símbolo personalizado, que se utiliza para la prueba. Y nada debe depender del nombre del símbolo personalizado.

 
fxsaber:

Y nada debe depender del nombre del símbolo personalizado.

Lea atentamente el artículo

Probar estrategias de negociación en un símbolo personalizado

El MetaTrader 5 Multi-threaded Strategy Tester le permite probar estrategias comerciales en muchos instrumentos financieros en ticks reales. Aproveche todas sus ventajas para probar estrategias en sus propios símbolos. Todo lo que necesita hacer es importar un historial de minutos (o mejor aún, de ticks) de alta calidad y configurar las propiedades de cada instrumento necesarias para recrear el entorno de negociación en detalle. Después de eso, sólo tiene que seleccionar el Asesor Experto deseado y establecer la configuración de prueba. Todo se hace de la misma manera que con los símbolos de negociación regulares proporcionados por su corredor.

Es importante proporcionar al probador todos los símbolos necesarios para calcular los requisitos de margen y el beneficio en la divisa de su cuenta de operaciones. Al calcular el margen y el beneficio, el comprobador de estrategias utiliza automáticamente los tipos de cambio cruzados disponibles. Por ejemplo, hemos creado el símbolo AUDCAD.custom con el tipo de cálculo de margen Forex y la divisa de nuestra cuenta es USD. A continuación, bas ándose en el nombre del instrumento forex , el comprobador busca los símbolos necesarios en el siguiente orden:

  1. en primer lugar, se buscan símbolos como AUDUSD.custom (para el cálculo del margen) y USDCAD.custom (para el cálculo del beneficio en las operaciones).
  2. luego, si falta alguno de estos instrumentos, se busca el primer símbolo, que corresponde por su nombre a los pares de divisas necesarios - AUDUSD y USDCAD respectivamente. Por ejemplo, si se encuentra AUDUSD.b y USDCAD.b, significa que los tipos de estos instrumentos se utilizarán para el cálculo de márgenes y beneficios.

 
Rashid Umarov:

Leer atentamente el artículo

Cuando leí el artículo por primera vez, me di cuenta enseguida. Para un probador, los conceptos de "DivisaBase del Símbolo", "Divisa Margen del Símbolo" y "Divisa Beneficio del Símbolo" no son nada?

Quería probar un símbolo personalizado XXXYYY - sí, exactamente con ese nombre. Es un clon del símbolo EURUSD. Es decir, todas las divisas del símbolo están claramente definidas.

¿Y ahora hay que rechazar la prueba porque el nombre no es de su agrado?

Todos los ajustes del símbolo se encuentran en sus propiedades, no en el nombre.

¿Cómo hacer que el símbolo EURCHF_custom perciba sus ajustes claramente definidos y no los ignore fijándose sólo en el nombre?

Cambiado el Método de Cálculo de Forex a 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

Sigue sacando dos majors, ignorando completamente los ajustes del símbolo.

 
Muchos ajustes del tiempo de ejecución dependen del Grupo de usuarios de caracteres. ¿Cómo lo configuro?
 

Foro sobre trading, sistemas automatizados de trading y comprobación de estrategias de trading

Bibliotecas: Symbol

fxsaber, 2017.09.20 07:31 AM.

Toma una versión demo gratuita del Asesor Experto del Mercado y las carreras en el probador en las cotizaciones frescas, copiador toma los datos del resultado del probador. En consecuencia, la versión de pago no es necesario.


Tal vez es necesario prohibir Mercado Asesores Expertos backtest en símbolos personalizados ...

 

Si necesito crear una copia interactiva completa de un símbolo, ¿sólo debo lanzar ticks a través de CustomTicksAdd a través de indicadores (no omiten ticks)?

¿Los servicios omitirán los ticks al igual que los Asesores Expertos?

 
Carece de esta funcionalidad
// Lanza un vaso, desencadenando un evento BookEvent en el personaje personalizado
bool  CustomMarketBookSet( 
   const string        symbol,     // símbolo 
   const MqlBookInfo&  book[]      // referencia de matriz
   );
Formo copas sintéticas. Me gustaría trabajar con ellos como con copas convencionales.
 

Forex es bueno, pero todavía no entiendo cómo hacer que el probador funcione con futuros Si en MOEX?

He copiado el historial y la configuración de instrumentos del original, pero la salida está vacía.

Así es como se ve el registro - No sé cómo interpretarlo

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
 

Saludos!
Estoy haciendo un índice sintético basado en la convolución lineal de varios instrumentos. (SYMBOL1*X1+SYMBOL2*X2+....SYMBOLn*Xn).
Pensaba visualizarlo a través de un indicador, pero me he topado con los símbolos personalizados, creo que será mucho más cómodo para la percepción.
Lo hago a través de funciones de tick (CustomTicksUpdate).

No consigo que el símbolo personalizado haga "tick", ¿hay en algún sitio algún ejemplo de implementar esta tarea exactamente a través de datos de tick?

Lo hago muy simple: he creado un símbolo, y luego en el 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);

Donde indexAsk e indexBid son mis precios calculados.
Pensé que si ejecuto este script en cualquier instrumento varias veces, formaré algún historial de cotizaciones en mi símbolo, pero aparece "Waiting for update".
Mi build: 1643
Agradecería su ayuda.

 
bistreevseh:

Mi build: 1643

Tome 1653 (hay cambios significativos allí sobre este tema) y si no funciona, publique aquí.