StrategyQuant
Assistente IA QAlgoCloudQuantAnalyzerQuantDataManager
Corso gratuitoAzienda
BlogDocumentazioneForumContattaci
BlogMarketplace
Accedi
Crea un account gratuito

Prodotto

  • Prezzi e licenze
  • Impara
  • Marketplace
  • Inizia la prova gratuita

Note legali

  • Termini di servizio
  • Informativa sulla privacy
  • Cookie

Contatti

[email protected]

Azienda

StrategyQuant s.r.o.

Korunní 2569/108, Vinohrady, 101 00 Praha 10, Repubblica Ceca, UE

IČ: 04000498

P. IVA / DIČ: CZ04000498

Social

  • Note legali | TRATTAMENTO E PROTEZIONE DEI DATI PERSONALI

    I risultati passati non garantiscono successi futuri. Tutte le informazioni devono essere considerate esclusivamente a scopo didattico

    STATI UNITI Disclaimer richiesto dal Governo - La Commodity Futures Trading Commission informa: il trading su futures e opzioni comporta grandi ricompense potenziali, ma anche un grande rischio potenziale. È necessario essere consapevoli dei rischi ed essere disposti ad accettarli per poter investire nei mercati dei futures e delle opzioni. Non fare trading con denaro che non puoi permetterti di perdere. Questa non è né una sollecitazione né un'offerta per acquistare/vendere futures, azioni o opzioni su di essi. Non viene rilasciata alcuna dichiarazione che un qualsiasi conto conseguirà o con ogni probabilità conseguirà profitti o perdite simili a quelli discussi in questo documento. Le performance passate di qualsiasi sistema o metodologia di trading non sono necessariamente indicative dei risultati futuri.

    REGOLA CFTC 4.41 - I RISULTATI DI RENDIMENTO IPOTETICI O SIMULATI PRESENTANO DETERMINATI LIMITI. A DIFFERENZA DI UN REGISTRO DI RENDIMENTO REALE, I RISULTATI SIMULATI NON RAPPRESENTANO UN'ATTIVITÀ DI TRADING EFFETTIVA. INOLTRE, POICHÉ LE OPERAZIONI NON SONO STATE ESEGUITE, I RISULTATI POTREBBERO AVER COMPENSATO L'IMPATTO, SE PRESENTE, DI DETERMINATI FATTORI DI MERCATO, COME LA MANCANZA DI LIQUIDITÀ. I PROGRAMMI DI TRADING SIMULATI IN GENERALE SONO ANCHE SOGGETTI AL FATTO DI ESSERE PROGETTATI CON IL BENEFICIO DEL SENNO DI POI. NON VIENE RILASCIATA ALCUNA DICHIARAZIONE CHE UN QUALSIASI CONTO CONSEGUIRÀ O CON OGNI PROBABILITÀ CONSEGUIRÀ PROFITTI O PERDITE SIMILI A QUELLI MOSTRATI.

    NON VIENE RILASCIATA ALCUNA DICHIARAZIONE CHE UN QUALSIASI CONTO CONSEGUIRÀ, O CON OGNI PROBABILITÀ CONSEGUIRÀ, PROFITTI O PERDITE SIMILI A QUELLI DISCUSSI ALL'INTERNO DI QUESTO SITO. SE DECIDI DI INVESTIRE DENARO REALE, TUTTE LE DECISIONI DI TRADING NEI MERCATI FINANZIARI DEVONO ESSERE ESCLUSIVAMENTE TUE.

    © StrategyQuant 2026

    Offerto da Klaudie.ai

    Torna al marketplaceDIGITAL

    Building Blocks Ranking v2

    StrategyQuantPlugin
    Building Blocks Ranking v2

    Classifica i building block in base al rendimento su molteplici databank per trovare i componenti più redditizi per i tuoi strumenti. Analizza i segnali di ingresso/uscita e le metriche chiave per ottimizzare la creazione delle strategie.

    1/ Novità di questa versione

    • Nomi dei Building Block anziché variabili per un'analisi Out Of Sample più semplice
    • Analizza i segnali di Entry ed Exit
    • Selezione in base al nome del segnale: Entry/Exit, Long/Short
    • Supporta il templating con segnali multipli
    • Crea statistiche per databank ed elenca i Building Block in C:\temp\
    • Genera gruppi casuali per ciascun databank per una precisa selezione Out Of Sample
    • Crea un portafoglio di operazioni a partire dalla selezione dei filtri OOS
    • Espandibile a oltre 10 metriche di StrategyQuant

    2/ Installazione

    • In CodeEditor: importa "SQExtension RankStratsParameters 15052022 V2 04" e "SQExtension_SortinoRatio"
    • Compila e riavvia SQX
    • Crea la cartella C:\Temp\ con le sottodirectory: C:\Temp\Results P1, ecc. (estrai Directories.rar)
    • Importa i Custom project:
      • "I 1176 Bouillant Research Custom Project EURUSD Ent 1i Ex 1i I" (crea strategie)
      • "I 1177 Bouillant Analysis Custom Project" (analizza se >20000 strategie)
      • "I 1177 Bouillant Analysis Plus Custom Project" (analizza se <20000 strategie)

    3/ Test dei Building Block

    Crea strategie nell'analisi personalizzata, analizza Long Entry, Short Entry, Long Exit, Short Exit dai risultati Out Of Sample in un'altra analisi personalizzata.

    4/ Rendimento dei Building Block

    In oltre 21 anni di Out Of Sample su 3 strumenti, alcuni Building Block generano un profitto netto di 4959 $, mentre altri mostrano una perdita di -4977 $ all'anno.

    5/ Analisi di un Databank singolo

    • Aggiungi Custom Analysis Task al Custom Project
    • Seleziona "RankStrategiesParameters"
    • Seleziona il Databank di origine (es. P1R)
    • Esegui il task
    • Inserisci 1 come numero di Databank
    • Inserisci 10 come numero minimo di strategie per Building Block (più alto è, meglio è)

    6/ Analisi Multi-Databank

    Analizza molteplici Databank in sequenza, selezionando i Building Block in base ai criteri per ciascun periodo.

    7/ Configurazione con Databank multipli

    Scarica il workflow "I 1172 USDCHF H1 10YP1" (10 anni In Sample, 1 anno Out Of Sample, timeframe H1, 7 periodi).

    Configura i nomi dei 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";

    Per il workflow: inserisci 7 databank, 10 strategie minime per blocco, 1 per il portafoglio, 2 per il filtro Net Profit, inserisci l'importo di soglia.

    8/ Miglioramento dei risultati

    EURUSD senza filtro:

    USDCHF senza filtro:

    EURUSD con filtro:

    USDCHF con filtro:

    Il filtro sul profitto netto ha evitato le perdite del 2020. Effettua test con molteplici metriche (Sharpe Ratio, Ulcer Index) e gruppi casuali per ottenere risultati migliori.

    9/ Panoramica del codice

    Comprimi per #Region per visualizzare la struttura:

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

    Fonti:

    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/
    I rendimenti passati non garantiscono successi futuri. Tutte le informazioni devono essere considerate esclusivamente a scopo didattico Disclaimer STATI UNITI richiesto dal Governo - La Commodity Futures Trading Commission informa: Il trading su futures e opzioni offre grandi opportunità di guadagno, ma comporta anche grandi rischi potenziali. È necessario essere consapevoli dei rischi ed essere disposti ad accettarli per poter investire nei mercati dei futures e delle opzioni. Non fare trading con denaro che non ci si può permettere di perdere. La presente comunicazione non costituisce né una sollecitazione né un'offerta di acquisto/vendita di futures, azioni o relative opzioni. Non viene rilasciata alcuna dichiarazione attestante che qualsiasi conto conseguirà o possa conseguire profitti o perdite simili a quelli descritti in questo documento. I rendimenti passati di qualsiasi sistema o metodologia di trading non sono necessariamente indicativi dei risultati futuri. REGOLA CFTC 4.41 - I RISULTATI DI RENDIMENTO IPOTETICI O SIMULATI PRESENTANO ALCUNI LIMITI. A DIFFERENZA DI UN REGISTRO DEI RENDIMENTI EFFETTIVI, I RISULTATI SIMULATI NON RAPPRESENTANO OPERAZIONI DI TRADING REALI. INOLTRE, POICHÉ LE OPERAZIONI NON SONO STATE EFFETTIVAMENTE ESEGUITE, I RISULTATI POTREBBERO NON AVERE RISENTITO DELL'IMPATTO, SE PRESENTE, DI DETERMINATI FATTORI DI MERCATO, COME LA MANCANZA DI LIQUIDITÀ. I PROGRAMMI DI TRADING SIMULATI IN GENERALE SONO ANCHE SOGGETTI AL FATTO DI ESSERE PROGETTATI CON IL BENEFICIO DEL SENNO DI POI. NON VIENE RILASCIATA ALCUNA DICHIARAZIONE ATTESTANTE CHE QUALSIASI CONTO CONSEGUIRÀ O POSSA CONSEGUIRE PROFITTI O PERDITE SIMILI A QUELLI MOSTRATI. NON VIENE RILASCIATA ALCUNA DICHIARAZIONE ATTESTANTE CHE QUALSIASI CONTO CONSEGUIRÀ, O POSSA CONSEGUIRE, PROFITTI O PERDITE SIMILI A QUELLI DESCRITTI ALL'INTERNO DI QUESTO SITO. QUALORA SI DECIDA DI INVESTIRE DENARO REALE, TUTTE LE DECISIONI DI TRADING NEI MERCATI FINANZIARI DEVONO ESSERE ESCLUSIVAMENTE PERSONALI.
    Gratis

    File

    • Snippet-BuildingBlocksRankingv2.sqm4.7 MBBloccato

    Il download si sblocca dopo l’acquisto o con un livello attivo.

    Dettagli
    Versione1.0.0
    Pubblicato19 ottobre 2026
    Ultimo aggiornamento2 novembre 2026
    AppSQ
    TypeSnippet
    AuthorEmmanuel
    App version145.3058
    Codebase categoryCustom Analysis