Documentación

Aplicaciones

Última actualización el 17. 6. 2020 by Mark Fric

Registro y consola de depuración

DebugConsole en StrategyQuant X está pensado para permitir una depuración/registro más fácil cuando desarrolle sus propios fragmentos en SQ CodeEditor.

Es fácil de usar y le permite ver lo que ocurre "entre bastidores" cuando se ejecuta su fragmento.

 

Cómo utilizarlo en código

Hay dos métodos disponibles:

depurar(categoría, mensaje)
registra el mensaje en una consola de depuración (más información al respecto más adelante)

y

fdebug(categoría, mensaje)
registra el mensaje en un archivo de registro estándar ubicado en /user/log/StrategyQuant

Ambos métodos tienen los mismos dos parámetros:

  • categoría (cadena)- nombre de la categoría de registro - cuando tienes múltiples mensajes de depuración puedes categorizarlos para poder archivar los mensajes por categoría
  • mensaje (cadena) - un mensaje de texto real a registrar

Nota - las funciones debug() y fdebug() deberían estar disponibles en todas las clases de snippet en builds a partir de 128. En la Build 128 estos métodos faltan en las clases de indicadores, por lo que puede utilizar llamadas alternativas:
debug() -> DebugConsole.log()
log() -> Log.info()

 

Ejemplo de uso

Añadiremos un registro a un indicador CCI, a su OnBarUpdate() en el que se calculan los valores de los indicadores:

@Override
protected void OnBarUpdate() throws TradingException {
    averageCalculator.onBarUpdate(Input.get(0), CurrentBar);
    
    if (CurrentBar == 0) {
        Valor.set(0, 0);
    }
    else {
        double media = 0;
        double sma = mediaCalculator.getValue();
        
        for (int idx = Math.min(CurrentBar, Period - 1); idx >= 0; idx--) {
            media += Math.abs(Input.get(idx) - sma);
        }
        
        if(media < 0.0000000001) {
            Valor.set(0, 0);
        } else {
            double cci = (Input.get(0) - sma) / (media == 0 ? 1 : (0.015 * (media / Math.min(Period, CurrentBar + 1))));
            Value.set(0, cci);

            debug("CCI", "El valor de CCI es: "+cci);
        }
    }
}

 

Observe que sólo hemos añadido una línea:

debug("CCI", "El valor de CCI es: "+cci);

Utilizamos depurar() por lo que los mensajes registrados se añadieron a una consola de depuración especial que está disponible en la parte superior derecha bajo el icono de depuración:

Icono de la consola de depuración

Cuando lo abra después de ejecutar una prueba de alguna estrategia que contenga el indicador CCI, verá que se registraron los mensajes:

Se muestra la DebugConsole

 

 

¿Le ha resultado útil este artículo? El artículo era útil El artículo no era útil

4 Comentarios
Más antiguo
Más reciente Más votados
Emmanuel
24. 11. 2021 9:54 am

si utilizo el comando fdebugfunciona, puedo ver la salida en el registro, pero si utilizo depurar no aparece nada en la consola de depuración

No puedo seleccionar ninguna categoría que no sea "todas".

SteveChou
14. 3. 2023 6:45 am

¿Ha fallado este método ahora? Porque no se puede utilizar
depurar(categoría, mensaje) y fdebug(categoría, mensaje) en el editor de código directamente.

Emmanuel
21. 4. 2023 11:50

título extraño : Registro y DebugColsole

Shelton Mariwa Paulino
17. 11. 2024 22:27

Hola,
Estoy tratando de hacer algo similar: la propagación de registro. Sin embargo mi archivo .mp5 da un error al compilar. ¿Alguien sabe cuál es el problema con el código?
Muchas gracias

pseudocódigo ("Spread" como variable doble):

//——————————————————————–
// Regla de negociación: Asignar Variable (En Apertura de Barra)
//——————————————————————–          
si ¿Está abierto el bar?
{
    // Acción #1
    Difundir = Diferencial en puntos("Actual");
}

//——————————————————————–
// Regla de negociación: Grabación (En Barra Abierta)
//——————————————————————–          
si ¿Está abierto el bar?
{
    // Acción #1
   Registrar en archivo: "NQ_spread.txt", “”el diferencial actual es, "+Spread";}

Este es el mensaje que escribí en el cuadro de mensajes LogToFile:

"el diferencial actual es, "+Diferencial