Dokumentation
Anwendungen
Zuletzt aktualisiert am 18. 11. 2021 von clonex / Ivan Hudec
Beispiel - Trade Edge Ratio
Inhalt der Seite
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
sehr gut !!!