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 !!!