StrategyQuant
Asystent Q AIAlgoCloudQuantAnalyzerQuantDataManager
Darmowy kursFirma
BlogDokumentacjaForumKontakt
BlogMarketplace
Zaloguj się
Załóż bezpłatne konto

Produkt

  • Cennik i licencje
  • Baza wiedzy
  • Marketplace
  • Rozpocznij darmowy okres próbny

Informacje prawne

  • Regulamin
  • Polityka prywatności
  • Pliki cookie

Kontakt

[email protected]

Firma

StrategyQuant s.r.o.

Korunní 2569/108, Vinohrady, 101 00 Praha 10, Czech Republic, EU

IČ: 04000498

DIČ: CZ04000498

Media społecznościowe

  • Nota prawna | PRZETWARZANIE I OCHRONA DANYCH OSOBOWYCH

    Dotychczasowe wyniki nie stanowią gwarancji przyszłych sukcesów. Wszelkie informacje należy traktować wyłącznie jako materiały edukacyjne

    STANY ZJEDNOCZONE Zastrzeżenie prawne wymagane przez Rząd - Commodity Futures Trading Commission informuje: Handel kontraktami futures i opcjami wiąże się z dużymi potencjalnymi zyskami, ale także z ogromnym potencjalnym ryzykiem. Musisz być świadomy tego ryzyka i gotów je zaakceptować, aby inwestować na rynkach kontraktów futures i opcji. Nie handluj środkami, na których utratę nie możesz sobie pozwolić. Nie stanowi to ani zachęty, ani oferty kupna/sprzedaży kontraktów futures, akcji lub opcji na nie. Nie składa się żadnych oświadczeń, że jakiekolwiek konto osiągnie lub ma prawdopodobieństwo osiągnięcia zysków lub strat podobnych do tych omówionych w tym dokumencie. Wyniki osiągane w przeszłości przez jakikolwiek system lub metodologię handlową niekoniecznie wskazują na przyszłe rezultaty.

    REGUŁA CFTC 4.41 - HIPOTETYCZNE LUB SYMULOWANE WYNIKI MAJĄ PEWNE OGRANICZENIA. W PRZECIWIEŃSTWIE DO HISTORII RZECZYWISTYCH WYNIKÓW, WYNIKI SYMULOWANE NIE PRZEDSTAWIAJĄ RZECZYWISTEGO HANDLU. PONADTO, PONIEWAŻ TRANSAKCJE NIE ZOSTAŁY FAKTYCZNIE ZAWARTE, WYNIKI MOGĄ NIE UWZGLĘDNIAĆ WPŁYWU OKREŚLONYCH CZYNNIKÓW RYNKOWYCH, TAKICH JAK BRAK PŁYNNOŚCI. PROGRAMY DO SYMULACJI TRANSAKCJI GENERALNIE PROJEKTUJE SIĘ RÓWNIEŻ Z KORZYŚCIĄ WIEDZY PO FAKCIE (Z PERSPEKTYWY CZASU). NIE SKŁADA SIĘ ŻADNYCH OŚWIADCZEŃ, ŻE JAKIEKOLWIEK KONTO OSIĄGNIE LUB MA PRAWDOPODOBIEŃSTWO OSIĄGNIĘCIA ZYSKÓW LUB STRAT PODOBNYCH DO PRZEDSTAWIONYCH.

    NIE SKŁADA SIĘ ŻADNYCH OŚWIADCZEŃ, ŻE JAKIEKOLWIEK KONTO OSIĄGNIE LUB MA PRAWDOPODOBIEŃSTWO OSIĄGNIĘCIA ZYSKÓW LUB STRAT PODOBNYCH DO TYCH OMÓWIONYCH W TEJ WITRYNIE. JEŚLI ZDECYDUJESZ SIĘ ZAINWESTOWAĆ PRAWDZIWE PIENIĄDZE, WSZYSTKIE DECYZJE HANDLOWE NA RYNKACH FINANSOWYCH POWINNY BYĆ TWOIMI WŁASNYMI.

    © StrategyQuant 2026

    Obsługiwane przez Klaudie.ai

    Wróć do MarketplaceDIGITAL

    Read Strategy Init Variables

    StrategyQuantWtyczki
    Read Strategy Init Variables

    Przykład analizy niestandardowej (Custom Analysis) pokazujący, jak odczytywać wartości zmiennych z reguł Strategy Init. Pokazuje użycie toInitValue do uzyskiwania dostępu do parametrów inicjalizacji i tworzenia własnych kolumn w databanku.

    W regule wywoływanej przy Strategy Init, dla każdej funkcji Assign, StrategyQuant przypisuje zmienną „AssignVrbVleEntMlt” do Twojej zmiennej zamiast wartości.

    Następnie, podczas inicjalizacji, przekaże wartość AssignVrbVleEntMlt z powrotem do Twojej zmiennej

    Ze strategii wygenerowanej przez szablon „H1388 Test Variable Template” możemy odczytać w kodzie:

    AssignVrbVleEntMlt = 210

    AssignVrbVleEntMlt otrzymuje wartość na miejscu MALength

    Następnie AssignVrbVleEntMlt przekazuje wartość z powrotem do MALength podczas inicjalizacji.

    1/ Ten przykładowy kod Custom Analysis pokazuje, jak pobrać wartość zmiennej w regule wywoływanej przy Strategy Init

    Pobieramy wartość z funkcji „toInitValue”, z obiektu ResultsGroup, podając nazwę reguły „Init” oraz nazwę zmiennej: MALength (w tym przykładzie)

    Następnie używamy funkcji rg.specialValues(), aby ustawić wartość w „CA_MALength”

    package SQ.CustomAnalysis;
    import com.strategyquant.lib.*;
    import java.util.ArrayList;
    import com.strategyquant.datalib.*;
    import com.strategyquant.tradinglib.*;
    import SQ.Utils.Bouillant;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import java.util.*; 
    // Created in France by Emmanuel Bouillant-Evrard
    public class CA_InitStratsSettings extends CustomAnalysisMethod 
    {
        public static final Logger Log = LoggerFactory.getLogger(CA_InitStratsSettings.class);
        public CA_InitStratsSettings() 
        {
            super("CA MALength Settings", TYPE_FILTER_STRATEGY);
        }
        //------------------------------------------------------------------------
        @Override
        public boolean filterStrategy(String project, String task, String databankName, ResultsGroup rg) throws Exception 
        {
            try 
            {
                Bouillant BouilltParaObj1 = new Bouillant();
                String IntTemp = BouilltParaObj1.toInitValue(rg, false,"Init", "MALength", 100); 
                rg.specialValues().set("CA_MALength", Double.parseDouble(IntTemp));
                return true;
          	} catch(Exception e)
            {
                Log.error("Error CA_InitStratsSettings", e);
                return false;																																							       // "Error: " + e.getMessage();
            }
        }
        //------------------------------------------------------------------------
        @Override
        public ArrayList<ResultsGroup> processDatabank(String project, String task, String databankName, ArrayList<ResultsGroup> databankRG) throws Exception {
            return databankRG;
        }
    }

    2 / Następnie kod DatabankColumn odczytuje wartość analizy niestandardowej (Custom Analysis)

    Używamy rg.specialValues, aby pobrać wartość z CA_MALength
    package SQ.Columns.Databanks;
    import com.strategyquant.lib.*;
    import com.strategyquant.datalib.*;
    import com.strategyquant.tradinglib.*;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    // Created in France by Emmanuel Bouillant-Evrard 
    public class StratSettingsMALength extends DatabankColumn 
    {
      public static final Logger Log = LoggerFactory.getLogger(StratSettingsMALength.class);
      public StratSettingsMALength()
      {
        super("MALength Settings", DatabankColumn.Decimal2, ValueTypes.Maximize, 0, 0, 100); 
      }
      //------------------------------------------------------------------------
      /**
       * This method should return computed value of this new column. You should typically compute it from the list of orders 
       * or from some already computed statistical values (other databank columns). 
       */
      @Override
      public String getValue(ResultsGroup rg, String resultKey, byte direction, byte plType, byte sampleType) throws Exception 
      {   
        try 
        {
          double value = rg.specialValues().getDouble("CA_MALength", -1);
          if(value == -1) 
          {
            // this means value was not set
            return NOT_AVAILABLE;
          } else 
          {
            // return value converted to String
            return java.lang.Double.toString(value);
          }
        } catch(Exception e)
        {
          Log.error("Error StratSettingsMALength", e);
          return "";																																							       // "Error: " + e.getMessage();
        }
      }
    }

    3/ Jak to zainstalować

    • Zaimportuj snippety w Edytorze kodu
    • Skompiluj wszystko
    • Uruchom ponownie StrategyQuant
    • następnie wybierz Custom Analysis w Builderze:

    Następnie dodajemy tę nową kolumnę do Databanku i odczytujemy wartość naszych reguł Init

    Jeśli funkcja Custom Analysis nie jest już używana, należy usunąć Column Databank, aby uniknąć błędów w dzienniku zdarzeń (logach)

    Nazywam się Emmanuel Bouillant-Evrard, jestem inżynierem specjalizującym się w finansach. Pracowałem w dziale badań i rozwoju (R&D) w branży finansowej w USA, Kanadzie i Francji przez 24 lata.

    Dotychczasowe wyniki nie stanowią gwarancji przyszłych zysków. Wszelkie informacje należy traktować wyłącznie jako materiały edukacyjne Zastrzeżenie wymagane przez rząd STANÓW ZJEDNOCZONYCH – Commodity Futures Trading Commission informuje: Handel kontraktami futures i opcjami wiąże się z potencjalnie wysokimi zyskami, ale także z ogromnym ryzykiem. Należy być świadomym ryzyka i być gotowym je zaakceptować, aby inwestować na rynkach kontraktów futures i opcji. Nie inwestuj pieniędzy, na których stratę nie możesz sobie pozwolić. Niniejszy dokument nie stanowi zachęty ani oferty kupna/sprzedaży kontraktów futures, akcji ani powiązanych z nimi opcji. Nie składa się żadnych oświadczeń, że jakiekolwiek konto osiągnie lub ma szansę osiągnąć zyski lub straty podobne do omówionych w tym dokumencie. Wyniki osiągnięte w przeszłości przez jakikolwiek system lub metodologię handlową niekoniecznie wskazują na przyszłe rezultaty. REGUŁA CFTC 4.41 – HIPOTETYCZNE LUB SYMULOWANE WYNIKI MAJĄ PEWNE OGRANICZENIA. W PRZECIWIEŃSTWIE DO HISTORII RZECZYWISTYCH WYNIKÓW, WYNIKI SYMULOWANE NIE ODZWIERCIEDLAJĄ RZECZYWISTEGO HANDLU. PONADTO, PONIEWAŻ TRANSAKCJE NIE ZOSTAŁY FAKTYCZNIE ZAWARTE, WYNIKI MOGĄ NIE UWZGLĘDNIAĆ WPŁYWU PEWNYCH CZYNNIKÓW RYNKOWYCH, TAKICH JAK BRAK PŁYNNOŚCI. SYMULOWANE PROGRAMY HANDLOWE Z REGUŁY CECHUJE RÓWNIEŻ TO, ŻE SĄ PROJEKTOWANE Z PERSPEKTYWY CZASU. NIE SKŁADA SIĘ ŻADNYCH OŚWIADCZEŃ, ŻE JAKIEKOLWIEK KONTO OSIĄGNIE LUB MA SZANSĘ OSIĄGNĄĆ ZYSKI LUB STRATY PODOBNE DO PRZEDSTAWIONYCH. NIE SKŁADA SIĘ ŻADNYCH OŚWIADCZEŃ, ŻE JAKIEKOLWIEK KONTO OSIĄGNIE LUB MA SZANSĘ OSIĄGNĄĆ ZYSKI LUB STRATY PODOBNE DO OMÓWIONYCH W TYM SERWISIE. W PRZYPADKU DECYZJI O INWESTOWANIU PRAWDZIWYCH PIENIĘDZY, WSZYSTKIE DECYZJE HANDLOWE NA RYNKACH FINANSOWYCH POWINNY BYĆ PODEJMOWANE SAMODZIELNIE.
    Bezpłatne

    Pliki

    • Snippet-ReadStrategyInitVariables.sqm20 KBZablokowane

    Pobieranie odblokuje się po zakupie lub z aktywnym poziomem członkostwa.

    Szczegóły
    Wersja1.0.0
    Opublikowano19 października 2026
    Ostatnia aktualizacja2 listopada 2026
    AppSQ
    TypeSnippet
    AuthorEmmanuel
    App version145.3058
    Codebase categoryCustom Analysis