StrategyQuant
AI asistent QAlgoCloudQuantAnalyzerQuantDataManager
Bezplatný kurzO společnosti
BlogDokumentaceFórumKontaktujte nás
BlogTržiště
Přihlásit se
Vytvořit účet zdarma

Produkt

  • Ceny a licence
  • Vzdělávání
  • Tržiště
  • Vyzkoušet zdarma

Právní informace

  • Podmínky služby
  • Zásady ochrany osobních údajů
  • Cookies

Kontakt

[email protected]

Společnost

StrategyQuant s.r.o.

Korunní 2569/108, Vinohrady, 101 00 Praha 10, Česká republika, EU

IČ: 04000498

DIČ: CZ04000498

Sociální sítě

  • Právní doložka | ZPRACOVÁNÍ A OCHRANA OSOBNÍCH ÚDAJŮ

    Minulá výkonnost není zárukou budoucího úspěchu. Všechny informace by měly být chápány výhradně jako vzdělávací

    Upozornění vyžadované vládou USA – Komise pro obchodování s komoditními futures (CFTC) uvádí: Obchodování s futures a opcemi s sebou nese vysoké potenciální výnosy, ale také vysoké potenciální riziko. Pro investování na trzích s futures a opcemi si musíte být vědomi těchto rizik a být ochotni je přijmout. Neobchodujte s penězi, které si nemůžete dovolit ztratit. Toto není výzva ani nabídka k nákupu/prodeji futures, akcií či opcí na ně. Nijak se neprohlašuje, že jakýkoli účet dosáhne nebo pravděpodobně dosáhne zisků či ztrát podobných těm, které jsou probírány v tomto dokumentu. Minulá výkonnost jakéhokoli obchodního systému nebo metodiky nemusí nutně vypovídat o budoucích výsledcích.

    PRAVIDLO CFTC 4.41 – HYPOTETICKÉ ČI SIMULOVANÉ VÝSLEDKY VÝKONNOSTI MAJÍ URČITÁ OMEZENÍ. NA ROZDÍL OD ZÁZNAMU SKUTEČNÉ VÝKONNOSTI NEPŘEDSTAVUJÍ SIMULOVANÉ VÝSLEDKY SKUTEČNÉ OBCHODOVÁNÍ. VZHLEDEM K TOMU, ŽE OBCHODY NEBYLY REÁLNĚ PROVEDENY, MOHOU VÝSLEDKY ZKRESLOVAT VLIV URČITÝCH TRŽNÍCH FAKTORŮ, JAKO JE NAPŘÍKLAD NEDOSTATEK LIKVIDITY. SIMULOVANÉ OBCHODNÍ PROGRAMY OBECNĚ PODLÉHAJÍ TAKÉ TOMU, ŽE JSOU NAVRHOVÁNY SE ZNALOSTÍ VÝVOJE TRHU ZPĚTNĚ. NEEXISTUJE ŽÁDNÁ ZÁRUKA ANI TVRZENÍ, ŽE JAKÝKOLI ÚČET DOSÁHNE NEBO PRAVDĚPODOBNĚ DOSÁHNE ZISKŮ ČI ZTRÁT PODOBNÝCH TĚM, KTERÉ JSOU ZDE ZOBRAZENY.

    NIJAK SE NEPROHLAŠUJE, ŽE JAKÝKOLI ÚČET DOSÁHNE NEBO PRAVDĚPODOBNĚ DOSÁHNE ZISKŮ ČI ZTRÁT PODOBNÝCH TĚM, O KTERÝCH SE PÍŠE NA TĚCHTO STRÁNKÁCH. POKUD SE ROZHODNETE INVESTOVAT SKUTEČNÉ PENÍZE, VEŠKERÁ OBCHODNÍ ROZHODNUTÍ NA FINANČNÍCH TRZÍCH MUSÍ BÝT POUZE VAŠE VLASTNÍ.

    © StrategyQuant 2026

    Běží na Klaudie.ai

    Zpět na tržištěDIGITAL

    Building Blocks Ranking v2

    StrategyQuantPluginy
    Building Blocks Ranking v2

    Hodnotí stavební bloky podle výkonnosti napříč několika databankami a pomáhá najít nejziskovější komponenty pro vaše instrumenty. Analyzuje vstupní/výstupní signály a klíčové metriky pro optimalizaci tvorby strategií.

    1/ Co je nového v této verzi

    • Názvy stavebních bloků namísto proměnných pro snazší Out Of Sample analýzu
    • Analyzuje vstupní a výstupní signály
    • Výběr podle názvu signálu: Entry/Exit, Long/Short
    • Podporuje šablonování s více signály
    • Vytváří statistiky pro každou databanku a vypisuje stavební bloky v C:\temp\
    • Generuje náhodné skupiny pro každou databanku pro přesný Out Of Sample výběr
    • Vytváří portfolio obchodů z výběru OOS filtru
    • Rozšiřitelné na více než 10 metrik StrategyQuant

    2/ Instalace

    • V CodeEditoru: Importujte „SQExtension RankStratsParameters 15052022 V2 04“ a „SQExtension_SortinoRatio“
    • Kompilujte a restartujte SQX
    • Vytvořte složku C:\Temp\ s podsložkami: C:\Temp\Results P1 atd. (rozbalte Directories.rar)
    • Importujte vlastní projekty:
      • „I 1176 Bouillant Research Custom Project EURUSD Ent 1i Ex 1i I“ (vytváří strategie)
      • „I 1177 Bouillant Analysis Custom Project“ (analyzuje při >20000 strategiích)
      • „I 1177 Bouillant Analysis Plus Custom Project“ (analyzuje při <20000 strategiích)

    3/ Testování stavebních bloků

    Vytvořte strategie ve vlastní analýze a v další vlastní analýze vyhodnoťte Long Entry, Short Entry, Long Exit a Short Exit z Out Of Sample výsledků.

    4/ Výkonnost stavebních bloků

    V průběhu 21 let Out Of Sample na 3 instrumentech přinášejí některé stavební bloky čistý zisk 4959 $, zatímco jiné vykazují ztrátu -4977 $ za rok.

    5/ Analýza jedné databanky

    • Přidejte úlohu Custom Analysis Task do vlastního projektu
    • Vyberte „RankStrategiesParameters“
    • Vyberte zdrojovou databanku (např. P1R)
    • Spusťte úlohu
    • Jako počet databank zadejte 1
    • Zadejte 10 jako minimální počet strategií na stavební blok (čím více, tím lépe)

    6/ Analýza více databank

    Postupně analyzuje více databank a vybírá stavební bloky podle kritérií pro každé období.

    7/ Nastavení více databank

    Stáhněte workflow „I 1172 USDCHF H1 10YP1“ (10 let In Sample, 1 rok Out Of Sample, timeframe H1, 7 period).

    Nakonfigurujte názvy databank:

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

    Pro workflow zadejte: 7 databank, minimálně 10 strategií na blok, 1 pro portfolio, 2 pro filtr čistého zisku a zadejte prahovou hodnotu.

    8/ Zlepšení výsledků

    EURUSD bez filtru:

    USDCHF bez filtru:

    EURUSD s filtrem:

    USDCHF s filtrem:

    Filtr čistého zisku zabránil ztrátám v roce 2020. Pro dosažení lepších výsledků testujte s více metrikami (Sharpe Ratio, Ulcer Index) a náhodnými skupinami.

    9/ Přehled kódu

    Sbalit podle #Region pro přehlednou strukturu:

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

    Zdroje:

    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/
    Minulá výkonnost není zárukou budoucích výsledků. Všechny informace by měly být považovány pouze za vzdělávací Upozornění vyžadované vládou SPOJENÝCH STÁTŮ – Commodity Futures Trading Commission informuje: Obchodování s futures a opcemi přináší velký potenciální zisk, ale také velké potenciální riziko. Abyste mohli investovat na trzích s futures a opcemi, musíte si být vědomi těchto rizik a být ochotni je přijmout. Neobchodujte s penězi, které si nemůžete dovolit ztratit. Toto není výzva ani nabídka k nákupu/prodeji futures, akcií nebo opcí na ně. Žádné tvrzení nenaznačuje, že jakýkoli účet dosáhne nebo pravděpodobně dosáhne zisků či ztrát podobných těm, o kterých se hovoří v tomto dokumentu. Minulá výkonnost jakéhokoli obchodního systému nebo metodiky nemusí nutně vypovídat o budoucích výsledcích. PRAVIDLO CFTC 4.41 – VÝSLEDKY HYPOTETICKÉ ČI SIMULOVANÉ VÝKONNOSTI MAJÍ URČITÁ OMEZENÍ. NA ROZDÍL OD ZÁZNAMU SKUTEČNÉ VÝKONNOSTI SIMULOVANÉ VÝSLEDKY NEPŘEDSTAVUJÍ SKUTEČNÉ OBCHODOVÁNÍ. VZHLEDEM K TOMU, ŽE OBCHODY NEBYLY SKUTEČNĚ PROVEDENY, MOHOU VÝSLEDKY ZKRESLOVAT VLIV URČITÝCH TRŽNÍCH FAKTORŮ, JAKO JE NAPŘÍKLAD NEDOSTATEK LIKVIDITY. SIMULOVANÉ OBCHODNÍ PROGRAMY OBECNĚ PODLÉHAJÍ TAKÉ SKUTEČNOSTI, ŽE JSOU NAVRŽENY SE ZPĚTNÝM POHLEDEM NA HISTORICKÁ DATA. ŽÁDNÉ TVRZENÍ NENAZNAČUJE, ŽE JAKÝKOLI ÚČET DOSÁHNE NEBO PRAVDĚPODOBNĚ DOSÁHNE ZISKŮ ČI ZTRÁT PODOBNÝCH TĚM, KTERÉ JSOU ZDE UVEDENY. ŽÁDNÉ TVRZENÍ NENAZNAČUJE, ŽE JAKÝKOLI ÚČET DOSÁHNE NEBO PRAVDĚPODOBNĚ DOSÁHNE ZISKŮ ČI ZTRÁT PODOBNÝCH TĚM, O KTERÝCH SE HOVOŘÍ NA TĚCHTO STRÁNKÁCH. POKUD SE ROZHODNETE INVESTOVAT SKUTEČNÉ PENÍZE, VEŠKERÁ OBCHODNÍ ROZHODNUTÍ NA FINANČNÍCH TRZÍCH BY MĚLA BÝT POUZE VAŠE VLASTNÍ.
    Zdarma

    Soubory

    • Snippet-BuildingBlocksRankingv2.sqm4.7 MBUzamčeno

    Stažení se odemkne po nákupu nebo s aktivním tierem.

    Podrobnosti
    Verze1.0.0
    Zveřejněno19. října 2026
    Poslední aktualizace2. listopadu 2026
    AppSQ
    TypeSnippet
    AuthorEmmanuel
    App version145.3058
    Codebase categoryCustom Analysis