StrategyQuant
Q AI AssistantAlgoCloudQuantAnalyzerQuantDataManager
Kostenloser KursUnternehmen
BlogDokumentationForumKontakt
BlogMarktplatz
Anmelden
Kostenloses Konto erstellen

Produkt

  • Preise & Lizenzen
  • Lernen
  • Marktplatz
  • Kostenlose Testversion starten

Rechtliches

  • Nutzungsbedingungen
  • Datenschutzerklärung
  • Cookies

Kontakt

[email protected]

Unternehmen

StrategyQuant s.r.o.

Korunní 2569/108, Vinohrady, 101 00 Praha 10, Tschechische Republik, EU

IČ: 04000498

DIČ: CZ04000498

Social Media

  • Impressum | VERARBEITUNG UND SCHUTZ PERSONENBEZOGENER DATEN

    Die Wertentwicklung in der Vergangenheit ist keine Garantie für zukünftige Erfolge. Alle Informationen sollten ausschließlich zu Bildungszwecken betrachtet werden

    VEREINIGTE STAATEN Gesetzlich vorgeschriebener Haftungsausschluss – Die Commodity Futures Trading Commission informiert: Der Handel mit Futures und Optionen birgt großes Gewinnpotenzial, aber auch erhebliche Verlustrisiken. Sie müssen sich der Risiken bewusst sein und bereit sein, diese zu akzeptieren, um an den Futures- und Optionsmärkten zu investieren. Handeln Sie nicht mit Geld, dessen Verlust Sie sich nicht leisten können. Dies ist weder eine Aufforderung noch ein Angebot zum Kauf/Verkauf von Futures, Aktien oder Optionen darauf. Es wird keine Zusicherung gemacht, dass ein Konto Gewinne oder Verluste erzielen wird oder wahrscheinlich erzielen wird, die denen in diesem Dokument genannten ähnlich sind. Die vergangene Wertentwicklung eines Handelssystems oder einer Methodik lässt nicht notwendigerweise auf zukünftige Ergebnisse schließen.

    CFTC-REGEL 4.41 – HYPOTHETISCHE ODER SIMULIERTE PERFORMANCE-ERGEBNISSE UNTERLIEGEN BESTIMMTEN EINSCHRÄNKUNGEN. IM GEGENSATZ ZU EINER TATSÄCHLICHEN PERFORMANCE-HISTORIE STELLEN SIMULIERTE ERGEBNISSE KEINEN ECHTEN HANDEL DAR. DA DIE TRADES NICHT TATSÄCHLICH AUSGEFÜHRT WURDEN, KÖNNEN DIE ERGEBNISSE AUSSERDEM DIE AUSWIRKUNGEN GEWISSER MARKTFAKTOREN WIE MANGELNDE LIQUIDITÄT ETWAIG KOMPENSIERT HABEN. SIMULIERTE HANDELSPROGRAMME UNTERLIEGEN IM ALLGEMEINEN ZUDEM DER TATSACHE, DASS SIE IM NACHHINEIN ENTWICKELT WURDEN. ES WIRD KEINE ZUSICHERUNG GEMACHT, DASS EIN KONTO GEWINNE ODER VERLUSTE ERZIELEN WIRD ODER WAHRSCHEINLICH ERZIELEN WIRD, DIE DEN DARGESTELLTEN ÄHNLICH SIND.

    ES WIRD KEINE ZUSICHERUNG GEMACHT, DASS EIN KONTO GEWINNE ODER VERLUSTE ERZIELEN WIRD ODER WAHRSCHEINLICH ERZIELEN WIRD, DIE DEN AUF DIESER WEBSITE BESPROCHENEN ÄHNLICH SIND. WENN SIE SICH ENTSCHEIDEN, ECHTES GELD ZU INVESTIEREN, SOLLTEN ALLE HANDELSENTSCHEIDUNGEN AN DEN FINANZMÄRKTEN IHRE EIGENEN SEIN.

    © StrategyQuant 2026

    Bereitgestellt von Klaudie.ai

    Zurück zum MarktplatzDIGITAL

    Building Blocks Ranking v2

    StrategyQuantPlugins
    Building Blocks Ranking v2

    Erstellt ein Ranking von Bausteinen nach ihrer Performance über mehrere Datenbanken hinweg, um die profitabelsten Komponenten für Ihre Instrumente zu ermitteln. Analysiert Ein-/Ausstiegssignale und wichtige Kennzahlen zur Optimierung der Strategieerstellung.

    1/ Neuerungen in dieser Version

    • Namen von Bausteinen statt Variablen für eine einfachere Out-of-Sample-Analyse
    • Analysiert Einstiegs- und Ausstiegssignale
    • Auswahl nach Signalname: Entry/Exit, Long/Short
    • Unterstützt Vorlagenerstellung mit mehreren Signalen
    • Erstellt Statistiken pro Datenbank und listet Bausteine in C:\temp\ auf
    • Generiert Zufallsgruppen für jede Datenbank zur präzisen Out-of-Sample-Auswahl
    • Erstellt ein Portfolio von Trades aus der OOS-Filterauswahl
    • Erweiterbar auf 10+ StrategyQuant-Metriken

    2/ Installation

    • Im CodeEditor: Importieren Sie "SQExtension RankStratsParameters 15052022 V2 04" und "SQExtension_SortinoRatio"
    • Kompilieren und SQX neu starten
    • Ordner C:\Temp\ mit Unterverzeichnissen erstellen: C:\Temp\Results P1 usw. (Directories.rar entpacken)
    • Benutzerdefinierte Projekte importieren:
      • "I 1176 Bouillant Research Custom Project EURUSD Ent 1i Ex 1i I" (erstellt Strategien)
      • "I 1177 Bouillant Analysis Custom Project" (analysiert bei >20000 Strategien)
      • "I 1177 Bouillant Analysis Plus Custom Project" (analysiert bei <20000 Strategien)

    3/ Bausteine testen

    Strategien in einer benutzerdefinierten Analyse erstellen, Long Entry, Short Entry, Long Exit, Short Exit aus Out-of-Sample-Ergebnissen in einer weiteren benutzerdefinierten Analyse auswerten.

    4/ Baustein-Performance

    Über 21 Jahre Out-of-Sample auf 3 Instrumenten erzielen einige Bausteine 4959 $ Nettogewinn, während andere -4977 $ Verlust pro Jahr aufweisen.

    5/ Analyse einer einzelnen Datenbank

    • Fügen Sie eine Custom Analysis Task zum Custom Project hinzu
    • Wählen Sie "RankStrategiesParameters" aus
    • Wählen Sie die Quelldatenbank aus (z. B. P1R)
    • Aufgabe ausführen
    • Geben Sie 1 als Anzahl der Datenbanken ein
    • Geben Sie 10 als Mindestanzahl an Strategien pro Baustein ein (höher ist besser)

    6/ Analyse mehrerer Datenbanken

    Analysiert mehrere Datenbanken nacheinander und wählt Bausteine nach Kriterien für jede Periode aus.

    7/ Einrichtung mehrerer Datenbanken

    Laden Sie den Workflow "I 1172 USDCHF H1 10YP1" herunter (10 Jahre In-Sample, 1 Jahr Out-of-Sample, H1-Timeframe, 7 Perioden).

    Konfigurieren Sie die Datenbanknamen:

    String DatabankName1 = "P1 R";
    String DatabankName2 = "P2 R";
    String DatabankName3 = "P3 R";
    String DatabankName4 = "P4 R";
    String DatabankName5 = "P5 R";
    String DatabankName6 = "P6 R";
    String DatabankName7 = "P7 R";

    Für den Workflow: Geben Sie 7 Datenbanken, mindestens 10 Strategien pro Baustein, 1 für Portfolio, 2 für Nettogewinn-Filter ein und legen Sie den Schwellenwert fest.

    8/ Verbesserung der Ergebnisse

    EURUSD ohne Filter:

    USDCHF ohne Filter:

    EURUSD mit Filter:

    USDCHF mit Filter:

    Der Nettogewinn-Filter verhinderte Verluste im Jahr 2020. Testen Sie mit mehreren Metriken (Sharpe Ratio, Ulcer Index) und Zufallsgruppen, um bessere Ergebnisse zu erzielen.

    9/ Code-Übersicht

    Nach #Region zuklappen für eine bessere Struktur:

    package SQ.CustomAnalysis;
    import com.strategyquant.lib.*;
    import java.util.ArrayList;
    import com.strategyquant.datalib.*;
    import com.strategyquant.tradinglib.*;
    import com.strategyquant.tradinglib.PlTypes;
    import com.strategyquant.tradinglib.project.ProjectEngine;
    import com.strategyquant.tradinglib.results.SpecialValues;
    import com.strategyquant.datalib.TradingException;
    import com.strategyquant.lib.SQTime;
    import com.strategyquant.lib.ValuesMap;
    import com.strategyquant.lib.XMLUtil;
    import java.util.Arrays;
    import java.util.Collections;
    import java.lang.String;
    import com.strategyquant.tradinglib.results.stats.comparator.OrderComparatorByOpenTime;
    import SQ.Utils.Bouillant;
    import com.strategyquant.lib.L;
    import com.strategyquant.tradinglib.optimization.WalkForwardMatrixResult;
    import com.strategyquant.lib.ValuesMap;
    import java.io.File;  							
    import java.io.BufferedWriter;
    import java.io.IOException;  					
    import java.io.FileWriter;   					
    import java.util.Scanner;  						
    import javax.swing.JOptionPane;    				
    import java.io.FileNotFoundException;  			
    import java.io.*;
    import org.jdom2.*;
    import org.jdom2.output.*;
    import org.jdom2.Element;
    import org.jdom2.input.SAXBuilder;
    import org.jdom2.Document;
    import java.io.StringReader;
    import java.util.*;
    import java.io.IOException;
    import org.jdom2.Attribute;
    import org.jdom2.output.Format;
    import org.jdom2.output.XMLOutputter;
    import com.google.common.base.Strings;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import java.time.Duration;
    import java.time.Instant;
    import java.sql.Timestamp;
    public class RankStratsParametersV1 extends CustomAnalysisMethod 
    {
        public static final Logger Log = LoggerFactory.getLogger(RankStratsParametersV1.class);
        static Boolean DebugMode = false;
        static FileWriter FilterWriterTmp;
        public RankStratsParametersV1() 
        {
            super("RankStrategiesParameters", TYPE_PROCESS_DATABANK);
        }
        @Override
        public boolean filterStrategy(String project, String task, String databankName, ResultsGroup rg) throws Exception 
        {
            return true;
        }
        @Override
        public ArrayList<ResultsGroup> processDatabank(String project, String task, String databankName, ArrayList<ResultsGroup> databankRG) throws Exception 
        {
            try 
            {
                //#region Init
                    String LongEntrySignal= "LongEntrySignal";
                    String ShortEntrySignal= "ShortEntrySignal";
                    String LongExitSignal= "LongExitSignal";
                    String ShortExitSignal= "ShortExitSignal";
                    String stratMetric1= "ProfitFactor";
                    String stratMetric2 = "NetProfit";
                    String stratMetric3 = "SharpeRatio";
                    String stratMetric4 = "UlcerIndex";
                    String stratMetric5 = "SortinoRatio";
                    String stratMetric6 = "WinningPct";
                    String stratMetric7 = "ReturnDDRatio";
                    String stratMetric8 = "RExpectancy";
                    String stratMetric9 = "AnnualPctReturnDDRatio";
                    String stratMetric10 = "Drawdown";
                    String stratMetric11 = "NumberOfTrades";
                //#endregion
                String OutputPath1 = "C:\\Temp\\";
                String input;
                input = (String)JOptionPane.showInputDialog(null, "How many DataBanks are you analysing?", "Analysis Settings", JOptionPane.QUESTION_MESSAGE, null, null, 7);
                int NbDataBanks = Integer.parseInt(input);
                if (NbDataBanks < 1) {NbDataBanks = 1;}
                if (NbDataBanks > 12) {NbDataBanks = 12;}
                NbDataBanks = NbDataBanks + 1;
                input = (String)JOptionPane.showInputDialog(null,"Enter minimum strategies per Building block", "Analysis Settings", JOptionPane.QUESTION_MESSAGE, null, null, 10);
                int minimum = Integer.parseInt(input);
                if (minimum <= 0) { minimum = 1 ; }
                // Process databanks and create statistics
                // [Core processing logic for building block analysis]
                return databankRG;  
            }
            catch (Exception e)
            {
                Log.error("Error RankStratsParametersV1", e);
                return databankRG;  
            }
        }
    }
    

    Quellen:

    https://strategyquant.com/doc/programming-for-sq/changing-strategy-parameters-programmatically/
    https://strategyquant.com/doc/programming-for-sq/viewing-and-changing-strategy-parameters-version-2/
    Die Wertentwicklung in der Vergangenheit ist keine Garantie für zukünftigen Erfolg. Alle Informationen sollten ausschließlich zu Bildungszwecken betrachtet werden. Von der Regierung der VEREINIGTEN STAATEN vorgeschriebener Haftungsausschluss – Die Commodity Futures Trading Commission weist darauf hin: Der Handel mit Futures und Optionen birgt große potenzielle Erträge, aber auch große potenzielle Risiken. Sie müssen sich der Risiken bewusst und bereit sein, diese zu akzeptieren, um an den Futures- und Optionsmärkten zu investieren. Handeln Sie nicht mit Geld, dessen Verlust Sie sich nicht leisten können. Dies ist weder eine Aufforderung noch ein Angebot zum Kauf/Verkauf von Futures, Aktien oder darauf basierenden Optionen. Es wird keine Zusicherung gegeben, dass irgendein Konto Gewinne oder Verluste erzielen wird oder wahrscheinlich erzielen wird, die den in diesem Dokument besprochenen ähnlich sind. Die vergangene Wertentwicklung eines Handelssystems oder einer Handelsmethodik lässt nicht notwendigerweise auf zukünftige Ergebnisse schließen. CFTC-REGEL 4.41 – HYPOTHETISCHE ODER SIMULIERTE PERFORMANCE-ERGEBNISSE UNTERLIEGEN BESTIMMTEN EINSCHRÄNKUNGEN. IM GEGENSATZ ZU EINER AUFZEICHNUNG DER TATSÄCHLICHEN WERTENTWICKLUNG STELLEN SIMULIERTE ERGEBNISSE KEINEN TATSÄCHLICHEN HANDEL DAR. DA DIE TRADES NICHT AUSGEFÜHRT WURDEN, KÖNNEN DIE ERGEBNISSE AUSSERDEM DEN EINFLUSS BESTIMMTER MARKTFAKTOREN WIE ETWA MANGELNDE LIQUIDITÄT AUSGEGLICHEN HABEN. SIMULIERTE HANDELSPROGRAMME UNTERLIEGEN IM ALLGEMEINEN ZUDEM DER TATSACHE, DASS SIE IM NACHHINEIN ENTWICKELT WURDEN. ES WIRD KEINE ZUSICHERUNG GEGEBEN, DASS EIN KONTO GEWINNE ODER VERLUSTE ERZIELEN WIRD ODER WAHRSCHEINLICH ERZIELEN WIRD, DIE DEN DARGESTELLTEN ÄHNLICH SIND. ES WIRD KEINE ZUSICHERUNG GEGEBEN, DASS IRGENDEIN KONTO GEWINNE ODER VERLUSTE ERZIELEN WIRD ODER WAHRSCHEINLICH ERZIELEN WIRD, DIE DEN AUF DIESER WEBSITE BESPROCHENEN ÄHNLICH SIND. WENN SIE SICH ENTSCHEIDEN, ECHTES GELD ZU INVESTIEREN, SOLLTEN ALLE HANDELSENTSCHEIDUNGEN AN DEN FINANZMÄRKTEN IHRE EIGENEN SEIN.
    Kostenlos

    Dateien

    • Snippet-BuildingBlocksRankingv2.sqm4.7 MBGesperrt

    Der Download wird nach dem Kauf oder mit einem aktiven Tier freigeschaltet.

    Details
    Version1.0.0
    Veröffentlicht19. Oktober 2026
    Zuletzt aktualisiert2. November 2026
    AppSQ
    TypeSnippet
    AuthorEmmanuel
    App version145.3058
    Codebase categoryCustom Analysis