Jump to content
Co nového? Mé kurzy
Komunita:
Všude
Diskuze Sledované příspěvky Žebříčky
  1. Otevřená sekce

    1. 44
      44 příspěvků
  2. Uzavřené diskuze pro absolventy kurzů Finančníka

    1. TechLab

      Pracovní skupina poskytovaná tradery pro tradery. Naleznete v ní odpovědi na své technické otázky týkající se programů Amibroker, Python, InteractiveBrokers TWS a TradeStation Global.

      8,1k
      8,1k příspěvků
      • 4fx
    2. Trading Room

      Diskuzní skupina v rámci Trading Roomu.

      2k
      2k příspěvků
      • petr
    3. 422
      422 příspěvků
      • petr
    4. Základy práce s programem Amibroker

      Uzavřená diskuze pro účastníky online kurzu Základy práce s programem Amibroker.

      189
      189 příspěvků
      • petr
    5. FIMS A–Z: Profesionální daytrading orderflow

      Diskuze o intradenním obchodování v rámci informací prezentovaných v kurzu FIMS A–Z: Profesionální daytrading orderflow.

      29,3k
      29,3k příspěvků
      • Jack
  3. Archiv původních anonymních diskuzích

    1. 201,1k
      201,1k příspěvků
  • Statistiky uživatelů

    31 453
    Celkem uživatelů
    467
    Nejvíce online
    Drak23
    Nejnovější uživatel
    Drak23
    Registrace
  • Všechny poslední příspěvky

    • Do dashboardu jsme přidali referenční backtest intradenní breakout strategie Jde o backtest strategie vyvinuté a sdílené v Trading Room: https://www.financnik.cz/clanky/zakulisni-orientace/intradenni-breakout/ Ke strategii jsou nyní v Trading Room dostupné nástroje pro různý autotrading (včetně microfutures Interactive Brokers) tak věřím, že referenční backtest řada z vás ocení. Backtest pracuje s ETF, protože s futures dashboard zatím pracovat neumí. Výsledky s microfutures budou velmi podobné, ovšem pochopitelně s tím rozdílem, že microfutures obchodují s pákou a lze tak ignorovat vysoké nároky na kapitál, které jsou při obchodování ETF. Backtest pracuje s následujícími parametry: Obchodované trhy: S&P 500, Nasdaq 100 a Bitcoin Počet obchodů za den: max. 3. Obchodujeme vždy jen první průraz. Risk na obchod: 200 USD Počáteční kapitál v backtest: 20 000 USD. Maximální denní ztráta je tak 600 USD, tj. 3 % účtu Perioda denního ATR: 5 Násobek ATR5 pro výpočet úrovně breakoutu: 0,3 Násobek ATR5 pro výpočet úrovně stop-lossu: 0,4 Komise započítány dle IB Backtest je kontinuální. Každý den by se měl aktualizovat o nové obchody. Je rozdělen na ID breakout long a ID breakout short: V praxi z řada z vás (včetně mě) obchoduje trochu jiná nastavení systémů a další trhy. V dashboardu nelze pokrýt všechny kombinace. Ovšem pro start se systémem se uvedená konfigurace jeví i pro menší kapitál jako přijatelná. Pro spojení long a short strany použijte v dashboardu Analyzator. Strategie obchoduje daný den buď short nebo long, je tak možné long i short verzi přiřadit 100% kapitálu (a risk je pak 3% denně max): Ve výsledcích jsou pak vidět celkové statistiky, equity long a short + benchmark: OOS strategie je od cca března 2024, kdy jsme ji zde vyvinuli. Na denních procentuálních změnách portfolia je vidět, že max. 3% ztráta je velmi výjimečná: V případě tohoto systému lze ignorovat využití kapitálu, protože backtest vychází z využití ETF, v praxi bude systém většina z nás obchodovat skrz microfutures. Jeden z hlavních důvodů integrace referenčního backtestu je možnost testování kombinace s dalšími strategiemi. Vyzkoušet můžete například kombinaci typu: Připomínám, že ve výsledném analyzátoru lze klikat na názvy systémů a skrývat příslušné equity křivky. Porovnání portfolio vs benchmark pak vypadá: Přitom denní volatilita portfolia je velmi přijatelná. Samozřejmě jde jen o testy, realita je vždy horší, nicméně rámcově výsledky sedí i s tím, co vnímám ve svém živém obchodování. Doporučuji tak s nastavením experimentovat.
    • Přikládám kód pro Tradestation. Při programování jsem vycházel z této studie Swiss Finance Institute. Pokud si studii přečtete, měli byste se v kódu orientovat, je do něj zapracovaná kapitola 3 (základ) a 4.4 (Volatility Multiplier).  Noise Area je počítaná tak, že jak kód prochází dny od počátku, načítá průběžně data do pole. Obchodovat může až v okamžiku, kdy pole naplní. Nechtěl jsem to zbytečně komplikovat, proto jsem tento moment nastavil jako 1,3 násobek délky (look_back), ze které se Noise Area počítá. Je to proto, že se můžou vyskytnout dny, které končí dříve. Např. načítám hodnoty pro úsečku 14:00, ale daný den burza zavře dříve a hodnota pro tuto úsečku je 0. Což by Noise Area rozhodilo na několik dalších dnů.  Vykreslení Noise Area a VWAP do grafu probíhá tak, že se vykreslují trendline mezi jednotlivými svíčkami. TS umožňuje vykreslit jen určitý počet trendline, proto se musí nastavit dny, které chcete vykreslit. Nastavuje se úplně na konci kódu a defaultně je to nastaveno tak, aby se vykreslilo posledních 80 dnů. Můžete ale nastavit i konkrétní den nebo od - do. Position sizing jsem vyřešil tak, že se nastaví výchozí počet kontraktů které chci obchodovat (default_shares_qt), nastavím cílovou volatilitu (vol_target), maximální páku (max_paka) a na počátku každého dne vypočtu anualizovanou volatilitu (AnnVol). Pokud AnnVol = vol_target, odpovídá počet kontraktů default_shares_qt. Při snižující se volatilitě počet kontraktů roste (max. na hodnotu default_shares_qt * max_paka) a při zvyšující naopak klesá (min. 1). Cílovou volatilitu jsem určil podle histogramu volatility, kdy jsem vzal prostě tu nejčastější. V kódu je příkaz "print(AnnVol)", který do Print Logu vypíše anualizovanou volatilitu pro každý den. Označil jsem, zkopíroval, vložil do excelu, hodil na to histogram a odečetl nejčastější výskyt. Pro každý trh je jiný, pro MES jsem nastavil na 0.08. Nastavení kódu - pokud nechcete vyloženě upravovat kód, tak pro jeho nastavení stačí měnit hodnoty v částech "NASTAVENÍ", "Array" a "Vykreslení Noise area a VWAP do grafu", kde se nastavují dny, pro které se má vykreslit Noise Area a VWAP. V NASTAVENÍ lze separátně nastavit, na close jakého timeframe se má vstupovat a vystupovat (5 / 10 / 15 / 30) a taky lze omezit max počet obchodů long, short i celkově. Nastavení grafu pro backtest musí obsahovat dvě datové řady Nastavení první řady Nasatvení druhé datové řady Výsledná Equity na MES za posledních 5 let (bez provizí a skluzů) potom vypadá takto Mít to včera nasazené, tak bych se pěkně napakoval, včerejší obchod na MNQ byl ještě brutálnější než na MES 🤦‍♂️. Budu rád za jekékoli připomínky. Doufám, že ten koncept nastavení position sizingu, včetně určování cílové volatility, je v pořádku. Kód vypadá jak vypadá, protože je prostě od neprogramátora.     IMSFI Financnik 10.4.2025.txt
    • Dobrý den, to vypadá jako by jste mezitím nainstaloval nějakou novou knihovnu Functions. Generátor pak místo importu pomocných skriptů z podsložky functions načítá stejnojmennou knihovnu. B.
    • Zdravím. Při spuštění generatoru mi to vyhazuje chybu viz níže. Ještě v úterý osmého bylo vše v pořádku. Pak jsem při nastavování musel udělat špatný krok a nevím kde.  Jaromír C:\X_signaltrader>generator.py Traceback (most recent call last):   File "C:\X_signaltrader\generator.py", line 39, in <module>     from functions.logger import Systemlog   File "C:\Python\Python_3_12_9\Lib\site-packages\functions.py", line 68     nodes = tuple(map(lambda (k, v): process_node(inner, k, v),                              ^^^^^^ SyntaxError: Lambda expression parameters cannot be parenthesized
    • Uvažujete správně. Potřebujete software + data. S tím, že tato kombinace může mít řadu podob a může být bezplatná i placená. Záleží jakou kvalitu a komfort práce potřebujete. Jednodušší situace je u dat. Hodně obchodníků začíná s bezplatnými daty z yahoo. Ty jsou relativně ok, ale nejsou zde delistované akcie a historické konstituenty. Data se dají poměrně snadno zdarma stahovat, občas jsou v nich nějaké nepřesnosti, ale pro pomalejší strategie jsou ok. Kdo to myslí s tradingem vážně, měl by podle mě sáhnout pro Norgate Datech. Pro delistované akcie a historické konstituenty je nutné Platinum předplatné. Při roční platbě vychází US akcie na 52,5 dolarů a je to skutečně super služba. Pro akcie reálně podle mě není lepší řešení. Software existuje neomezeně. Pokud budete využívat Norgate Data, vybíral bych takový nástroj, který s těmito daty nativně pracuje. Viz https://norgatedata.com/accessibility.php. Osobně dnes asi nejvíce využívám Python + Norgate data, ovšem to rozhodně vyžaduje určitou znalost Pythonu. Ambiroker + Norgate data je určitě snazší řešení a za pár dnů budete mít otestované první systémy. Ale i pokud sáhnete po některém z dalších software, tak dosáhnete cíle - sám kombinuji nakonec různé software pro různé úkoly. Někde je snazší naskriptovat jednoduchou strategii, jinde se lépe pracuje s portfolii atd.. S Norgate daty umí pracovat i Excel skrz XLQ2 - https://norgatedata.com/accessibility.php#xlq2
    • Dekuji za rychlou odpoved. Jak uz jsem zde na foru nekolikrat cetli, hlavni je zacit obchodovat a zkusenosti postupne prijdou. A to bych take chtel udelat. A jestli to spravne chapu, at uz se rozhodnu pro jakoukoliv s pomalejsich strategii (vhodne pro zacatek) je treba ji otestovat na historickych datech. K tomu tedy jsou potreba adekvatni nastroje (jako treba Excel, Python nebo Amibroker) a zakoupit si adekvatni data (minimalne na dobu backtestu). Spravne? Me uvahy se vztahuji na ty jednodussi strategie, ktere mame ve cvicnem portfoliu a s kterymi lze zacit jako  NDX SMO nebo MONDAY BUYER. Historicka data bude tedy  treba k backtestovani zakoupit tak jako tak? At uz budou pouzita ruznymi nastroji. Take se testuje delsi obdobi do historie a jak jsem se dival, ne kazda firma nabizi data tak daleko dozadu. Kdyz uvazuji jak dal po prakticke casti, nektere souvislosti me nenapadly a potrebuji si je potvrdit jestli to spravne chapu. Kazdopadne dekuji za odpovedi. Ales
    • Je potřeba použít zdroj dat, které obsahuje konstituenty a delistované akcie. Jeden z nejdostupnějších, které také používám jsou Norgate data - https://norgatedata.com/.  Ad vliv na výsledky. Hodně záleží na typu strategie. Pokud budete testovat strategie obchodující momentum s delší dobou držení - například typu NDX SMO, tak to bude mít poměrně vysoký dopad. Jde o to, že index sám o sobě je defacto momentum strategie. V dnešním indexu, například Nasdaq 100, jsou společnosti, kterým se v minulém období dařilo (pokud ne, tak se do indexu nedostaly, nebo z něj vypadly). Pokud byste tak historicky nakoupil jakoukoliv akcii, která je dnes v indexu a držel, tak byste pravděpodobně vydělával. Potíž je ale s v tom, že před lety vypadal index úplně jinak a nikdo nevěděl, jak bude index vypadat dnes. Proto bychom při testování měli respektovat historické složení indexu ke dni otevírání obchodu.
    • Dobry den. V některých článcích zde na internetu zmiňujete důležitost historického složení indexu - Tedy backtestovat pro dané období ty firmy, které v té době v indexu byly.  Zmínka třeba tady: https://www.financnik.cz/clanky/praxe/vytvoreni-momemtum-portfolio-systemu-obchodujiciho-akcie-r1774/ Pokud chci zkusit backestovat třeba právě rotační strategii na nasdaqu nebo jiném indexu. Jak bych se mohl nejlépe dostat k složení indexu v historii? Napadla by mě otázka, jestli to má velký vliv na výsledky. A když o tom přemýšlím, řekl bych, že čím dál do historii se testuje, tím větší vliv to bude mít. Dva roky zpět asi nebudou tak velké změny jako testovat deset let zpátky. Diky předem. Ales
    • Nějak nechápu proč. Ale asi to bude souviset s restartem kapitálu na paper účtu. Zkusím restartovat data a uvidím jak zítra.
    • Nestahují se vám z TWS pro daný symbol vůbec žádná data - proto to hází tu chybu (tu samotnou chybouvou hlášku to bude chtít určitě lépe ošetřit).
    • Zdravím, tak jsem si dnes říkal, že už mám vše odladěné a začne mi skript běžet a pro změnu se mi objevila chyba viz. níže. Něco asi timezone. Pro jistotu jsem použil původní nastavení, které je zde. Ale stejný problém. Díky za pomoc. T.  
    • Připojení už jsem vyřešil. Je to v settings " Allow connections from localhost only. Příkazy by mohly být jak radíte, zkusím......děkuji.
    • V TWS bych čekal že to bude otázka nějakého tohoto nastavení. To máte stejné?
    • Dobrá otázka. Na kterou ale není snadná odpověď. Hrozně záleží co a jak obchodujete, jaké máte zkušenosti. Pokud máte menší zkušenosti a obchodujete s přiměřenými váhami malý kapitál, tak bych nic neměnil. Některé strategie (Monday Buyer, MR3000L atd) pravděpodobně budou mít drawdown, ale to v tradingu není nic, co bychom nečekali. To že si drawdowdem projdete, vás pak posílí do dalších let a ukáže vám, jaký typ strategií je vám příjemnější atd.  Pokud cítíte, že máte váhy přepálené, tak bych pravděpodobně stáhnul váhy long mean reversion - minimálně do doby, než se v trzích uklidní volatilita a věci si trochu sednou. Ale upřímně vnímám, že diskréční zásahy do portfolií u méně zkušených obchodníků mohou vytvořit více škody než užitku. Můžete trochu ušetřit, ale můžete současně zanést do hlavy nechtěné vzorce toho, že zasahovat do systémů je normální. A to v budoucnu spíše povede ke ztrátám. Osobně mám váhy pro long mean reversion stažené, ale z toho důvodu, že kapitál se mi automaticky začal alokovat do short swing breakout systémů, které jsem vyvinul po covidu. Ty zde zatím nesdílím, protože například minulý rok tyto systémy prakticky jen prodělávaly a už sem s nimi pomalu přestával mít trpělivost. Tak uvidíme, jak zafungují nyní. Nicméně právě to, že jsem je do portfolia nasadil bylo výsledkem zkušenosti s MR3000L v covidu, kdy jsem žádné váhy neměnil (a taky situaci nakonec přežil ok).
    • Hm, děkuji. Nemá někdo stejný problém s potvrzováním jak připojení, tak odeslání příkazů?
    • Zdravím Petře, budete nějak upravovat své obchodování vzhledem k tomu, co se nyní děje na trzích? Nebo obchodování necháváte běžet pořád stejně?  Nevím, jak k obchodování v této situaci přistupovat, jelikož jsem to nezažil. Mají se strategie dále obchodovat tak, jak jsme si je na základě testu nastavili, nebo by zde měli nastat nějaké úpravy? např. úprava jednotlivých vah strategie. Děkuji
    • Ad otevírací cena - praxe ukazuje, že je lepší skript spouštět například v 15:31:15. Mám pocit, že TWS bývá v první minutě nějak přehlcená a ne vždy vrátí to, na co se jí ptáme. Spouštím po těch 15:31 a zcela bez problémů. Ad ta potvrzení - určitě je to nějaká otázka toho, jak si můžete nastavit TWS. Já spouštím zcela automaticky a nic potvrzovat nemusím.
    • Dobrý den, u mně verze 0.0.62 funguje dobře, ale musím používat vlastní výpočet benchmarku. portfolio.index = pd.to_datetime(portfolio.index) portfolio = portfolio.sort_index() benchmark_price = yf.download('^GSPC', start=portfolio.index.min(), end=portfolio.index.max())['Close'] benchmark_returns = benchmark_price.pct_change().dropna() benchmark_returns = benchmark_returns.reindex(portfolio.index).fillna(0) pak u řádku reportu nahradím benchmark uvedený titulem na obsah načtený z proměnné benchmark_returns. qs.reports.metrics(portfolio["Total_chg"], benchmark=benchmark_returns) B.
    • Zdravím, mám nějaké menší problémy: 1) 15:31 se mi nenačte otevírací cena, tím pádem se ukončí script. Někdy se mi podaří 15:32 - 15:35.Potom Ok. 2) U simu se mi příkazy vyplní bez potvrzení, ale u live musím odeslat "Transmit". ( asi je potřeba někde zrušit v TWS. 3) Musím potvrzovat propojení "connect" a to dvakrát. Chtěl bych spouštět dávkou a nevím jak na to.
    • Diky za reakci I ja k tomu nakonec pristoupim stejne.  Tzn. kazdy report je samostatny a dividendy jsou za me jeden report (od noveho uctu) pro oba ucty Hezky vikend
×
×
  • Vytvořit...