[JAVA] Werfen wir einen Blick auf den Bildschirm von Quant Analyzer!

Es scheint bequem, aber ich verstehe es nicht ganz. Studiere beim Schreiben, um es zu meistern. Ich schreibe immer noch.

Der aktuelle Bildschirm Quant Analyzer Analyze --Übersicht und

C:\QuantAnalyzer4\extend\Snippets\com\strategyquant\extend\OverviewTab\SQDefault.java Ich werde raten, indem ich den Inhalt mit VS Code vergleiche.

Ein kurzer Überblick über Javas proprietäre Funktionen und Variablen

d2WithPlType(stats.getXXXXX(XXXXX), combination.getPLType()) Es scheint dem Anzeigeformat zu entsprechen (Betrag, Pips,%) d2WithPlType(stats.getXXXXX(XXXXX), SQConst.PL_IN_PCT) Es scheint, dass das Anzeigeformat auf% festgelegt ist d2(stats.getXXXXX(XXXXXXXXXX) Es scheint, dass Sie nach dem zweiten Dezimalpunkt suchen. statsConst.XXXXX Ich wünschte, ich könnte den Inhalt davon sehen. Wenn Sie wissen, wie der berechnete Wert ist, können Sie ihn anscheinend auf verschiedene Arten kombinieren.

Anzeige oben links

image.png

GESAMTGEWINN (GELDGEWINN): Gesamtgewinn / -verlust (Betrag)
GESAMTGEWINN (GEWINN IN PIPS): Gesamtgewinn / -verlust (Pips)
JÄHRLICHER DURCHSCHNITTLICHER GEWINN: Jährlicher durchschnittlicher Gewinn / Verlust (Betrag)
JAHRESDURCHSCHNITTLICHE RÜCKGABE: Jährlicher durchschnittlicher Gewinn / Verlust (%)
CAGR (Compound Avarage Growth Rate): Durchschnittliche jährliche Wachstumsrate

Oben rechts

image.png

1. Reihe

Anzahl der Transaktionen: Anzahl der Transaktionen

In SQDefault.java wird stats.getInt (StatsConst.NUMBER_OF_TRADES)

DRAWDOWN: Maximaler Drawdown-Betrag

In SQDefault.java d2WithPlType (stats.getDouble (dd_key), Kombination.getPLType ()) ANNUAL % / MAX DD %: In SQDefault.java d2 (stats.getDouble (StatsConst.AAR_DD_RATIO))

Zweite Reihe

SCHARFES VERHÄLTNIS: Scharfes Verhältnis

In SQDefault.java d2 (stats.getDouble (StatsConst.SHARPE_RATIO)) Risiko (Standardabweichung) misst die Überschussrendite pro Einheit (Überschussgewinn, der die Rendite übersteigt, die auch ohne Risiko erzielt werden kann). Je höher dieser Wert ist, desto höher ist die Überschussrendite, die durch Eingehen des Risikos erzielt wird ( Effizient verdiente Gewinne). Dies ist nützlich, wenn Sie verschiedene Anlageziele vergleichen und berücksichtigen, welche Rendite bei gleichem Risiko höher ist. Diese scharfe Kennzahl wird auch verwendet, um die Leistung des Investment Trust Managements als Maß für die risikobereinigten Renditen zu bewerten.

% DRAWDOWN: Maximaler Drawdown-Betrag (%)

In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.PCT_DRAWDOWN), SQConst.PL_IN_PCT) R EXPECTANCY: In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.R_EXPECTANCY), "R") performance metrics developed by Van Tharp, it gives you the average profit value related to average risk (R) that you can expect from a system over many trades. Es scheint zu sein, wie viel Sie im Durchschnitt vom Risiko profitieren können. Wie unterscheidet es sich vom scharfen Verhältnis?

3. Reihe

GEWINNFAKTOR: Gewinnfaktor

In SQDefault.java d2 (stats.getDouble (StatsConst.PROFIT_FACTOR)) Keine Erklärung erforderlich

TÄGLICHER DURCHSCHNITTLICHER GEWINN: Täglicher durchschnittlicher Gewinn und Verlust

In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.AVG_PROFIT_BY_DAY), Kombination.getPLType ()) Keine Erklärung erforderlich R EXPECTANCY SCORE: In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.R_EXPECTANCY_SCORE), "R") standard R-Expectancy doesn’t consider the length of testing period and number of trades produced. There is a difference when you make for example $2000 per year by making 10 trades, or by making 100 trades. R-Expectancy Score adds a score for trades frequency. It is computed as: R-Expectancy * averageTradesPerYear

4. Reihe

RETURN / DD RATIO In SQDefault.java d2 (stats.getDouble (StatsConst.RETURN_DD_RATIO))

MONATLICHER DURCHSCHNITTLICHER GEWINN: Monatlicher durchschnittlicher Gewinn und Verlust

In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.AVG_PROFIT_BY_MONTH), Kombination.getPLType ()) STR QUALITY NUMBER: In SQDefault.java d2 (stats.getDouble (StatsConst.SQN))

5. Reihe

GEWINNPROZENT: Gewinnrate

In SQDefault.java d2 (stats.getDouble (StatsConst.WINNING_PCT)) Keine Erklärung erforderlich AVERAGE TRADE: In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.AVG_TRADE), Kombination.getPLType ()) SQN SCORE: In SQDefault.java d2 (stats.getDouble (StatsConst.SQN_SCORE))

Strategy image.png

1. Reihe

Wins / Losses Ratio: In SQDefault.java d2 (stats.getDouble (StatsConst.WIN_LOSS_RATIO)) Haben Sie gerade die Gewinnquote als Verhältnis ausgedrückt? AHPR: In SQDefault.java d2 (stats.getDouble (StatsConst.AHPR)) Siehe diese Website, möglicherweise eine Formel wie Gewinn / Verlust / Haltedauer. Expectancy In SQDefault.java d2 (stats.getDouble (StatsConst.EXPECTANCY))

Stagnation in Tagen: Maximale Inanspruchnahmezeit (Tage)

In SQDefault.java "" + stats.getInt (StatsConst.STAGNATION_PERIOD) Es ist ein Rätsel, warum die leeren Zeichenketten hinzugefügt werden.

Zweite Reihe

Payout Ratio (Avg Win/Loss) In SQDefault.java d2 (stats.getDouble (StatsConst.PAYOUT_RATIO)) Z-Score In SQDefault.java d2 (stats.getDouble (StatsConst.Z_SCORE)) Deviation In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.STANDARD_DEV), Kombination.getPLType ()) Es gibt eine Beschreibung von StatsConst.STANDARD_DEV. Ist dies eine Standardabweichung?

Stagnation in%: Maximale Absenkungsdauer (%)

In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.STAGNATION_PERIOD_PCT), SQConst.PL_IN_PCT)

3. Reihe

Average # of Bars in Trade In SQDefault.java d2 (stats.getDouble (StatsConst.AVG_BARS_TRADE)) Z-Probability In SQDefault.java ist d2 (stats.getDouble (StatsConst.Z_PROBABILITY)) + "%" Exposure In SQDefault.java ist d2 (stats.getDouble (StatsConst.EXPOSURE, 0)) + "%" Der Prozentsatz der gehaltenen finanziellen Vermögenswerte, die dem Risiko von Marktpreisschwankungen ausgesetzt sind.

Korrelationsfaktor R16: Korrelationsfaktor R16

In SQDefault.java, d2 (Math.pow (stats.getDouble (StatsConst.STABILITY), 4)) Selbst gemachter Messwert. Ein Koeffizient dafür, wie weit die "Gewinn- und Verlustkurve" und die "gerade Linie zwischen der ersten und der letzten Transaktion" sind. Man kann sagen, je näher der Wert an 1 liegt, desto stabiler ist er. Normalerweise ist es r ^ 2, aber Quant Analyzer scheint r ^ 4 zu verwenden, so dass der Unterschied leicht zu verstehen ist. Ich wollte, dass es leichter zu verstehen ist, also entschied ich mich für r ^ 16.

Trades (Ich bastele nur daran und ändere das Layout.)

Es scheint, dass die Erklärung ärgerlich ist, also werde ich sie verschieben. image.png

1. Reihe

Anzahl der Siege: Anzahl der Siege

Keine Erklärung erforderlich In SQDefault.java "" + stats.getInt (StatsConst.NUMBER_OF_PROFITS)

Bruttogewinn: Gesamtgewinn

Keine Erklärung erforderlich In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.GROSS_PROFIT), Kombination.getPLType ())

Größter Gewinn: Maximaler Gewinn

Keine Erklärung erforderlich In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.MAX_PROFIT), Kombination.getPLType ())

Durchschnittliche Consec-Siege: Durchschnittliche Pechsträhne

Keine Erklärung erforderlich In SQDefault.java d2 (stats.getDouble (StatsConst.AVG_CONSEC_WIN))

Zweite Reihe

Anzahl der Verluste: Anzahl der Verluste

Keine Erklärung erforderlich In SQDefault.java "" + stats.getInt (StatsConst.NUMBER_OF_LOSSES)

Bruttoverlust: Gesamtverlust

Keine Erklärung erforderlich In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.GROSS_LOSS), Kombination.getPLType ())

Größter Verlust: Maximaler Verlust

Keine Erklärung erforderlich In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.MAX_LOSS), Kombination.getPLType ())

Durchschnittlicher Consec-Verlust: Durchschnittliche Verlustserie

Keine Erklärung erforderlich In SQDefault.java d2 (stats.getDouble (StatsConst.AVG_CONSEC_LOSS))

3. Reihe

In SQDefault.java ""

Durchschnittlicher Gewinn: Durchschnittlicher Gewinn

Keine Erklärung erforderlich In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.AVG_WIN), Kombination.getPLType ())

Max Consec Wins: Maximale aufeinanderfolgende Gewinne

Keine Erklärung erforderlich In SQDefault.java "" + stats.getInt (StatsConst.MAX_CONSEC_WINS) Avg # of Bars in Wins Ich denke, es ist, wie viele Bars Sie vom Beginn des Handels bis zur Abrechnung überspannen ... (Ich weiß es ehrlich gesagt nicht) In SQDefault.java d2 (stats.getDouble (StatsConst.AVG_BARS_WIN))

4. Reihe

Anzahl der stornierten / abgelaufenen: Anzahl der stornierten / abgelaufenen

Keine Erklärung erforderlich In SQDefault.java "" + stats.getInt (StatsConst.NUMBER_OF_CANCELED)

Durchschnittlicher Verlust: Durchschnittlicher Verlust

Keine Erklärung erforderlich In SQDefault.java d2WithPlType (stats.getDouble (StatsConst.AVG_LOSS), Kombination.getPLType ())

Max. Consec-Verluste: Maximale aufeinanderfolgende Verluste

Keine Erklärung erforderlich In SQDefault.java "" + stats.getInt (StatsConst.MAX_CONSEC_LOSS) Avg Bars in Losses Ich denke, es ist, wie viele Bars Sie vom Beginn des Handels bis zur Abrechnung überspannen ... (Ich weiß es ehrlich gesagt nicht) In SQDefault.java d2 (stats.getDouble (StatsConst.AVG_BARS_LOSS))

Nicht hier, sondern auf der Registerkarte Eigenkapitalkontrolle

Sie können viel herausfinden, indem Sie auf "return stats.getDouble (StatsConst.STABILITY, 0" in "GetValue" der Datei im selben Ordner verweisen.

QuantAnalyzer4\extend\Snippets\com\strategyquant\extend\DatabankColumns\Stability.java


@Override
public Object getValue(SQResultsGroup strategyResults, String dataType, String direction, String sampleType, String plType) throws Exception {
	SQResult result = strategyResults.getResult(SQConst.SYMBOL_PORTFOLIO);
	
	SQStats stats = result.getStats(direction, getGlobalPlType(plType), sampleType);
	if(stats==null) throw new StatsMissingException();
	
	return stats.getDouble(StatsConst.STABILITY, 0);
}

Ich denke, ich kann es mit diesem Code bekommen

Stability


stats.getDouble(StatsConst.STABILITY, 0)

Wie bereits erwähnt, ist dies der Korrelationskoeffizient (r ^ 4) zwischen der "Gewinn- und Verlustkurve" und der "geraden Linie zwischen der ersten und der letzten Transaktion".

Symmetry


stats.getDouble(StatsConst.SYMMETRY)

Nun, ich weiß nicht!

Fittness


strategyResults.getResult(SQConst.SYMBOL_PORTFOLIO)
.getStats(SQConst.DIRECTION_ALL, SQConst.PL_IN_MONEY, SQConst.KEY_SAMPLE_ALL)
.getDouble(StatsConst.FITNESS, 0)

Nun, ich weiß nicht!

CalmarRatio


stats.getDouble("CalmarRatio", 12)

The Calmar ratio is a comparison of the average annual compounded rate of return and the maximum drawdown risk of commodity trading advisors and hedge funds. The lower the Calmar ratio, the worse the investment performed on a risk-adjusted basis over the specified time period; the higher the Calmar ratio, the better it performed. Generally speaking, the time period used is three years, but this can be higher or lower based on the investment in question. Ich schreibe so etwas wie ein Risiko-Rendite-Verhältnis. Wie unterscheidet es sich vom scharfen Verhältnis? Sie können sehen, dass je höher es ist, desto besser. Grundsätzlich sehe ich es auf 3-Jahres-Basis, aber es scheint, dass es kurz oder lang sein kann.

Es scheint, dass es verschiedene Dinge gibt, daher kann es interessant sein, einen Blick darauf zu werfen.

Recommended Posts

Werfen wir einen Blick auf den Bildschirm von Quant Analyzer!
Werfen wir einen Blick auf die Funktionen der Keycloak-Verwaltungskonsole (Administrator Edition).
Schauen wir uns das Verfahren zum Starten der Hotspot-JVM an
[Java] Schauen wir uns die Switch-Ausdrücke (Vorschau) von JDK 13 an.
Werfen wir einen Blick auf die Funktionen der Keycloak-Verwaltungskonsole (User Edition), dem Benutzerkontodienst
Ich habe mir die Ressourcen der Azure Container-Instanz angesehen
Ein kurzer Blick auf das Monty Hall-Problem
Werfen Sie einen kurzen Blick auf Gradle und lesen Sie das von Spring Initializr generierte build.gradle
Ich habe einen Blick in die Java HashMap geworfen
[Android] Beenden Sie die Aktivität der Übergangsquelle zum Zeitpunkt des Bildschirmübergangs
Schauen Sie sich Kotlin aus einer effektiven Java-Perspektive an
Warum einen Zeilenumbruch am Ende der Datei einfügen?
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
Lassen Sie uns ein custom_cop erstellen, das auf das Schütteln des Namens hinweist
Ein kurzer Rückblick auf Java in den letzten fünf Jahren
Ein Memorandum über das FizzBuzz-Problem
Android App: Lassen Sie uns den Mechanismus des Bildschirmübergangs mit einfachem Code erklären
Lassen Sie uns das Ergebnis der Analyse von Java-Bytecode in einem Klassendiagramm ausdrücken
So ändern Sie den Wert einer Variablen an einem Haltepunkt in IntelliJ
Ein Blick auf Jenkins, OpenJDK 8 und Java 11
Werfen Sie einen Blick darauf, wie Processing 3 funktioniert
Korrigieren Sie den Ansichtsbildschirm der Beitragsseite
Finden Sie den Unterschied von einem Vielfachen von 10
[Swift, ein Muss für Jungvögel! ] Lassen Sie uns die Implementierung der Kommunikationsverarbeitung der Web-API verstehen