Antwort

SQOrder Klasse MAE/MFE Properties Rückgabe 0

6 Antworten

seaton

Kunde, bbp_participant, community, 161 Antworten.

Profil besuchen

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;
}
}

0

Tamas

Kunde, bbp_participant, community, sq-ultimate, 73 Antworten.

Profil besuchen

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

0

seaton

Kunde, bbp_participant, community, 161 Antworten.

Profil besuchen

vor 8 Jahren #132454

Danke Thomas,

 

Ich hatte fälschlicherweise angenommen, dass die MAE und MFE in jedem Auftrag bereits berechnet wurden.

 

Danke

0

seaton

Kunde, bbp_participant, community, 161 Antworten.

Profil besuchen

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.

0

seaton

Kunde, bbp_participant, community, 161 Antworten.

Profil besuchen

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

0

seaton

Kunde, bbp_participant, community, 161 Antworten.

Profil besuchen

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.

 

0

tomas262

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

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

0

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)