Dokumentation

Anwendungen

Zuletzt aktualisiert am 18. 11. 2021 von clonex / Ivan Hudec

Beispiel - Trade Edge Ratio

Die Edge Ratio sagt uns, wie hoch das Potenzial für einen bestimmten Handel war. Die Berechnung ist das Verhältnis von normalisiertem MFE und normalisiertem MAE. Wir haben bereits über die Edge Ratio in diesem Artikel geschrieben Artikel. Im folgenden Tutorial zeigen wir Ihnen, wie Sie eine neue Handelsspalte erstellen, die es uns ermöglicht, das Edge Ratio jedes Handels zu analysieren.

Schritt 1 - Erstellen einer neuen Handelsspalte

 

Öffnen Sie den CodeEditor, klicken Sie auf "Create new" und wählen Sie die Option "List of trades column" - Benennen Sie sie EdgeRatioTrade.

Dadurch wird ein neues Snippet erstellt EdgeRatioTrade.java im Ordner Benutzer/Schnipsel/SQ/Spalten/Trades

Setzen wir Decimal2 im Konstruktor, um den Wert mit zwei Dezimalstellen zu erhalten.

 

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


Schritt 2 - Implementierung der Methode getValue()

 

Diese Methode hat im Parameter Bestellung order ist eine Klasse, die die Werte der einzelnen Aufträge der Strategie speichert. Gleichzeitig enthält diese Klasse Methoden, die es uns erlauben, die Order zu sortieren oder zu identifizieren. Im Hintergrund ruft StrategyQuant X die Methode getValue(Order order) auf und erzeugt einen Wert für jede Order in der Strategie.

 

    @Override
    public Object getValue(Order order) {
    
    double mae = order.PipsMAE; //Erhalte Order-MAE in Pips
    double mfe = order.PipsMFE; // liefert die MAE der Order in Pips
    double atrOnOpen = order.ATROnOpen; // liefert die ATR der Order in Pips

    double normMAE = mae/atrOnOpen; // liefert normalisierte MAE
    double normMFE = mfe/atrOnOpen; // liefert normierte MFE

    double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide geht der Null-Null-Divide-Ausnahme voraus

    return eRTrade;

}

 

Tipp:

Wenn Sie Ihren Code debuggen wollen, fügen Sie einfach die Funktion fdebug("","") in Ihren Code ein. Das Protokoll, in das die Werte geschrieben werden, befindet sich im Ordner user/Log/StrategyQuant.

 

@Override
    public Object getValue(Order order) {
        
        double mae = order.PipsMAE; //Erhalte Order-MAE in Pips
        double mfe = order.PipsMFE; // liefert die MAE der Order in Pips
        double atrOnOpen = order.ATROnOpen; // liefert die ATR der Order in Pips

        double normMAE = mae/atrOnOpen; // liefert normalisierte MAE
        double normMFE = mfe/atrOnOpen; // liefert normierte MFE

        double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide geht der Null-Null-Divide-Ausnahme voraus

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

        return eRTrade;

    }

 

Schritt 3 - Hinzufügen eines Snippets zur Liste der Gewerke

 

Nachdem Sie das Snippet kompiliert und StrategyQuantX neu gestartet haben, können Sie das Snippet in die Handelsliste aufnehmen.

 

 

Vollständig kommentierter Code des Snippets

 

Paket 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; //Erhalte Order-MAE in Pips
        double mfe = order.PipsMFE; // liefert die MAE der Order in Pips
        double atrOnOpen = order.ATROnOpen; // liefert die ATR der Order in Pips

        double normMAE = mae/atrOnOpen; // liefert normalisierte MAE
        double normMFE = mfe/atrOnOpen; // liefert normierte MFE

        double eRTrade = SQUtils.safeDivide(normMFE,normMAE); // SQUtils.safeDivide geht der Null-Null-Divide-Ausnahme voraus

        return eRTrade;

    }

}

 

War dieser Artikel hilfreich? Der Artikel war nützlich Der Artikel war nicht nützlich

Abonnieren
Benachrichtigen Sie mich bei
1 Kommentar
Älteste
Neuestes Meistgewählt
Inline-Rückmeldungen
Alle Kommentare anzeigen
Emmanuel
23. 12. 2021 12:29 Uhr

sehr gut !!!