Documentation

Applications

Dernière mise à jour le 18. 11. 2021 par clonex / Ivan Hudec

Exemple - Ratio Trade Edge

Le ratio d'avantage nous indique à quel point le potentiel d'une transaction donnée était élevé. Le calcul est le rapport entre la MFE normalisée et la MAE normalisée. Nous avons déjà abordé la question du Edge Ratio dans cet article article. Dans le tutoriel suivant, nous allons vous montrer comment créer une nouvelle colonne de transactions qui nous permettra d'analyser l'Edge Ratio de chaque transaction.

Étape 1 - Créer une nouvelle colonne Commerce

 

Ouvrez CodeEditor, cliquez sur Create new et choisissez l'option List of trades column - Name it. EdgeRatioTrade.

Cela créera un nouveau snippet EdgeRatioTrade.java dans le dossier Utilisateur/Snippets/SQ/Colonnes/Trades

Définissons Decimal2 dans le constructeur afin d'obtenir la valeur avec deux décimales.

 

public class EdgeRatioTrade extends TradelistColumn {
    
    public EdgeRatioTrade() {
        super("EdgeRatioTrade", Decimal2) ;
        setWidth(80) ;
    }


Étape 2 - Mise en œuvre de la méthode getValue()

 

Cette méthode a pour paramètre Commande order est une classe qui stocke les valeurs de chaque ordre de la stratégie. En même temps, cette classe contient des méthodes qui nous permettent de trier ou d'identifier l'ordre. En arrière-plan, StrategyQuant X appelle la méthode getValue(Order order) et produit une valeur pour chaque ordre de la stratégie.

 

    @Override
    public Object getValue(Order order) {
    
    double mae = order.PipsMAE ; //obtient le MAE de l'ordre en pips
    double mfe = order.PipsMFE ; // obtient la MAE de l'ordre en pips
    double atrOnOpen = order.ATROnOpen ; // obtient l'ATR de l'ordre en pips

    double normMAE = mae/atrOnOpen ; // obtient le MAE normalisé
    double normMFE = mfe/atrOnOpen ; // obtient l'EMF normalisé

    double eRTrade = SQUtils.safeDivide(normMFE,normMAE) ; // SQUtils.safeDivide précède l'exception de division par zéro nulle.

    return eRTrade ;

}

 

Conseil:

Si vous souhaitez déboguer votre code, ajoutez simplement la fonction fdebug("","") à votre code. Le journal dans lequel les valeurs sont écrites se trouve dans le dossier user/Log/StrategyQuant.

 

@Override
    public Object getValue(Order order) {
        
        double mae = order.PipsMAE ; //obtient le MAE de l'ordre en pips
        double mfe = order.PipsMFE ; // obtient la MAE de l'ordre en pips
        double atrOnOpen = order.ATROnOpen ; // obtient l'ATR de l'ordre en pips

        double normMAE = mae/atrOnOpen ; // obtient le MAE normalisé
        double normMFE = mfe/atrOnOpen ; // obtient l'EMF normalisé

        double eRTrade = SQUtils.safeDivide(normMFE,normMAE) ; // SQUtils.safeDivide précède l'exception de division par zéro nulle.

        /// fdebug
        fdebug("EdgeRatioTrade---> "," order.Ticket : "+order.Ticket+" order.PipsMAE : "+order.PipsMAE+" order.ATROnOpen : "+order.ATROnOpen) ;

        return eRTrade ;

    }

 

Étape 3 - Ajout d'un extrait à la liste des métiers

 

Après avoir compilé l'extrait et redémarré StrategyQuantX, vous pouvez ajouter l'extrait à la liste des opérations.

 

 

Code complet commenté de l'extrait

 

package SQ.Columns.Trades ;

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

public class EdgeRatioTrade extends TradelistColumn {
    
    public EdgeRatioTrade() {
        super("EdgeRatioTrade", Decimal2) ;
        setWidth(80) ;
    }
    
    @Override
    public Object getValue(Order order) {
        
        double mae = order.PipsMAE ; //obtient le MAE de l'ordre en pips
        double mfe = order.PipsMFE ; // obtient la MAE de l'ordre en pips
        double atrOnOpen = order.ATROnOpen ; // obtient l'ATR de l'ordre en pips

        double normMAE = mae/atrOnOpen ; // obtient le MAE normalisé
        double normMFE = mfe/atrOnOpen ; // obtient l'EMF normalisé

        double eRTrade = SQUtils.safeDivide(normMFE,normMAE) ; // SQUtils.safeDivide précède l'exception de division par zéro nulle.

        return eRTrade ;

    }

}

 

Cet article a-t-il été utile ? L'article était utile L'article n'était pas utile

S'abonner
Notification pour
1 Commentaire
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Emmanuel
23. 12. 2021 12:29 am

très bien ! !!