SQOrder Clase MAE/MFE Properties Devuelve 0

6 respuestas

seaton

Cliente, bbp_participante, comunidad, 161 respuestas.

Visitar el perfil

hace 8 años #114154

He estado jugando con mi primer gráfico y he hecho un MAE vs % Gain, todo bastante simple y directo (me encanta la capacidad de extender BTW) sin embargo la clase SQOrders parece estar devolviendo 0 para las propiedades MAE y MFE?

 

Acabo de intentar adjuntar el archivo y el foro no me lo permite, así que lo he pegado a continuación.  

 

BTW sería bueno tener una sección en el foro para permitir el intercambio de extensiones como yo estoy feliz de compartir la mía.

paquete com.strategyquant.extend.TradeAnalysisPanes;

importar 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.language.L;
import com.strategyquant.lib.results.SQData;
import com.strategyquant.lib.results.SQOrder;
import com.strategyquant.lib.results.SQOrderList;
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 Resultado de la operación (% Ganancia)");
}


@Override
public JFreeChart drawChart(SQResultsGroup strategyResult, SQData data) {
SQScatterChart gráfico = new SQScatterChart();
chart.xLegend = L.t("% Ganancia");
      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[] valores = trades.get(trade);


if(valores[1]<0) {
chart.add("perdedores", valores[1], valores[0]);
} else {
chart.add("ganadores", valores[1], valores[0]);
}
}


//chart.setDurationDomainAxis(true);
chart.setSeriesColor("perdedores", SQChart.COLOR_RED);
chart.setSeriesColor("ganadores", SQChart.COLOR_GREEN);


return chart.render();
}


private ArrayList computeData(SQResultsGroup strategyResult, SQData data) {
ArrayList operaciones = new ArrayList();


SQOrderList orderList = filterOrders(strategyResult, data);


for(SQOrder order : orderList) {
double[] valores = new double[2];
valores[0] = orden.MAE;
valores[1] = pedido.PctPL;


trades.add(valores);
}


return trades;
}
}

0

Tamas

Cliente, bbp_participant, comunidad, sq-ultimate, 73 respuestas.

Visitar el perfil

hace 8 años #132436

Hola seaton,

 

debería ser fácil de calcular MAE/MFE si los necesita para su informe.

Deben calcularse para un conjunto concreto de pedidos.

 

Primero recibe las órdenes  

SQOrderList orderList = filterOrders(strategyResult, data);

 

a continuación, calcular MAE para cada uno de orden.

for(SQOrder order : orderList) {

   orden.MAE = valor;

}

 

Saludos cordiales,

Tomas

0

seaton

Cliente, bbp_participante, comunidad, 161 respuestas.

Visitar el perfil

hace 8 años #132454

Gracias, Thomas,

 

Había supuesto erróneamente que el MAE y el MFE de cada orden ya estaban calculados.

 

Gracias

0

seaton

Cliente, bbp_participante, comunidad, 161 respuestas.

Visitar el perfil

hace 8 años #132455

En realidad, cuando estaba conduciendo al trabajo hoy estaba reflexionando sobre esto y no hay manera de calcular MAE / MFE desde dentro SQAnalyser ya que estos números deben ser capturados durante el comercio / Backtest y por lo tanto no puede ser calculado por SQAnalyser.

 

Como los datos que estoy cargando es de MT4 backtests que había guardado, esta información no estará disponible como estoy bastante seguro de MT4 backtester no lo proporciona, sin embargo con SQ backtests Creo que esto se calcula internamente por lo que pondrá a prueba esto.

0

seaton

Cliente, bbp_participante, comunidad, 161 respuestas.

Visitar el perfil

hace 8 años #132456

Acabo de confirmar que es así:

 

MAE/MFE se calcula en Strategy Quant y no está en MT4 backtests, sólo una de las muchas deficiencias de MT4 como un suspiro de plataforma, de todos modos va a depurar en Strategy Quant pruebas para conseguir que funcione correctamente

0

seaton

Cliente, bbp_participante, comunidad, 161 respuestas.

Visitar el perfil

hace 8 años #132459

Ok esto me ha llevado al siguiente problema.

 

¿Cómo calcula Strategy Quant MAE/MFE, ya que parecen ser incorrectos?

 

1) El MAE se muestra como un número positivo que nunca debería ser mayor que 0, mientras que el MFE nunca debería ser menor que 0.

2) Los valores de MAE y MFE parecen muy parecidos, por lo que soy un poco escéptico al respecto.

 

Estos se tomaron de una estrategia StrategyQyant cargada en SQ Analysis, resultados similares en diferentes estrategias.

 

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 8 años #132484

Esto necesita ser verificado. También obtengo diferentes valores de MAE/MFE en Analyzer cuando intento importar una estrategia generada en SQ.

0

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)