¿están ordenados los pedidos?
4 respuestas
krzysiaczek99
hace 7 años #116287
Hola,
Estoy diseñando un plugin que traza el número de lotes abiertos y he descubierto que los pedidos de SQOrderList no están ordenados
De acuerdo con alguna información de otro plugins que se supone que se ordenan
/** * La función recibe la lista de todos los pedidos ordenados por tiempo de apertura y puede manipular * la lista y eliminar cualquier orden que coincida con cierto filtro de la lista. * * La estructura de los pedidos está disponible en la documentación aquí: * http://www.strategyquant.com/doc/api/com/strategyquant/lib/results/SQOrder.html * * @param originalOrders - lista de pedidos originales que pueden ser modificados. Cada orden tiene las propiedades de orden especificadas anteriormente */
pero mi código deduce esto
paquete 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.language.L; import com.strategyquant.lib.settings.SQConst; import com.strategyquant.lib.results.SQOrderList; import com.strategyquant.lib.results.SQOrder; import com.strategyquant.lib.results.SQResultsGroup; import com.strategyquant.lib.charts.common.SQLineChart; import java.util.Date; public class MaxNumberOfTrades extends TradeAnalysisChartPane { public NúmeroMáximoDeOfertas() { this.name = "MaxNumberOfTrades"; } @Override public JFreeChart drawChart(SQResultsGroup strategyResult, SQData data) { SQLineChart gráfico = new SQLineChart(); chart.xLegend = L.t("Operaciones"); chart.yLegend = L.t("Lotes"); if(strategyResult==null) { return chart.render(); } SQOrderList orderList = filterOrders(strategyResult, data); int lotes = 0; long exittime = orderList.get(0).CloseTime; Date d = new Date(exittime); Date top = new Date(orderList.get(0).OpenTime); Date bottom = new Date(orderList.get(orderList.size()-1).OpenTime); System.out.println("Hora de cierre "+d); System.out.println("Top "+top); System.out.println("Inferior "+inferior); for (int i = 0; i < orderList.size(); i++) { //System.out.println(orderList.get(i).OpenTime); //System.out.println(orden.OpenTime); //System.out.println(order.CloseTime); if ( orderList.get(i).OpenTime <= exittime ) // hora de salida { lotes++; } else { lotes = 0 exittime = orderList.get(i).CloseTime; } chart.add("", i+1, lotes); } return chart.render(); } }
Closetime lun 04 abr 10:12:00 GMT 2016
Top Thu Mar 31 23:08:00 GMT 2016
Fondo Fri Apr 01 00:01:00 GMT 2016
por lo que las órdenes están al revés en comparación con el archivo de comercio. En el archivo de comercio hay órdenes con OpenPrice de 28.03 y 30.03 por lo que 28.03 se supone que es en la parte inferior no 31.03
Adjunto archivo de comercio que uso para esta prueba.
¿Puede dar un ejemplo de cómo clasificarlos?
Krzysztof
krzysiaczek99
hace 7 años #141436
¿Cuál es la respuesta? ¿Cuántas medidas de control de calidad muestran valores erróneos debido a este error? ¿Cuándo van a solucionarlo? Es difícil de creer ... este producto es de tantos años y todavía errores importantes en ....
Krzysztof
Mark Fric
hace 7 años #141501
Hola,
se está refiriendo a un comentario de ayuda de una categoría de snippets totalmente diferente, no se dice que el snipet TradeAnalysis utilice operaciones ordenadas en un orden concreto, porque el orden de las operaciones no influye en la mayoría de estas estadísticas.
Pero usted puede ordenar fácilmente los pedidos mediante el uso de comandos:
Collections.sort(orderList, new OrderComparatorByCloseTime());
también tienes que añadir dos importaciones para hacerlo:
Mark
Arquitecto de StrategyQuant
krzysiaczek99
hace 7 años #141504
Hola,
Gracias por la información. Así que después de ordenar las operaciones será en orden ascendente o descendente? Si es descendente, ¿cómo dar la vuelta a la lista?
se Colecciones.invertir(orderList) funcionan?
Krzysztof
Mark Fric
hace 7 años #141516
Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)