Sind die Aufträge sortiert?
4 Antworten
krzysiaczek99
vor 7 Jahren #116287
Hallo,
Ich entwerfe ein Plugin, das die Anzahl der offenen Lose aufzeichnet und ich habe herausgefunden, dass die Aufträge aus SQOrderList nicht sortiert sind
Nach einigen Informationen von anderen Plugins sollen sie sortiert werden
/** * Die Funktion empfängt eine Liste aller Aufträge, sortiert nach der Öffnungszeit, und kann sie manipulieren * die Liste manipulieren und jede Bestellung, die einem bestimmten Filter entspricht, aus der Liste entfernen. * * Die Auftragsstruktur ist in der Dokumentation hier verfügbar: * http://www.strategyquant.com/doc/api/com/strategyquant/lib/results/SQOrder.html * * @param originalOrders - Liste der ursprünglichen Aufträge, die geändert werden können. Jeder Auftrag hat die oben angegebenen Auftragseigenschaften */
aber mein Code leitet dies ab
Paket com.strategyquant.extend.TradeAnalysisPanes; import org.jfree.chart.JFreeChart; import com.strategyquant.lib.snippets.TradeAnalysisChartPane; import com.strategyquant.lib.results.SQData; import com.strategyquant.lib.results.SQData; import com.strategyquant.lib.language.L; import com.strategyquant.lib.settings.SQConst; importieren com.strategyquant.lib.results.SQOrderList; import com.strategyquant.lib.results.SQOrder; import com.strategyquant.lib.results.SQOrder; import com.strategyquant.lib.results.SQResultsGroup; import com.strategyquant.lib.results.SQResultsGroup; import com.strategyquant.lib.charts.common.SQLineChart; import java.util.Date; public class MaxNumberOfTrades extends TradeAnalysisChartPane { public MaxNumberOfTrades() { this.name = "MaxNumberOfTrades"; } @Override public JFreeChart drawChart(SQResultsGroup strategyResult, SQData data) { SQLineChart chart = new SQLineChart(); chart.xLegend = L.t("Trades"); chart.yLegend = L.t("Lots"); if(strategyResult==null) { return chart.render(); } SQOrderList orderList = filterOrders(strategyResult, data); int lots = 0; long exittime = orderList.get(0).CloseTime; Date d = new Date(exittime); Date top = new Date(orderList.get(0).OpenTime); Datum unten = neues Datum(orderList.get(orderList.size()-1).OpenTime); System.out.println("Schlusszeit "+d); System.out.println("Top "+top); System.out.println("Unten "+Unten); for (int i = 0; i < orderList.size(); i++) { //System.out.println(orderList.get(i).OpenTime); //System.out.println(order.OpenTime); //System.out.println(order.CloseTime); if ( orderList.get(i).OpenTime <= exittime ) // Ausstiegszeit { lots++; } sonst { lots = 0; exittime = orderList.get(i).CloseTime; } chart.add("", i+1, lots); } return chart.render(); } }
Schlusszeit Mon Apr 04 10:12:00 GMT 2016
Seitenanfang Thu Mar 31 23:08:00 GMT 2016
Unten Fri Apr 01 00:01:00 GMT 2016
Die Aufträge stehen also im Vergleich zur Handelsdatei einfach auf dem Kopf. In der Handelsdatei gibt es Aufträge mit einem OpenPrice von 28.03 und 30.03, also sollte 28.03 ganz unten stehen und nicht 31.03
Ich füge eine Handelsdatei bei, die ich für diesen Test verwende.
Können Sie ein Beispiel geben, wie man sie sortiert?
Krzysztof
krzysiaczek99
vor 7 Jahren #141436
Wie lautet also die Antwort auf diese Frage? Wie viele Messwerte aus der QA zeigen falsche Werte aufgrund dieses Fehlers? Wann werden Sie ihn beheben? Kaum zu glauben...dieses Produkt gibt es schon so viele Jahre und noch immer sind große Fehler in....
Krzysztof
Mark Fric
vor 7 Jahren #141501
Hallo,
Sie beziehen sich auf einen Hilfskommentar aus einer ganz anderen Kategorie von Snippets. Es wird nicht gesagt, dass TradeAnalysis Snipet geordnete Trades in einer bestimmten Reihenfolge verwendet, da die Reihenfolge der Trades die meisten dieser Statistiken nicht beeinflusst.
Sie können die Aufträge aber ganz einfach mit dem Befehl sortieren:
Collections.sort(orderList, new OrderComparatorByCloseTime());
müssen Sie auch zwei Importe hinzufügen, um dies zu tun:
Mark
StrategyQuant Architekt
krzysiaczek99
vor 7 Jahren #141504
Hallo,
Danke für die Informationen. Also nach der Sortierung Trades werden in aufsteigender oder absteigender Reihenfolge sein? Wenn absteigend, wie kann man diese Liste auf den Kopf stellen?
wird Sammlungen.umkehren(orderList) arbeiten?
Krzysztof
Mark Fric
vor 7 Jahren #141516
es ist in natürlicher Reihenfolge. Collections.reverse() sollte funktionieren.
Mark
StrategyQuant Architekt
Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)