SQOrder Klasse MAE/MFE Properties Rückgabe 0
6 Antworten
seaton
vor 8 Jahren #114154
Ich habe gerade gespielt, um mit meinem ersten Diagramm und haben eine MAE vs % Gain, alle ziemlich einfach und geradlinig (ich liebe die Fähigkeit, BTW zu erweitern) jedoch die SQOrders-Klasse scheint zu sein, zurückgeben 0 für MAE und MFE-Eigenschaften?
Ich habe gerade versucht, die Datei anzuhängen, aber das Forum lässt es nicht zu, also habe ich sie unten eingefügt.
BTW wäre es schön, einen Abschnitt im Forum zu haben, um den Austausch von Erweiterungen zu ermöglichen, wie ich bin glücklich, meine zu teilen.
Paket com.strategyquant.extend.TradeAnalysisPanes; import java.util.ArrayList; import org.jfree.chart.JFreeChart; import com.strategyquant.lib.charts.common.SQChart; import com.strategyquant.lib.charts.common.SQScatterChart; import com.strategyquant.lib.charts.common.duration.TimeDuration; import com.strategyquant.lib.charts.common.TimeDuration; import com.strategyquant.lib.language.L; import com.strategyquant.lib.results.SQData; import com.strategyquant.lib.results.SQData; import com.strategyquant.lib.results.SQOrder; import com.strategyquant.lib.results.SQData; importieren com.strategyquant.lib.results.SQOrderList; import com.strategyquant.lib.results.SQResultsGroup; import com.strategyquant.lib.results.SQResultsGroup; import com.strategyquant.lib.settings.SQConst; import com.strategyquant.lib.snippets.TradeAnalysisChartPane; public class MAEvsGainChart extends TradeAnalysisChartPane { //private ArrayList timeDurationList; public MAEvsGainChart() { this.name = L.t("MAE vs Trade Outcome (% Gain)"); } @Override public JFreeChart drawChart(SQResultsGroup strategyResult, SQData data) { SQScatterChart chart = new SQScatterChart(); chart.xLegend = L.t("% Gain"); chart.yLegend = L.t("MAE"); if(strategyResult==null) { return chart.render(); } ArrayList trades = computeData(strategyResult, data); for(int trade=0; trade<trades.size(); trade++) { double[] values = trades.get(trade); if(Werte[1]<0) { chart.add("Verlierer", Werte[1], Werte[0]); } else { chart.add("Gewinner", Werte[1], Werte[0]); } } //chart.setDurationDomainAxis(true); chart.setSeriesColor("Verlierer", SQChart.COLOR_RED); chart.setSeriesColor("Gewinner", SQChart.COLOR_GREEN); return chart.render(); } private ArrayList computeData(SQResultsGroup strategyResult, SQData data) { ArrayList trades = new ArrayList(); SQOrderList orderList = filterOrders(strategyResult, data); for(SQOrder order : orderList) { double[] values = new double[2]; values[0] = order.MAE; values[1] = order.PctPL; trades.add(values); } return trades; } }
Tamas
vor 8 Jahren #132436
Hallo seaton,
es sollte einfach zu berechnen sein MAE/MFE wenn Sie sie für Ihren Bericht benötigen.
Sie müssen für eine bestimmte Gruppe von Aufträgen berechnet werden.
Zuerst die Aufträge erhalten
SQOrderList orderList = filterOrders(strategyResult, data);
und berechnen Sie dann die MAE für jede der Reihenfolgen.
for(SQOrder order : orderList) {
Auftrag.MAE = Wert;
}
Mit freundlichen Grüßen,
Tomas
seaton
vor 8 Jahren #132454
Danke Thomas,
Ich hatte fälschlicherweise angenommen, dass die MAE und MFE in jedem Auftrag bereits berechnet wurden.
Danke
seaton
vor 8 Jahren #132455
Als ich heute zur Arbeit fuhr, habe ich darüber nachgedacht, und es gibt keine Möglichkeit, MAE/MFE aus dem SQAnalyser heraus zu berechnen, da diese Zahlen während des Handels/Backtests erfasst werden müssen und daher nicht vom SQAnalyser berechnet werden können.
Da die Daten, die ich lade, aus MT4-Backtests stammen, die ich gespeichert habe, sind diese Informationen nicht verfügbar, da ich mir ziemlich sicher bin, dass MT4-Backtester sie nicht zur Verfügung stellt, aber bei SQ-Backtests denke ich, dass dies intern berechnet wird, also werde ich dies testen.
seaton
vor 8 Jahren #132456
Dies wurde soeben bestätigt:
MAE/MFE wird in Strategy Quant berechnet und ist NICHT in MT4 Backtests, nur einer der vielen Mängel von MT4 als Plattform seufzen, sowieso wird auf Strategy Quant Tests debuggen, um es richtig zu arbeiten
seaton
vor 8 Jahren #132459
Damit bin ich beim nächsten Problem angelangt.
Wie berechnet Strategy Quant die MAE/MFE, da sie anscheinend nicht korrekt sind?
1) MAE wird als positive Zahl angezeigt, sie sollte nie größer als 0 sein, während MFE nie kleiner als 0 sein sollte.
2) Die MAE- und MFE-Werte scheinen sehr ähnlich zu sein, daher bin ich ihnen gegenüber etwas skeptisch.
Diese Daten stammen von einer StrategyQyant-Strategie, die in SQ Analysis geladen wurde; ähnliche Ergebnisse bei verschiedenen Strategien.
tomas262
vor 8 Jahren #132484
Dies muss überprüft werden. Ich erhalte auch unterschiedliche MAE/MFE-Werte im Analyzer, wenn ich versuche, eine in SQ generierte Strategie zu importieren
Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)