Programowanie w Tradingu / rynkach kapitałowych

Programowanie w Tradingu / rynkach kapitałowych
LJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 godziny
  • Postów:5
0

Cześć wszystkim,

Chciałbym się dowiedzieć, jaki język programowania będzie najlepszy do pisania prostych algorytmów do tradingu. Interesuję się rynkami i tradingiem, ale nie mam dużej wiedzy z zakresu programowania.

Chciałbym zacząć pisać proste algorytmy, które kupowałyby/sprzedawały dane aktywo, gdy spełnione zostaną określone warunki (strategie). Zależy mi również na możliwości wizualizacji strategii, czyli wygranych, strat, procentu skuteczności, maksymalnej straty itd. Chciałbym zacząć od tego, a następnie rozwinąć projekt w bardziej zautomatyzowany system, w którym bot sam kupowałby i sprzedawał aktywa na giełdzie, zarządzając ryzykiem.

Stąd moje pytanie – czego najlepiej się uczyć w tym kierunku?

Z wstępnego researchu wynika, że najlepszym wyborem jest Python. Jeśli tak, to czy sam Python wystarczy, czy warto nauczyć się jeszcze czegoś dodatkowego?

Ponadto chciałbym się dowiedzieć, czy ze stackiem technologicznym wymaganym do realizacji takich rzeczy, o których wspomniałem, istnieje możliwość znalezienia pracy? W jakim kierunku mogłaby ona pójść? (chodzi mi o branze, specjalizacje)

Na ten moment nie uczylbym się programowania z myślą o zmianie pracy – traktuję to raczej jako hobby związane z rynkami kapitałowymi. Jednak w przyszłości, kto wie? Jeśli dałoby się połączyć pasję z pracą, to byłoby świetnie.

obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:2 dni
0
ljuuuk napisał(a):

Z wstępnego researchu wynika, że najlepszym wyborem jest Python. Jeśli tak, to czy sam Python wystarczy, czy warto nauczyć się jeszcze czegoś dodatkowego?

Jak najbardziej Python. Te strategie miałyby być oparte na AI? Jeśli tak to tym bardziej python.

Ponadto chciałbym się dowiedzieć, czy ze stackiem technologicznym wymaganym do realizacji takich rzeczy, o których wspomniałem, istnieje możliwość znalezienia pracy? W jakim kierunku mogłaby ona pójść? (chodzi mi o branze, specjalizacje)

Nie. Python jest obecnie najpopularniejszym językiem programowania a co za tym idzie jest przesyt kandydatów.

ljuuuk napisał(a):

Na ten moment nie uczylbym się programowania z myślą o zmianie pracy – traktuję to raczej jako hobby związane z rynkami kapitałowymi. Jednak w przyszłości, kto wie? Jeśli dałoby się połączyć pasję z pracą, to byłoby świetnie.

W takim razie w ogóle się nie przejmuj, nie musisz mieć pracy w pierwszym języku jaki poznasz (choć tak pracuje większość javowców). Im więcej liźniesz języków przed pierwszą pracą tym lepiej, natomiast obecnie w żadnym języku nie da się za bardzo znaleźć pracy jako nowicjusz więc nie musisz się spieszyć.


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
MI
  • Rejestracja:około 9 lat
  • Ostatnio:2 minuty
  • Postów:110
1

Dużo zależy o tego, co będziesz dokładnie chciał robić i jakie masz pomysły :)

Generalnie do większości implementowanych strategii algorytmicznych styknie python.

Jak zależy Ci na jakichś bardzo szybkich rozwiązaniach to się schodzi do języków bliżej systemu typu c++ czy rust a już idąc dalej, wykorzystuje się bufory kart sieciowych albo FPGA. Podejrzewam, że to nie twój przypadek.

W takich projektach warto zacząć od tego co jest najprostsze (np. python) albo co się najlepiej zna. Nie wiem jak dokładnie byś chciał realizować swoje pomysły, czy przez api domów maklerskich czy może bezpośrednie wpięcia do giełd (np. crypto) ale zwróć uwagę, że zazwyczaj takie platformy udostępniają gdzieś gotowe przykładowe implementacje do swoich platform które zazwyczaj działają i z których można od razu skorzystać. Odchodzi Ci cała warstwa implementowania połączeń czy przesyłanych komunikatów

Mbappe_koksik
  • Rejestracja:3 miesiące
  • Ostatnio:mniej niż minuta
  • Postów:69
0

Cześć pracowałem w frmie tradingowej i odszedłem po niecałym roku pracy. Nie wiem czy sobie zdajesz z tego sprawę, że tam każda sekunda się liczy i operuje się na hajsie. Bycie programistą przy takich systemach było tak dla mnie nerwowe że ja piernicze, prawie osiwiałem

Dla porównania pracowałem w firmach typu Allego (sklep) i był w opór chill w porównaniu do tego.

To tylko takie ostrzeżenie, ja bym w to nie wszedł ze względu że programuje się przepływ hajsu, transakcje, jest to w bardzo skomplikowane, w dodatku robi się pod presją czasu w sprintach (jak to programiści), często są błędy, bo każdemu się zdarzają, to jest taka pompa i ciśnienie bo.... to dotyczy pieniędzy

Zdarzało się że miałem telefony o 2 w nocy bo coś na giełdzie nie działało, także odradzam tą robotę.

Ciężko mi opisać ten stres, ale w tejże pracy pierwszy raz nabawiłem się "potnicy" rąk, zaczynało to brzydko wyglądać :) Po zwolnieniu z tamtej pracy jak ręką odjął.

edytowany 4x, ostatnio: Mbappe_koksik
marian pazdzioch
Mi się wydaje że dałeś sobie wejść na głowę a nie że praca stresująca. Telefony o 2 w nocy? Raz że nie podajesz telefonu prywatnego. Służbowy wyłączasz o 17 i elo.
SM
@marian pazdzioch: Muisz odebrać bo jesteś na dyrzuże(normalnie masz to w umowie) a telefon daje ci firma. Co prawda płacą za to dodatkowo ale to nie warte tych pieniędzy...
LJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 godziny
  • Postów:5
0

Dziekia za odpowiedz. @MateInf raczej proste rzeczy (na pewno na poczatku). Chcialbym pobawic sie z programowaniem jezeli chodzi o automatyczne zawieranie transakcji. Np.zrobic takiego bota, co bedzie mi skanowal wszystkie krypto z market capem powyzej 100mln w ktorych nastapi pewien warunek (np. duza likwidacja na 4 godzinym interwale) Gdy bot zbierze takie krypto w czasie rzeczywistym, to wtedy beda kolejne wytyczne do zawarcia transakcji. Na poczatek bez zadnego serwera, tylko jak komp wlaczony 😄 Oczywiscie zanim takie cos mialoby miejsce - chcialbym sobie testowac strategie na historycznych danych. Czy do testowania strategii (win ratio, max drawdown, symulacja portfela) wystarczy sam python czy cos jeszcze?

edytowany 1x, ostatnio: ljuuuk
MI
  • Rejestracja:około 9 lat
  • Ostatnio:2 minuty
  • Postów:110
0
ljuuuk napisał(a):

Dziekia za odpowiedz. @MateInf raczej proste rzeczy (na pewno na poczatku). Chcialbym pobawic sie z programowaniem jezeli chodzi o automatyczne zawieranie transakcji. Np.zrobic takiego bota, co bedzie mi skanowal wszystkie krypto z market capem powyzej 100mln w ktorych nastapi pewien warunek (np. duza likwidacja na 4 godzinym interwale) Gdy bot zbierze takie krypto w czasie rzeczywistym, to wtedy beda kolejne wytyczne do zawarcia transakcji. Na poczatek bez zadnego serwera, tylko jak komp wlaczony 😄 Oczywiscie zanim takie cos mialoby miejsce - chcialbym sobie testowac strategie na historycznych danych. Czy do testowania strategii (win ratio, max drawdown, symulacja portfela) wystarczy sam python czy cos jeszcze?

Python to najmniejszy problem ale wraz z bibliotekami dostarcza odpowiednich narzędzi :P

Dobry pomysł, backtesty, dane historyczne różnej postaci... . Ogólnie jest sporo problemów do ogarnięcia które trzeba sensownie zaimplementować

  1. monitorowanie pozycji w orderbookach
  2. składanie zleceń z odpowiednim poziomem cenowym i wolumenem
  3. rebalansowanie portfela
  4. hedging

a wszystko powyższe zależy od konkretnej strategii. Oczywiście, jak pomysły będą oparte na kup i zapomnij to robi się prosto. Natomiast jakbyś chciał szukać arbitrażu albo być mini market makerem to się wszystko lawinono komplikuje ☺️

Powodzenia, trochę się w to bawię zawodowo i amatorsko - bardzo fajna dziedzina ale o ile ktoś nie chce się zakopać w tym technicznie i analitycznie to do realizacji pomysłów opartych o algoboty zazwyczaj nie dochodzi - no może poza "kup i zapomnij" :)

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 10 godzin
  • Postów:5107
0

e, pany, ale on nie chce robić konkurencji dla Jane Street, a po prostu sobie potradować programowo

@ljuuuk

Patrz, tu masz ładnie w CSV do pobrania cene Microsoftu kazdego dnia z ostatnich 10 lat

https://www.nasdaq.com/market-activity/stocks/msft/historical?page=1&rows_per_page=10&timeline=y10

Pobierz sobie te csvke i spróbuj chociaz na samych tych statycznych danych podziałać coś z tym pythonem czy czymś tam.

LJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 godziny
  • Postów:5
0

Raczej chodzi mi o proste transakcje w jedna strone - bazujace na danych kryteriach nizeli hedgowanie. Jakie biblioteki warto znac do backtestu i takiego zastosowania jezeli chodzi o pisanie bota?

@WeiXiao dokladnie haha 😄 po prostu chcialbym zaprogramowac pomysly jakie mam jezeli chodzi strategie, z mozliwoscia zobaczenia jaka jest skutecznosc. No a pozniej zautomatyzowania tego

edytowany 1x, ostatnio: ljuuuk
MI
  • Rejestracja:około 9 lat
  • Ostatnio:2 minuty
  • Postów:110
0
WeiXiao napisał(a):

e, pany, ale on nie chce robić konkurencji dla Jane Street, a po prostu sobie potradować programowo

@ljuuuk

Patrz, tu masz ładnie w CSV do pobrania cene Microsoftu kazdego dnia z ostatnich 10 lat

https://www.nasdaq.com/market-activity/stocks/msft/historical?page=1&rows_per_page=10&timeline=y10

Pobierz sobie te csvke i spróbuj chociaz na samych tych statycznych danych podziałać coś z tym pythonem czy czymś tam.

Jak już atakować takie problemy to z grubej rury 😎

@ljuuuk mogę poradzić, jak już chcemy to zacząć robić solidnie to utworzyć sobie orderbook giełdowy, wymodelować trochę jego dynamikę i poimplementować sobie strategie które strzelają do takiego orderbooka, potem można próbować przepiąć swojego bota na orderbook giełdy.

Jeśli chodzi o backtesty to w pythonie jest coś takiego jak backtrader, podobno używalne. Jak chcesz się skupiać tylko na kup/sprzedaj krypto to napisanie backtestu od ręki nie będzie skomplikowane. Natomiast koleja rzecz do polecenia - są całe platformy do robienia backtestów i researchu na danych giełdowych, subskrypcje rzędu kilkadziesiąt dolarów miesięcznie a odchodzi Ci ogrom ręcznego klepania a zostanie główna część czyli komunikacja z giełdą, a te są jak wyżej pisałem, często udostępniane przez platformy.

A no i oczywiście chatGPT zrobi większość za Ciebie :)

P5
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 18 godzin
  • Postów:951
0
MateInf napisał(a):

wykorzystuje się bufory kart sieciowych albo FPGA.

A co dokładnie się robi z buforami kart sieciowych bo aż mnie zaciekawiłeś.

MateInf napisał(a):

Natomiast jakbyś chciał szukać arbitrażu albo być mini market makerem to się wszystko lawinono komplikuje ☺️

Tak, na pewno OPa stać na colo w dc z giełdami i topowym radio linkiem miedzy nimi, no i do tego FPGA i ASIC bo inaczej żadnego arbitrażu nie zrobisz.

@ljuuuk Python jest fajny natomiast do analizy danych i to mogło by się przełożyć jakoś na konkretne umiejętności w twojej przyszłej pracy. Natomiast w firmach, które się trejdowaniem zajmują to python zwykle służy do tooli czy pocu dla strategi i ewentualnie do algo do grania na giełdach krypto bo te siedzą w chmurze więc overhead i tak już jest duży i tam się nikt na ns nie ściga. Także skoro skłaniasz się ku pythonowi i crypto to połączenie jak najbardziej dobre i jak masz jakieś skłonności by to zrobić w miarę low latency ("w miare" czyli nie tak jak bajkopisarze tutaj) to poszukaj w jakiej chmurze twoja giełda siedzi i w jakim regionie i puszczaj algo sobie z tej VMki. Oczywiście nie bedziesz tak szybki jak MM bo ci uruchamiają setki/tysiące vmek i testują z której mają najniższe opóźnienie do giełdy, ale dalej twój algorytm będzie widocznie szybszy niż puszczany z twojego laptopa z domu.


Sieciowiec, który przez pomyłkę założył konto na forum dla programistów ¯\_(ツ)_/¯
Zobacz pozostałe 11 komentarzy
MI
no masz, dobra :P A co z komunikatami w realnie stosowanych strategiach typu basket orders, VWAP/TWAP, multi-leg orders na opcjach czy ogóle zleceniach wieloinstrumentowych czyli większość giełdowych ? Oczywiście, że takie komunikaty są przekazywane na standardowy TX path i nie spałniają limitu CTPIO, 64 bajty (takie mamy karty) wystarczają do standardowych, prostych zleceń giełdowych kupna/sprzedaży pojedynczego natomiast do bardzo responsywnych strategii arbitrażowych to te proste i szybkie zlecenie idą CTPIO ale rozbudowanych komunikatów już tak nie wyślesz
P5
już myślałem że mam jakieś dziury w pamięci ale nie mam: Maximum CTPIO: frame 4092 bytes https://docs.amd.com/r/en-US/ug1586-onload-user/CTPIO jaki model ma 64?
PA
@MateInf: jakie firmy w PL operują na GPW?
MI
@pre55: karty które my mamy jeśli nadal mówimy o low-latency, w CTPIO i w trybie ct do maks wielkości ramek 64 bajtów transmitują dane.
P5
@MateInf: no zalinkowałem Ci dokumentacje do onloada, który chodzi na kartach x2, które są LL. Masz link do dokumentacji gdzie jest napisane o limicie 64b na frame?
Mbappe_koksik
  • Rejestracja:3 miesiące
  • Ostatnio:mniej niż minuta
  • Postów:69
0

Jak ktoś poważnie o tym myśli to używa się C++
Lub biblioteki QuickFixJ. Pythona się nie używa
w tradingu bo jest wolny.

P5
jak już chcesz sprawiać wrażenie że się na tym znasz to byś wiedział że tam gdzie chcesz być szybki FIXa się nie używa
MI
Python jest świetny, w ogóle skąd u ludzi to przeświadczenie, że trading ma być szybki. Trading powinien być kreatywny - są realnie zyskowne algorytmiczne strategie które robią requesty raz/dwa razy dziennie i nie potrzeba do tego kolokacji, c++ czy innych zabawek
lion137
@MateInf: Zalezy jaki trading
WeiXiao
@MateInf jak jesteś kocur, to wystarczą dwa trejdy na rok ;)
MI
@WeiXiao: no tak, to prawda :P
MI
@WeiXiao: aż przypomniało mi się powiedzonko "80% traderów rezygnuje tuż przed najlepszą okazją na zysk" :P
Mbappe_koksik
@pre55: widzę że Cię zabolało, że Ci gul skoczył. Radzę Ci się dokształcić bo się używa. Całe korporacje na tym stoją ale amatorsko także się używa
P5
@Mbappe_koksik: nic mnie nie boli tylko śmiesznie się czyta takie rzeczy. Tak FIXa się używa, ale jak chcesz być szybki to z giełdą gadasz w tym protokole który ustaliła i tak czasami to FIX a czasami to OUCH czy inny SBE. Wewnątrz firmy jak potem się mieli feedy to zwykle się używa proprietary SBE żeby wszystko mogło to konsumować bez bawienia się w konwersje tego w inne formaty.
Mbappe_koksik
@pre55: sam teraz napisałeś „Tak FIXa się używa, ale jak chcesz być szybki to z giełdą gadasz w tym protokole który ustaliła i tak czasami to FIX” więc nie rozumiem po co się do mnie sadziłeś wcześniej. W dodatku dodam że FIX jest standardem między narodowym (a te co podałeś pozostałe „znawco” to nie) i każdą poważna giełda go używa. Radzę Ci następnym razem zejść z tonu i nie pultać się bo nie wiesz z kim rozmawiasz i jak długo pracowałem w tradingu
P5
@Mbappe_koksik: czyli NASDAQ, NYSE, Eurex, Euronext, TSE itd. itd. to nie poważne giełdy bo może i są największe na świecie to każda z nich dla swojego native order i native feed flow nie używa FIXa właśnie ze względu na latency, a ty w tym poście wyraźnie zaznaczyłeś że jak ktoś myśli poważnie [o latency] to używa QuickFixJ co jest bzdurą. nie wiesz z kim rozmawiasz i jak długo pracowałem w tradingu patrząc po tym co piszesz to najwyżej siedziałeś w banku, który z LL ma mało wspólnego
LJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 godziny
  • Postów:5
0

@MateInf: Jest taka opcja uzywajac tego backtradera zebym po napisaniu mojej strategii i testowaniu na historycznych danych, widzial w jakim miejscu faktycznie bot otwieral longi albo shorty - i gdzie zamykal te pozycje? Chodzi mi o zwizualizowanie mojej strategii, a nie tylko liczby (win ratio, sharp ratio, max drawndown etc.) a raczej czy faktycznie bot kupuje/sprzedaje i zamyka pozycje w tych miejscach jakie mam w zalozeniu.

//

Jezeli chodzi o "szybkosc" na jakiej mi zalezy - to skanowanie kryptowalut z market capem powyzej 100 mln - co minute, moze dwie. Jezeli znajdzie jakies krypto ktore beda spelnialy moje warunki (zalozmy 20 krypto) > wtedy sprawdza kolejne warunki na nich co minute. To chyba nie jest jakies low-latency co ? :D Rozumiem, ze jakbym chcial dzialac na sekundowych interwalach to potrzeba juz czegos bardziej skomplikowanego. Mi raczej chodzi o to, zeby bot skanowal krypto co minute , ewentualnie otwieral zalozmy 5 pozycji w tym samym momencie na innych aktywach i zarzadzal ryzykiem - anizeli ciagle kupowanie i sprzedawanie.

edytowany 1x, ostatnio: ljuuuk
MI
  • Rejestracja:około 9 lat
  • Ostatnio:2 minuty
  • Postów:110
0

Przykładowy screen z backtradera, odkopałem bardzo stary kod i mniej więcej wygląda to tak, przykład jakiejś randomowej strategii. Musiałbyś się tym bardziej pobawić aby wyciągnąć więcej info ale wydaje się to być dosyć modyfikowalne co będzie widać w takiej analizie screenshot-20250321120207.png

LJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 godziny
  • Postów:5
0

Jezeli chodzi o wspomaganie sie AI w pisaniu takiego bota - jakie AI bedzie najlepsze do kodowania? ChatGPT czy moze jednak cos innego ?

MI
  • Rejestracja:około 9 lat
  • Ostatnio:2 minuty
  • Postów:110
0
ljuuuk napisał(a):

Jezeli chodzi o wspomaganie sie AI w pisaniu takiego bota - jakie AI bedzie najlepsze do kodowania? ChatGPT czy moze jednak cos innego ?

Potestuj różne :P

Również, całkiem rozsądnym pomysłem, zamiast klepać od razu swoje rozwiązania - jest ogarnięcie już jakiegoś istniejącego i poznanie je od podszewki. Polecam Hummingbot https://p.datadoghq.com/sb/a96a744f5-a15479d77992ccba0d23aecfd4c87a52?fromUser=false&refresh_mode=sliding&tpl_var_exchange%5B0%5D=%2A&tpl_var_instance_id%5B0%5D=%2A&tpl_var_version%5B0%5D=%2A&from_ts=1734784729521&to_ts=1742560729521&live=true

jest opensource, napisane w pythonie i ma fajną dokumentację. Napisane z myślą o algotradingu na crypto.

ŁW
  • Rejestracja:około rok
  • Ostatnio:około 4 godziny
  • Postów:11
0

Jeśli interesują Cię rzeczy do zastosowania na polskiej giełdzie to ja piszę dla siebie taką bibliotekę: https://github.com/alphatica/alis. Dorabiam GUI aby było wygodniej ale jeszcze nie jest gotowe. Trochę o algo tradingu piszę tutaj https://alphatica.com/pl/blog/. Jak chcesz pogadać to możesz mnie złapać na X: https://x.com/lukasz_wojtow

CP
  • Rejestracja:26 dni
  • Ostatnio:12 minut
  • Postów:22
0

Ta deepseek firma była od tradingu, ciekawe algorytmy miała, nie jakieś proste strategie na losowych sygnałach jak wielu trayderów, ale badała cały rynek i analizowała miliony danych, które wpływają na trendy i dopiero podejmowała decyzje.

Stąd mieli tez zasoby żeby takie modele AI robić.
Ciekawe jest jak statystycznie uzyskiwali informację, ale nikt ci takich szczegółów nie powie, bo nikt nie wie, a jak ktoś wie to i tak nie powie, bo już został wyśmiany wiele razy.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)