Respuesta

Video Tutorial SQ Max Velocidad y Rendimiento CPU,Ram,Disco y Extra 6k Strategy Quest challenge

92 respuestas

gentmat

Cliente, bbp_participante, comunidad, 234 respuestas.

Visitar el perfil

hace 7 años #115334

https://www.youtube.com/watch?v=l6oRsTNm0yc

// Este es el link del video , Mirenlo espero que les guste . SÍ soy árabe y el acento sigue
así que si tienes algún problema con ello "lo siento mucho pero tengo que MATARTE".

Un gran crédito va a "GeekTrader" , Este video tutorial es para enseñarle cómo a la velocidad máxima de SQ 3 .
Tweaking CPU,rams y discos duros / SSD 's

El post original es como 10 páginas + que parece un poco complicado para los principiantes aquí, así que lo explicó
paso a paso en este video + añadido más ajustes de mi propia (Espero que ayude a los principiantes e incluso los usuarios profesionales de SQ).

Al final del video es una búsqueda de personas para contribuir más filtrando algunas buenas estrategias y nos muestran el procedimiento .. Estoy seguro de que cada profesional elegirá una estrategia diferente (s) tenemos que aprender de los contribuyentes.

Enlaces del vídeo:

https://www.youtube.com/watch?v=l6oRsTNm0yc

* Estrategias : https://drive.google.com/file/d/0B83k2vKtYK80UWNuWDZsenpQNzQ/view?usp=sharing

* Java versión 9 : http://cdn.azul.com/zulu-pre/bin/zulu…

* El scipt A utilizar para la apertura por lotes de SQ, Crear nuevo archivo .bat y añadir esta línea de códigos y pulse
guardar . Mira el vídeo para aprender a ajustar los parámetros.

 

 

 

@echo off
set NúmeroDeInstanciasSQ=10
set MainSQLocation=C:/StrategyQuant
set TempSQLocation=C:/temp
set SQParameters=-J-server -J-Xmx1g -J-XX:+DisableExplicitGC -J-XX:+AggressiveOpts -J-XX:+UseSerialGC 
 
 
rmdir "%MainSQLocation%/temp" /S /Q
rmdir "%MainSQLocation%/log" /S /Q
rmdir "%TempSQLocation%/strategyquant-temp" /S /Q
mkdir "%TempSQLocation%/strategyquant-temp"
 
FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
mkdir "%TempSQLocation%/strategyquant-temp/%%A"
)
FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
compact /c /s: "%TempSQLocation%/strategyquant-temp/%%A"
)
c:
FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
xcopy "%MainSQLocation%" "%TempSQLocation%/strategyquant-temp/%%A" /E /Y
CD "%TempSQLocation%/strategyquant-temp/%%A"
start /LOW StrategyQuant64.exe %SQParámetros%
)
 
 
 

Este es un nuevo Script si desea cambiar el nombre de cada instancia para que pueda conocer el trabajo de cada instancia ( si no necesita esta opción utilice el código anterior )
1- NumberOfSQInstances= "al número de instancias que quieras ejecutar" Digamos "X" instancias
2- set arrayline[1]=CrossMaStrategyInstance
set arrayline[2]=RSIStrategyInstance
.... Continúa declarando más para ajustar tus instancias X
digamos que queremos 3 instancias así que añadiré una más
arrayline[3]=otraNuevaInstancia

El código es :

 

@echo off
setlocal enabledelayedexpansion
 
 
 
 
set NúmeroDeInstanciasSQ=2
set arrayline[1]=CrossMaStrategyInstance
set arrayline[2]=RSIStrategyInstance
 
 
 
 
set MainSQLocation=C:/StrategyQuant
set TempSQLocation=C:/temp
set SQParameters=-J-server -J-Xmx1g -J-XX:+DisableExplicitGC -J-XX:+AggressiveOpts -J-XX:+UseSerialGC
 
rmdir "%MainSQLocation%/temp" /S /Q
rmdir "%MainSQLocation%/log" /S /Q
rmdir "%TempSQLocation%/strategyquant-temp" /S /Q
mkdir "%TempSQLocation%/strategyquant-temp"
 
 
FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
mkdir "%TempSQLocation%/strategyquant-temp/!arrayline[%%A]!"
)
FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
compact /c /s: "%TempSQLocation%/strategyquant-temp/!arrayline[%%A]!"
)
 
c:
FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
xcopy "%MainSQLocation%" "%TempSQLocation%/strategyquant-temp/!arrayline[%%A]!" /E /Y
CD "%TempSQLocation%/strategyquant-temp/!arrayline[%%A]!"
renombrar StrategyQuant64.exe !arrayline[%%A]!.exe
start /LOW !arrayline[%%A]!.exe %SQParameters%
 
)

0

clonex / Ivan Hudec

Cliente, bbp_participant, comunidad, sq-ultimate, colaborador, autor, editor, 271 respuestas.

Visitar el perfil

hace 7 años #139169

¿Cuántas estrategias tienes en el banco de datos?

0

AC1962

Cliente, bbp_participant, comunidad, sq-ultimate, 97 respuestas.

Visitar el perfil

hace 7 años #139175

Hola Clonex

 

1295 estrategias en la base de datos

 

AC1962

0

gentmat

Cliente, bbp_participante, comunidad, 234 respuestas.

Visitar el perfil

hace 7 años #139177

Hola gentmat

He estado ejecutando SQ durante 2,5 días, utilizando su script de archivo por lotes recomendado establecido en 1Gb RAM / hilo / instancia SQ. Cada instancia está configurada con Zulu 9.0.0.2.

Aunque la velocidad general de creación de estrategias ha mejorado mucho, observo que el medidor de consumo de memoria para cada instancia de SQ aumenta rápidamente con el tiempo, aparentemente en relación con la cantidad de estrategias guardadas en el banco de datos. Véase la captura de pantalla adjunta de medidor de consumo de memoria de la instancia SQ con mayor cantidad de estrategias en el banco de datos (~1300). Es casi hasta el límite de configuración de script de 1Gb RAM.

En tu video indicas que para esta configuración esperas que el medidor de consumo de memoria de SQ se mantenga razonablemente plano, sin exceder los 500Mb durante un periodo de una semana más o menos. ¿Puede explicarme por qué, después de sólo 2,5 días, mi SQ medidor de consumo de memoria ya se está acercando a 1 Gb, cuando se establece en 1 hilo y el uso de ¿Zulu 9.0.0.2? La configuración de mi PC es: Windows 10 home; CPU i7 de 4 núcleos; 16Gb RAM.

Cuando antes ejecutaba 1x instancia de SQ con el número de hilos fijado en 8, aunque la velocidad de creación de estrategias era más lenta, el medidor de consumo de memoria rara vez se acercó a 3Gb incluso después de 6 días de funcionamiento continuo SQ.

Tengo curiosidad, porque para aumentar mi asignación de RAM de 1 Gb a 2 Gb por instancia de SQ tendré que aumentar mi RAM total instalada de 16 Gb a 24 Gb o 32 Gb.

Agradeceré cualquier información que pueda aportar al respecto.

Gracias
AC1962

¿Número de habitantes? Cuánto es
¿Qué estás usando? ¡Y la entrada en el mercado !
¿Guardas en el indicador el máximo y el mínimo? Está utilizando amy de estos 4 indicadores?

Enviado desde mi iPhone usando Tapatalk

0

AC1962

Cliente, bbp_participant, comunidad, sq-ultimate, 97 respuestas.

Visitar el perfil

hace 7 años #139206

Hola gentmat

 

Ver más abajo

 

¿Número de habitantes? Cuánto es

Tamaño genético de la población = 100

¿Qué estás usando?

marco temporal = H4

 

Y la entrada en el mercado

Entrar en Stop

¿Y mantiene en indicador el más alto más bajo?

 

¿Está utilizando alguno de estos 4 indicadores?

Sí, los 4: MAYOR; MENOR; HR; LR

 

Gracias

AC1962

0

Dave

Cliente, bbp_participant, comunidad, sq-ultimate, 32 respuestas.

Visitar el perfil

hace 7 años #139207

Hola gentmat,

 

Apreciamos mucho que compartas tus análisis de rendimiento, sugerencias útiles, consejos de rendimiento y ese gran script para el archivo bat para crear múltiples sesiones de SQ. 

 

Mis sistemas son estaciones de trabajo Lenovo D30 personalizadas, cada una con doble Xeon E5-2670s con 16 núcleos (32 virtuales) y 128 GB de ram ea. Uno se dedica a la búsqueda de estrategias 24/7 y el otro se utiliza para analizar las estrategias para refinarlas en una cartera. ¡Anteriormente, estaba actualizando manualmente 32 copias de SQ cada vez que quería hacer un cambio ahora, sólo cambio la copia maestra ejecutar el archivo por lotes y la vida es mucho más fácil!

 

Los SSD de mis sistemas son solo para Windows 10 y, como tales, son relativamente pequeños (240 GB). SQ y los otros programas FX se ejecutan en un disco duro de 2 TB que acomoda fácilmente las instalaciones originales y 32 copias de SQ y todavía utiliza menos de 25% del espacio de la unidad. Usted mencionó el uso de Supercache y me gustaría sugerir una alternativa. PrimoCache ofrece una prueba gratuita de 60 días y luego un precio de compra de $30. La configuración es fácil y el rendimiento es excepcional. (No tengo ninguna afiliación con ninguno de los dos paquetes).

 

Llevaba tiempo preguntándome si era más eficiente utilizar la generación aleatoria o la evolución genética, así que utilicé tu script y creé un estudio pseudocientífico para intentar obtener algunos puntos de datos. He creado dos archivos por lotes basados en su script para generar 10 copias utilizando la evolución genética y 10 copias utilizando la selección aleatoria. Ambos se basaron exactamente en los mismos datos de precios, los mismos ajustes de spread y deslizamiento, los mismos intervalos de fechas entre el aprendizaje y la validación y las mismas condiciones de clasificación. (Ambos conjuntos de 10 copias se ejecutaron simultáneamente durante 24 - 36 horas, cuando se detuvieron y las estrategias que se crearon se contaron y guardaron para su posterior análisis. En cada una de las tres pruebas, el total de los 10 bancos de datos de Evolución Genética contenía al menos 200 veces el número de estrategias que había en los bancos de datos de Generación Aleatoria. Aquí están los datos resumidos de la última prueba de 24 horas:

 

Evolución genética:

Número de instancias: 10

Número mínimo de estrategias en el banco de datos: 33

Número máximo de estrategias en el banco de datos: 129

Número total de estrategias para las diez instancias: 582

 

Selección aleatoria:

Número de instancias: 10

Número mínimo de estrategias en el banco de datos: 0

Número máximo de estrategias en la base de datos: 2

Número total de estrategias para las diez instancias: 2

 

Ahora bien, que una persona realice tres pruebas para diferentes periodos de tiempo obviamente no constituye un estudio válido. Así que me gustaría preguntar si otros usuarios utilizan la Generación Aleatoria y, en caso afirmativo, si son capaces de generar estrategias más rápido. ¿Existe alguna otra ventaja en el uso de la Generación Aleatoria sobre la Evolución Genética?

 

________________________________________

Estos son los parámetros utilizados para esta prueba:

 

Datos: EURUSD M5 tick datos de Dukascopy

Fechas de las pruebas retrospectivas: 05.05.2003 hasta 11.04.2012

En la muestra del 05.05.2003 al 04.01.2010

Fuera de la muestra: del 04.01.2010 al 11.04.2012

Dispersión: 2,0

Deslizamiento 3.0**

Precisión de la prueba: M1

 

Criterios de clasificación: rechazar todo lo que coincida:

En la muestra:

1TP9Factor de ajuste: < 1.3

Ratio Retorno/DD: < 3.3

% Gana: < 30%

Número de operaciones: < 300

 

Fuera de muestra:

1TP9Factor de ajuste: < 1.3

Ratio Retorno/DD: < 1.1

% Gana: < 30%

Número de operaciones: < 100

 

** La primera prueba robusta fue determinar la sensibilidad al deslizamiento. Mi suposición, que puede ser incorrecta, es que si la estrategia ya funcionaba con 3 pip de deslizamiento sólo puede mejorar sin deslizamiento. Cualquier comentario u orientación son bienvenidos.

No te rindas nunca.

0

AC1962

Cliente, bbp_participant, comunidad, sq-ultimate, 97 respuestas.

Visitar el perfil

hace 7 años #139215

Hola Dave

 

Inicialmente he instalado SuperCache en mi 2x Windows 10 PC. Ha funcionado bien en un PC, pero hizo que el segundo se bloqueara continuamente al reiniciar. Comprobación de SuperCache soporte parece que se trata de un problema conocido. 3x soluciones se ofrecen, pero los dos primeros no funcionó para mí, y el tercero no tenía confianza de TI para intentarlo. Resultado neto fue que tuve que conseguir por proveedor de PC involucrado y terminó restablecimiento de Windows 10 para resolver el problema 🙁 y eliminar SuperCache. Después de buscar en la web también encontré PrimoCachePrimoCache, que no sólo es mucho más barato, sino que: tiene mejores valoraciones; ofrece un soporte en línea mucho más actualizado; tiene un foro activo; se instala limpiamente; más funciones, pero sigue siendo muy fácil de usar. Ahora tengo PrimoCache instalado en mis dos ordenadores y funciona de maravilla.

 

Después de las pruebas iniciales, ahora siempre y sólo uso la Evolución Genética, porque la característica de evolución proporciona automáticamente un proxy de realizar la mejora de múltiples estrategias una vez que una estrategia pasa los criterios de aceptación. A menudo, cuando SQ encuentra una estrategia que pasa al banco de datos, la Evolución Genética también creará una masa de estrategias de variación pasables basadas en la 1ª. Yo preferiría ver mi banco de datos lleno de 100 variaciones de estrategias de Evolución Genética, que sólo una estrategia aleatoria. Obviamente no asegura una estrategia robusta, pero claramente mejora las posibilidades de dar con una. Su prueba parece apoyar mi propio hallazgo.

 

Además, creo que el uso del excelente archivo por lotes de gentmat mejora las posibilidades de dar con una buena estrategia, ya que a menudo una de las múltiples instancias SQ de un único hilo producirá muchas más estrategias potencialmente viables que las otras instancias. Lo más probable es que esto no ocurriría tan fácilmente si sólo utilizara 1x instancia SQ para múltiples hilos. ¡Gracias de nuevo gentmat!

 

AC1962

0

gentmat

Cliente, bbp_participante, comunidad, 234 respuestas.

Visitar el perfil

hace 7 años #139392

Esta es una petición especial, sólo se utiliza si es necesario. de lo contrario utilice el código genérico que he publicado en la primera página aquí está el código (Para cambiar el nombre de cada instancia) ... Cada instancia sq3 será nombrada como usted desee. Ejemplo: CrossMaSq3Instance y asi sucesivamente.
Cambie NumberOfSQInstances=2 según sus necesidades.

Digamos que quiero 10 instancias: pondré NumberOfSQInstances=10
entonces tengo que crear 10 de estos :
set arrayline[1]=CrossMaStrategyInstance
set arrayline[2]=RSIStrategyInstance
set arrayline[3]..
set arrayline[4]...
set arrayline[5]..

.. hasta establecer arrayline[10]..= su nombre cualquiera que fuera .

El código es el siguiente guardarlo en un archivo .bat

@echo off
setlocal enabledelayedexpansion

set NúmeroDeInstanciasSQ=2
set arrayline[1]=CrossMaStrategyInstance
set arrayline[2]=RSIStrategyInstance

set MainSQLocation=C:\StrategyQuant
set TempSQLocation=C:\temp
set SQParameters=-J-server -J-Xmx1g -J-XX:+DisableExplicitGC -J-XX:+AggressiveOpts -J-XX:+UseSerialGC

rmdir "%MainSQLocation%\temp" /S /Q
rmdir "%MainSQLocation%\log" /S /Q
rmdir "%TempSQLocation%\strategyquant-temp" /S /Q
mkdir "%TempSQLocation%strategyquant-temp"

FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
mkdir "%TempSQLocation%\strategyquant-temp\!arrayline[%%A]!"
)
FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
compact /c /s: "%TempSQLocation%\strategyquant-temp\!arrayline[%%A]!"
)

c:
FOR /L %%A IN (1,1,%NumberOfSQInstances%) DO (
xcopy "%MainSQLocation%" "%TempSQLocation%\strategyquant-temp\!arrayline[%%A]!" /E /Y
CD "%TempSQLocation%\strategyquant-temp\!arrayline[%%A]!"
renombrar StrategyQuant64.exe !arrayline[%%A]!.exe
start /LOW !arrayline[%%A]!.exe %SQParameters%

)

0

AC1962

Cliente, bbp_participant, comunidad, sq-ultimate, 97 respuestas.

Visitar el perfil

hace 7 años #139433

Hola gentmat

 

Genial. Gracias por la modificación .bat. Funciona muy bien.

 

Muy agradecido

AC1962

0

turodstaff

Cliente, bbp_participant, comunidad, 60 respuestas.

Visitar el perfil

hace 7 años #139439

 Creo que si la estrategia se basa en datos históricos de buena calidad, no será estable, fallaré el monte carlo seguro.

0

gentmat

Cliente, bbp_participante, comunidad, 234 respuestas.

Visitar el perfil

hace 7 años #139512

Hola gentmat

Genial. Gracias por la modificación .bat. Funciona muy bien.

Muy agradecido
AC1962

Había variables no utilizadas en el script, ahora las he borrado.
No era afecto pero borrado de todos modos para ser más limpio

Enviado desde mi iPhone usando Tapatalk

0

turodstaff

Cliente, bbp_participant, comunidad, 60 respuestas.

Visitar el perfil

hace 7 años #139700

he utilizado 2 cpu e5 2670 sistema para ejecutar de esta manera, pero se estrelló dos veces en menos de 24 horas, que generan archivo de error como este

 

Oct 25, 2016 1:49:37 AM java.util.prefs.WindowsPreferences
ADVERTENCIA: No se pudo abrir/crear el nodo raíz prefs Software\JavaSoft\Prefs en la raíz 0x80000002. Windows RegCreateKeyEx(...) devolvió el código de error 5.
 

 

¿alguien podría ayudar en esto, ¿cuál es la causa del problema.

 

Gracias .

0

turodstaff

Cliente, bbp_participant, comunidad, 60 respuestas.

Visitar el perfil

hace 7 años #139701

la memoria total es de 32G ,ya que tiene 32 nucleos logicos, hice 30 y 28 copias , ¿es eso causado por no tener suficiente memoria? pero cada uno puso el limite a 1G, 

0

Dave

Cliente, bbp_participant, comunidad, sq-ultimate, 32 respuestas.

Visitar el perfil

hace 7 años #139703

turodstaff,

 

En pocas palabras, con 32 núcleos (¿hilos?) 32 GB no son suficientes para almacenar una gran cantidad de copias de SQ ejecutándose al mismo tiempo. El primer problema es que tener dos CPUs para un total de 32 núcleos no es lo mismo que una única CPU de 32 núcleos. Una sola CPU E5-2670 v1 está valorada por PassMark con una puntuación de 12.505 mientras que una CPU dual E5-2670 v1 está valorada con 18.472. La compartición de recursos (memoria, acceso a disco, etc.) conlleva mucha sobrecarga e ineficiencia. En este caso, un sistema de doble CPU menos de 150% de dos ordenadores E5-2670 independientes. Resulta que uso dos de estas máquinas y aunque son menos potentes eran la mejor potencia de procesamiento cpu disponible para el dinero.

 

Esta ineficiencia inherente con los recursos no CPU se agrava cuando no hay suficiente memoria. Si quieres hacerte una idea de cuál es tu memoria "libre" real, arranca sin nada cargado y abre el administrador de tareas. Eso le mostrará la cantidad de memoria que se está utilizando. La memoria libre es 100% - la cantidad mostrada en el administrador de tareas. Por ejemplo, mi única cpu I7-4770 (que utilicé antes de comprar el E5-2670s) con 16GB muestra 7% de utilización de memoria después de un nuevo arranque. Eso significa que la memoria máxima que tengo disponible es 93% de los 16GB o no más de 14,88 GB. Si estás asignando 1GB a cada copia de SQ entonces el número máximo en teoría que deberías ser capaz de ejecutar es 14 copias. En realidad, yo solía ejecutar 12 copias con 1 hilo utilizado y 1 GB asignado y vivía con caídas cada 1 - 2 semanas.

 

Si utilizas otros programas, como antivirus o caché de disco, el número de copias disminuye en consecuencia. Si utilizas el ordenador para otras tareas, tendrás que asignar menos copias. Otro factor es que el uso de memoria no es lineal con cada instancia. Por cada copia de SQ que abres, SQ abre aproximadamente 50 hilos adicionales, cada uno de los cuales ocupa más memoria del sistema, por lo que no existe una fórmula exacta que yo conozca para encontrar la combinación máxima u óptima, y todos ellos necesitan coordinarse con el sistema operativo, las CPU, los controladores de memoria, los controladores de disco duro, etc., lo que requiere más recursos. Piense en ello como los niños en el jardín de infancia los problemas son exponenciales, no lineales.

 

Para obtener el máximo rendimiento, tendrá que utilizar un programa de caché de disco como PrimoCache, de lo contrario su ordenador se atascará releyendo datos. Ese programa también requerirá entre 15 y 25% de su RAM, lo que significa menos instancias, pero la mejora del rendimiento merece la pena. Mis sistemas se estaban atascando con 20 - 25 instancias con un uso máximo de la CPU de 50% - 70% a pesar de que tenía 128GB. Cuando instalé PrimoCache y le asigné 32 GB, pude cargar 40 instancias con 2 GB asignados a cada una, para un total de 80 GB de uso de memoria más los 32 GB para la caché, y el cuello de botella pasó a ser el uso de la CPU, que ahora es de 100% en todos los subprocesos, en lugar del rendimiento del disco duro. Si lo piensas bien, SQ lee los mismos datos para cada prueba y si esos datos pueden residir en RAM en lugar de en una placa HDD y simplemente usando PrimoCache (o cualquier otro programa de caché) aumentará considerablemente.

 

Utilizo dos sistemas de 32 hilos (e5-2670 v1) cada uno con 128 GB y ambos con PrimoCache de 32 GB. Un ordenador se utiliza las 24 horas del día, los 7 días de la semana, 100% del tiempo, generando estrategias y ejecutando 40 o más instancias de SQ (un subproceso por instancia) con 2 GB asignados a cada instancia. El segundo es mi ordenador diario, el servidor de archivos de la casa, el servidor de copias de seguridad y el servidor de vídeo para todos los contenidos multimedia de la casa, y sigue ejecutando entre 24 y 28 instancias de SQ a 2 GB por copia. Una cosa - Tengo que reiniciar cada máquina una vez cada una o dos semanas, ya que hay una fuga de memoria en alguna parte.

 

Espero que esto le ayude.

Dave

No te rindas nunca.

0

turodstaff

Cliente, bbp_participant, comunidad, 60 respuestas.

Visitar el perfil

hace 7 años #139710

Dave,

Muchas gracias por la ilustración tan detallada de los problemas y por compartir las experiencias. 

 

La razón por la que lo hice es que en las primeras 12 horas después de empezar a correr el medidor de memoria dentro de cada trabajo es casi plana, que estaba manteniendo alrededor de 700Mb y el uso total de memoria 77% y la CPU es como 100% cargado. Así que creí que estaba bien para mantener como este, pero después de la noche se estrelló.   

 Así que reduje a 14 trabajos cada uno con 2gb asignados, por lo que la CPU está ahora en 50% y la memoria alrededor de 40%, lo que debería durar más que la primera configuración, pero basado en su experiencia parece que todavía no es suficiente. Estoy recibiendo un total de 64Gb de memoria ahora también voy a tratar la sugerencia acerca de la memoria caché de disco.

Una vez más, le agradezco su ayuda.

0

gentmat

Cliente, bbp_participante, comunidad, 234 respuestas.

Visitar el perfil

hace 7 años #139715

Le enviaré un correo electrónico para intentar solucionarlo. La adición de GB es una buena idea para asegurarse de todos modos

0

Viendo 15 respuestas - de la 31 a la 45 (de un total de 92)

1 2 3 4 5 6 7