17. 1. 2022

5 3

Déboguer une variable dans AlgoWizard

Si nous créons un modèle ou exécutons une stratégie dans AlgoWizard, nous avons parfois besoin d'afficher la variable dans un journal pour pouvoir la déboguer.

Nous avons cette fonction fdebug dans l'éditeur de code, nous avions besoin d'une fonction similaire dans AlgoWizard.

 

Voici une fonction fDebug pour afficher la variable dans un fichier journal.

 

1/ Pour l'installer, nous devons importer cette SQExtension V2 dans le CodeEditor et redémarrer SQX.

2/ Pour le faire fonctionner dans AlgoWizard, il suffit de cliquer sur "Ajouter une règle" , sélectionner If Then / OnBarUpdate   (voir Capture4a)

 

Dans le cadre de la si les conditionsSélectionnez la condition dans laquelle la fonction imprimera la variable dans le journal.

voir "Capture4a" et "Capture2a" ci-jointes

 

En Ensuite, l'action , assigner une variable avec la fonction Debug. Nous pouvons sélectionner cette fonction lorsque nous éditons un état neuf 

voir "Capture3" ci-joint

 

Cette fonction utilise la fonction fdebug en java pour l'afficher dans le journal de StrategyQuant dans ce répertoire : "\NStrategyQuantX135\Nuser\NStrategyQuant".

Voici un exemple de résultat

19:51:54.087 [Blocking computeThread common #26 - Builder_2-Generation 3.0.61] INFO c.s.tradinglib.debug.Debugger - fDebug - Var : 0
19:51:54.087 [Blocking computeThread common #17 - Builder_2-Generation 3.0.43] INFO c.s.tradinglib.debug.Debugger - fDebug - Var : 0

 

 

J'ai joint un exemple de avec une règle de débogage, vous devez remplacer la variable6 par n'importe quelle variable que vous voulez observer. (Variable6 n'est qu'une variable vide pour illustrer cet exemple)

 

Vous pouvez activer le mode Debug sur en commutant le bouton "Mode débogage" paramètre à 1. StrategyQuant ralentira pour écrire le journal sur le disque dur.

Vous pouvez désactiver la fonction Debug en activant le mode "Mode débogage" paramètre à 0 pour faire fonctionner l'ordinateur.

(En AlgoWizard voir "Capture5" et dans le retester voir "Capture6-7-8-9" attaché pour changer le paramètre d'une stratégie)

 

J'espère que cela aidera la communauté StrategyQuant.

 

package SQ.Blocks.Functions ;

import SQ.Internal.ValueBlock ;

import com.strategyquant.lib.* ;
import com.strategyquant.datalib.* ;
import com.strategyquant.tradinglib.* ;

@BuildingBlock(name="(Deb) Debug", display="Debug(#varName# , #Value#)", returnType = ReturnTypes.PriceOrNumber)
@Help("Log to file VarName , Value")
@SortOrder(1700)
@IgnoreInBuilder

public class Debug extends ValueBlock
{

    @Parameter(defaultValue="Var : " )
    @Help("Nom de la variable")
    public String varName ;

    @Paramètre
    @Help("Valeur de la variable")
    public IBlock Value ;

    
    //------------------------------------------------------------------------
    
    @Override
    public double OnBlockEvaluate(int relativeShift) throws TradingException
    {
        fdebug("Debug ", varName + Value.evaluateBlock(relativeShift)) ;
        return 1 ;
    }
}

 

S'abonner
Notification pour
3 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
ytu
ytu
29. 12. 2021 11:23 pm

Il semble que les captures 8 et 9 soient identiques.
Pouvez-vous, s'il vous plaît, télécharger à nouveau les images ?
Merci beaucoup.