Programowalne presety

W Capitally funkcje takie jak Import i Podatki pozwalają definiować złożoną logikę za pomocą prostego edytora no-code. Wszystkie wbudowane presety są tworzone przy użyciu tego samego edytora — dzięki temu możesz korzystać z pełnych możliwości aplikacji i dostosować ją do swoich potrzeb.

Ten artykuł przeprowadzi Cię przez wspólne funkcjonalności. Szczegółowe informacje znajdziesz w artykułach dotyczących Importu i Podatków .

Elementy składowe

Presety są budowane przy użyciu Wyciągów. Podczas ich wykonywania każdy wyciąg jest przetwarzany kolejno, aż do napotkania wyciągu Exit lub zakończenia listy wyciągów.

Gdy wyciąg musi obliczyć wartość, używane jest wyrażenie . Może to być stała wartość, np. aktywo lub konkretna liczba, wartość parametru, np. kolumna danych lub typ transakcji, albo formuły umożliwiające złożone obliczenia.

Możesz traktować to jak prosty język skryptowy lub złożoną formułę w Excelu. Udostępnia podstawowe koncepcje, takie jak wyciągi, wyrażenia, zmienne, funkcje i pętle. Wszystko jest jednak budowane w sposób wizualny, bez pisania kodu.

Podejmowanie decyzji za pomocą instrukcji If

Najbardziej podstawowym wyciągiem jest instrukcja If . Pozwala ona podejmować decyzje na podstawie dowolnych parametrów — jeśli warunki są spełnione, zagnieżdżone wyciągi zostaną wykonane. Jeśli nie są spełnione, sprawdzany jest kolejny blok else lub else if .

Wstawianie wyciągów i bloków if

Aby wstawić nowy wyciąg, najedź kursorem na przestrzeń przed, po lub między istniejącymi wyciągami i kliknij niebieski pojawi się niebieski separator i wybierz instrukcję lub preset z menu.

Zrzut ekranu przedstawiający interfejs konfiguracji zasad podatkowych z wybraną opcją „Sales Tax” w menu „Wybierz grupę podatkową” oraz widocznymi poniżej opcjami zasad.

Aby wstawić nowy blok „If", najedź kursorem na przestrzeń przed, po lub pomiędzy istniejącymi blokami if/else i kliknij szary separator, który się pojawi

Interfejs aplikacji finansowej prezentujący reguły typów aktywów, rozliczanie podatków oraz opcję dodania nowego bloku z warunkami transakcji.

Modyfikowanie ich

Każda instrukcja i blok If ma menu, za pomocą którego możesz je Kopiować, Wycinać, Duplikować i Usuwać.

Po skopiowaniu lub wycięciu instrukcji możesz ją wkleić w ten sam sposób, w jaki dodajesz nowe instrukcje — pojawi się tam opcja Wklej.

And / Or

Gdy potrzebne są złożone warunki, możesz opakować pierwszy warunek w blok And/Or i w ten sposób łączyć wiele warunków.

Zrzut ekranu interfejsu filtra z rozwijanymi listami dla typu aktywa, wyboru warunku oraz opcji takich jak „Zgrupuj w i/lub” i „I”.

Ustawianie parametrów za pomocą instrukcji Set

Możesz modyfikować parametr lub zmienną obiektu za pomocą instrukcji Set . Wystarczy wybrać parametr do zmodyfikowania i podać wartość.

Interfejs rozwijanej listy do ustawiania „Waluta opłaty" na „Waluta wartości" z opcjami w panelu ustawień użytkownika z fioletowym podświetleniem.Waluta opłaty będzie taka sama jak Waluta wartości

Modyfikowanie istniejącej wartości zamiast jej zastępowania

Klikając listę rozwijaną to , możesz wybrać różne tryby przypisania, takie jak dodawanie, mnożenie, dołączanie lub poprzedzanie tekstu itd.

Zrzut ekranu interfejsu automatyzacji przepływu pracy przedstawiający akcje zwiększania wartości o określoną kwotę i dodawania notatki według kolumny Opis.Wartość zostanie zwiększona o kolumnę Kwota, a do Notatki zostanie dołączony Opis

Przekształcanie wartości

Proste wartości skalarne, takie jak tekst czy liczby, mogą zostać przekształcone przed przypisaniem. Klikając fx, możesz wybrać jedną z transformacji. Możesz łączyć ze sobą wiele transformacji i zmieniać ich kolejność metodą przeciągnij i upuść. Ten sam przycisk fx pojawia się wszędzie tam, gdzie mapowanie wyszukuje aktywo, rynek lub źródło ceny na podstawie kolumny lub formuły, dzięki czemu wartość może zostać oczyszczona przed uruchomieniem wyszukiwania.

Zrzut ekranu interfejsu narzędzia do przekształcania danych z opcjami inkrementowania kolumny „Kwota" według wartości oraz wyświetloną listą dodatkowych funkcji.Wartość stanie się zaokrągloną wartością bezwzględną kolumny KwotaZastępowanie tekstu

Przekształcenie Replace pozwala zastąpić wystąpienia pasującego tekstu czymś innym. Na przykład możesz zastąpić słowo (np. .GR na .EU) lub usunąć coś, zastępując to niczym.

Zrzut ekranu interfejsu transformacji danych mapującego sufiksy tickerów aktywów, konwertujący sufiks .GR na .EU dla standaryzacji danych finansowych.

Replace obsługuje również Wyrażenia regularne , w tym tzw. grupy przechwytywania i odwołania wsteczne. Wystarczy przełączyć przycisk (.*) .

Załóżmy, że masz ciąg „apple orange banana" i chcesz zamienić miejscami dwa pierwsze słowa. Możesz użyć wzorca ([a-z]+) [a-z]+ ([a-z]+) i zastąpić go przez $2 $1 , aby uzyskać „orange apple banana".

Wyodrębnianie tekstu

Zamiast wyodrębniać, możesz po prostu dopasować tę część ciągu, która ma zostać użyta. Najlepiej sprawdza się to z Wyrażeniami regularnymi, ponieważ wyodrębniona zostanie pierwsza grupa przechwytywania.

Rozwijając powyższy przykład z „apple orange banana", użycie wzorca [a-z]+ ([a-z]+) [a-z]+ wyodrębni tylko środkowe słowo — „orange".

Mapowanie wartości

W przypadku niektórych parametrów, takich jak Typ aktywa lub Typ transakcji, możesz również mapować wartość z jednej na drugą. Kliknij odwrócone S ikona obok fx aby dodać mapowanie.

Mapowanie sprawdza, czy nadchodząca wartość spełnia określony warunek. Jeśli tak – zostanie użyta wybrana wartość. Mapowania są dopasowywane kolejno, a wygrywa pierwsze pasujące.

Zrzut ekranu interfejsu warunkowej logiki przepływu pracy, mapującego typy transakcji, takie jak Kupno, Sprzedaż i aktywność planu akcji, do określonych działań.

Rzutowanie wartości między typami

Parametry mogą mieć niezgodne typy. Na przykład tekst zostanie automatycznie przekonwertowany na liczbę lub datę, o ile zawiera sensowną wartość (np. 2024-11-01 lub 1st Nov 2024).

Działa to również dla Kont, Walut, Rynków i typów transakcji – każda wartość tekstowa zostanie użyta do wyszukania w danych projektu lub danych rynkowych.

W przypadku aktywów możesz dodatkowo określić, które typy aktywów i rynki mają być uwzględnione oraz w jakiej kolejności pierwszeństwa — search in asset types i search in markets — a także search remote assets, co decyduje o tym, czy wyszukiwanie wykracza poza Twój projekt do katalogu rynkowego.

Każde z nich przyjmuje kolumnę lub formułę, a nie tylko stałą wartość. Gdy to nastąpi, obsługuje te same transformacje fx i mapowania odwróconego S, co instrukcja Set, więc z tickera brokera można usunąć przyrostek (AAPL.USAAPL), lub nazwy typów aktywów z pliku można zmapować na te używane w Capitally przed uruchomieniem wyszukiwania. Wpisanie stałej wartości z powrotem w pole usuwa przypisane do niego transformacje.

Zrzut ekranu filtra wyszukiwania aktywów finansowych z opcjami wyboru typu aktywa, rynku oraz przełącznikiem do wyszukiwania zdalnych aktywów.

Szczegóły i konfiguracja własnego aktywa w mapowaniu aktywa zawiera trzy dodatkowe wyrażenia — asset name, symbol oraz ISIN. Rozszerzają one zakres wyszukiwania, dzięki czemu wiersz, którego wartość wyszukiwania jest pusta, nadal znajduje aktywo po nazwie lub numerze ISIN, a także opisują własne aktywo oferowane, gdy nic nie pasuje. Instrukcje znajdujące się poniżej kształtują to aktywo dalej, a dostępne są tylko te, które mogą to zrobić: If, Set, Variable, Block, Exit, Comment, Update Asset Taxonomies, Use value-based pricing, Use interest-based pricing, Set interest parameters oraz Add interest parameters. Odczytują one wiersz, ale zapisują tylko tworzone aktywo, więc Add interest parameters nie może wskazywać na Aktywo. Mapowanie konta zawiera ten sam rodzaj bloku w sekcji Konfiguracja własnego konta.

Żaden z bloków nie zapisuje danych w projekcie samodzielnie. Przygotowuje on wersję roboczą, a aktywo lub konto jest tworzone dopiero po kliknięciu przycisku Create w niesparowanym wierszu podczas importu.

Mapowanie do Źródło danych rynkowych posiada własny element sterujący: przełącznik optional, opisany w aplikacji jako use manual prices instead of failing. Gdy jest wyłączony, symbol, którego nie ma w katalogu Capitally, powoduje błąd wiersza. Gdy jest włączony, wiersz jest importowany, a aktywo pozostaje bez źródła ceny, więc wyceniasz je ręcznie. Obejmuje to tylko potwierdzony brak — wyszukiwanie, które zwraca błąd lub jest w trakcie przetwarzania, nadal zatrzymuje wiersz.

Definiowanie zmiennych

Podobnie jak w każdym języku skryptowym, możesz zdefiniować zmienną przechowującą wartość do późniejszego ponownego użycia. Każda zmienna ma określony typ i wartość początkową. Po jej zdefiniowaniu można się do niej odwoływać lub ustawiać ją jak każdy inny parametr.

Domyślnie wszystkie zmienne są lokalne – co oznacza, że są dostępne tylko w bloku, w którym zostały zadeklarowane (włącznie z zagnieżdżonymi blokami) i tylko po ich zadeklarowaniu.

Możesz przełączyć je na współdzielone, co oznacza, że ich wartość zostanie zainicjowana tylko raz i będzie dostępna nie tylko w całym programie, ale również między jego kolejnymi wywołaniami – np. dla każdego wiersza importu lub każdego zdarzenia podatkowego.

Zrzut ekranu przedstawiający inicjalizację zmiennej w interfejsie użytkownika, z opcjami dla stałych liczb lub wartości dynamicznych oraz przełączaniem między zakresem lokalnym a współdzielonym.

Komentarze

Obliczenia są pomocne tylko wtedy, gdy rozumiesz liczby. Możesz dodawać bogato sformatowane komentarze w dowolnym miejscu presetu, aby lepiej opisać logikę.

Zrzut ekranu zielonego pola tekstowego z poradami dotyczącymi formatowania Markdown, w tym nagłówkami, listami, pogrubionym tekstem i tworzeniem hiperłączy.