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.
Dobrý den,
při testování Signaltraderu jsem zjistil, že pokud dvě strategie vygenerují signál na stejný ticker (v mém případě DEEPDIP a MRZ na SWKS), provede se pouze první a druhý je vyřazen.
Podle kódu se zdá, že prioritu určuje pořadí strategií v souboru strategies.py.
Chtěl bych se zeptat, zda je to takto správně a zda mohu prioritu jednoduše změnit přesunutím strategie v tomto souboru. A je vhodnější ponechat omezení na jeden ticker napříč strategiemi, nebo lze bezpečně obchodovat stejný titul ve více strategiích současně? Případně proč má některá strategie prioritu?
Děkuji.
Hlavní chyba je Error 10197 „No market data during competing live session". Paper účet bere tržní data z vašeho živého účtu. Pravděpodobně jste současně přihlášen na živý účet a paper účet tak nemá data.
Co zkontrolovat:
1. Odhlaste všude živý účet (mobil, web, jiné TWS) a bota spusťte znovu (po této chybě je bot do konce dne v režimu close-only, takže je nutný restart).
2. Client Portal → Nastavení → Paper Trading Account: zapněte sdílení tržních dat s paper účtem. Změna se může projevit až druhý den.
3. Předplatné tržních dat na živém účtu: bot potřebuje kotace amerických akcií a opcí (OPRA), nejen kurz USD.CZK.
4. Rychlý test: v TWS na paper účtu si dejte do watchlistu USD.CZK a SPY. Když neukazují ceny, problém je na straně IB, ne v botovi.
Co je v pořádku:
- Error 200 pro CZKUSD je neškodný. Bot jen zkouší i opačný měnový pár; IB kotuje USD.CZK.
- Dvě spojení na portu 4002 s různými ID jsou správně. Bot otevírá dvě API spojení, obchodní a datové (trading_broker_client_id a data_broker_client_id). S chybou 10197 to nesouvisí.
Telegram – nejčastější příčiny:
- Botovi jste ještě nenapsali. V Telegramu otevřete chat se svým botem a pošlete /start; do té doby vám bot psát nemůže.
- TELEGRAM_CHAT_ID musí být vaše číselné ID (zjistíte ho přes @userinfobot).
- BOT_TOKEN musí být celý, ve tvaru 1234567890:AA…, a publish_to_telegram: True.
Podrobný návod je v DOKUMENTACE.md, oddíl 1.8. Chyba Telegramu obchodování nezastaví.
Zdravím všechny. Zkusil jsem rozběhnout boot ale narazil jsem hned v začátku.
Myslím že to bude jinde než co log hlásí. Dostanu info, že nelze zjistit konverzní kurz a na tom to zhavaruje:
2026-10-12 09:36:36,462 - INFO - ==== End of startup summary ====
2026-10-12 09:36:46,682 - ERROR - Error 10197, reqId 4: No market data during competing live session, contract: Forex('USDCZK', conId=34838409, exchange='IDEALPRO', localSymbol='USD.CZK', tradingClass='USD.CZK')
2026-10-12 09:36:46,784 - ERROR - Error 200, reqId 5: No security definition has been found for the request, contract: Forex('CZKUSD', exchange='IDEALPRO')
2026-10-12 09:36:46,784 - CRITICAL - account-read prime failed (startup): cannot fetch FX rate for CZK - close-only + halt.
2026-10-12 09:36:46,784 - CRITICAL - CLOSE-ONLY MODE for the rest of the day: account-read prime failed (startup): cannot fetch FX rate for CZK. Entries are disabled; closing, /stop and alerts keep running.
Podke cisla chyby co jsem hledal to však vypadá jak vícenásobné přihlášení k paper účtu, což nevím jak by bylo možné, jsem zalogovaný jen na jednom pc.
Zkusil jsem TWS, IB gateway tam se mi založí dva connecty, každý s jiným id na portu 4002.
A pak taky Telegram, ale to bude moje neznalost, nikdy jsem ho nepoužíval a napíše chybu odeslání, api key a chat id mam dobre, ale to asi na to casem přijdu.
Tušíte někdo možnou chybu?
Dobrý den, děkuji za podrobný test. Já ještě nemám k dispozici tak kvalitní historická data, takže jsem si takto detailní srovnání nedělal. Bral jsem to jen z logického hlediska, a viděl jsem rozdíly v jednotlivých signálech. Je tedy příjemné překvapení, že mají dividendy tak malý vliv - souhlasím s Vámi, že se to dá prakticky zanedbat. Na rozdíl od splitů (i když jsem snad někde četl, že po splitech populárních akcií bývá příliv nakupujícího retailu, takže možná i tam by "mean reversion" fungovala 😄️)
Aktualizovaná výkonnost strategií dashboardu k 11.10.2026:
V trzích se toho z pohledu našich systematických strategií děje v říjnu dost málo. Sám jsem zatím za říjen v lehké ztrátě.
Celkově se můj účet poslední měsíce pohybuje do strany:
Equity intradenního breakoutu z mého IBKR účtu:
Máte pravdu, že jstem to testoval s trochu nižším profit targetem. Ale toto charakter výsledků neovlivní. A určitě je to tak, že profit targety škodí těm nevíce ziskovým dnům, kterých je málo. Takže jako vždy je to něco za něco.
Otestováno a tady jsou výsledky.
Jak byl test postaven, aby to co nejvíce odpovídalo realitě: exekuce probíhají na neadjustované ceně. Tj. cena pro obchod je stejná, jako bychom obchodovali daný den v minulosti. Pokud akcii držíme a přijde dividenda, toto se nám započítává do zisku (u krátkodobé strategie toto není zas tak podstatné).
Indikátory jsou počítány na adjustovaných (splity a dividendy) cenách. Adjustace je vždy do bodu v minulosti před vstupem. Tj. opět věrná simulace toho, co bychom viděli, kdybychom obchodovali v daném bodě v minulosti. V našem případě tak adjustuji ZScore, ATR, MA. Současně jsem vyloučil ze vstupu úsečky, kdy "včera" byla v trzích připisována dividenda.
Test je dělán bez reinvestování kapitálu, aby bylo možné výsledky porovnávat.
Podrobné srovnání: MRZ_dividendy_srovnani.xlsx
Pokud pracujeme s adjustovanými cenami, výsledky jsou nepatrně lepší, ale opravdu jen velmi nepatrně:
Roční průměrné zhodnocení se zvedne z 8,66% na 8,86% (ale také se zvedne drawdwon z -14,44% na -14,96%). Zisk přišel hlavně díky tomu, že bylo trochu více obchodů.
Reálně tak nemá v backtestu (období 2003 - 10.10.2026) adjustování na výsledky vliv.
Můj závěr: zohledňování dividend do analyzovaných dat dává smysl a vidím to také jako korektnější variantu. Je to ale podstatně náročnější proces, který zpomaluje výpočet a snižuje reprodukovatelnost výsledků pro obchodníky, kteří ještě nemají tak velké zkušenosti aby podobné testy udělali. Osobně obchoduji MRZ tak, jak je počítána v dashboardu a přikláním se k tomu, to tak nechat.
Zkoušel jste dělat backtest? Vyšlo vám to nějak jinak? V přiloženém Excelu jsem udělal i statistiku, které tickery byly kvůli dividendám vyřazeny (a které pak obchodovány nově).
Takhle já nikdy netvrdil, že tento způsob přinese vyšší výnos. Mně jde hlavně o vyhlazení křivky. A příznivý vliv na psychiku.
Z vašeho backtestu jde vidět, že se vlastně jedná o jeden den, který udělal hlavní výnos. Za 3,5 roku to byl jeden den, který může přijít a nemusí.
Navíc mi přijde váš výsledný backtest nějak zvláštní. Už od pohledu ten osudný den odpovídá u mého přístupu ani ne poloviny dosaženého výnosu vašeho přístupu, což z mých dosavadních live výsledků teda vůbec neodpovídá.
Pro příklad. Když vezmu poslední den, kdy přišel výrazný pohyb. Otevírám pozici s 2000 USD pouze na QQQ. Bot mi otevřel 8 kontraktů za cenu okolo 2,44. Abych dosáhl zaplacení prémia s polovinou kontraktů nastavuji PT okolo 8.
Za tu cenu se mi pak půlka prodala a následnou polovinu jsem nechal EOD. Ta se tuším prodala něco lehce přes 10,50.
Moje průměrná cena byla okolo 9,25. Z toho mi matematicky vyplývá, že v tyto silné dny se budu pohybovat mezi 70-80 % zisku systému, který nezavírá polovinu pozice ale nechá je všechny do konce. Z toho tedy usuzuji, že to nebude méně jak polovina.
T.
Pokud budete pro intradenní breakout používat ETF tak kapitálová náročnost je vysoká - stačí vynásobit počet pozic s cenou ETF. A pak záleží na marginové politice brokera/Darwinex Zero. Toto byl prakticky důvod, proč u nich obchoduji breakout na futures.
Jinak s tím akciovým účtem sám žádnou zkušenost nemám.
Ano souhlasím, že toto není dokonalé. Jde o zjednodušení, které vycházelo z toho, jak jsem byl schopen sám akcie testovat. Protože vstupy chci testovat na "as traded cenách", ale určitě je lepší pro jiné účely používat total return.
Pokusím se v nejbližších dnech MRZ přebacktestovat tak, aby byly dividendy reflektovány lépe.
Tady je backtest vašeho trade managementu. Je to na SPY opcích. Nejbližší OTM s tím, že strike opce musí být alespoň 0.5 dolaru od breakoutu. Budget na otevření opce je 1000 dolarů, abych se jich nakoupilo více a bylo možné "půlit".
Modrá linka - vše výstup EOD. Zelená linka: půlka se zavírá na profit targetu v okamžiku, kdy se pokryje celé prémium:
Verze s profit targetem má sice nepatrně hladší průběh, ale podstatně horší poměr výnos/risk. Mě to dává smysl, protože zejména u opcí ten risk pochází jen z několika málo obchodů, kdy se trhy skutečně rozjely. A tyto obchody varianta s profit targetem osekne.
Ano OTM varianta má vyšší zhodnocení a vyšší drawdown. Je to hlavně proto, že opce jsou levnější a více se jich vejde do budgetu, který je pro otevírání potřeba. Plus mají trochu vyšší konvexitu.
Ten váš risk management - tj. uzavírání poloviny opcí v momentě kdy to pokryje zaplacené prémium se mi matematicky moc nezdá. Zkusím to otestovat, abychom měli jasná čísla.
Takže ve zkratce. OTM varianta bude mít vyšší zhodnocení, ale vyšší drawdown. Což tak většinou bývá. Já pořád obchoduji s pravidlem, že se snažím zavírat polovinu pokud mi zisk zaplatí opce a ten den již nemůžu skončit ve ztrátě.
To by mohlo pomoci vyhladit zase o něco více equity křivku.
T.
Zdravím,
verzi 10.50 testuji a prozatím jsem na zásadní problém nenarazil. Aby fungovalo správně automatizované spouštění je třeba zároveň aktualizovat aplikaci IBC na verzi 3.24.2.
B.
Zdravím vás,
podrobnejšie som sa pozrel na obchodovanie cez Darwinex Zero, účet Cash US Stocks & ETFs, a rád by som sa poradil ohľadom jeho využitia pre stratégie z Finančníka.
Stratégie ktoré som si vybral by pracovali s akciami z Russell 1000, Nasdaq-100 a S&P 500.
Narazil som však na obmedzenú dostupnosť akcií. V dokumentácii Darwinex uvádza približne 800 akcií, ale pri kontrole ponuky mi vyšlo 670 jednotlivých akcií. Podpora mi potvrdila, že 800 je orientačný údaj a rozhodujúci je aktuálny zoznam akcií ktoré majú na stránke.
Pri porovnaní mi vyšlo toto pokrytie:
Akciové univerzum
Dostupné akcie
Chýbajúce aktívne akcie
Pokrytie
Russell 1000 – proxy IWB
628
394
61,45 %
Nasdaq-100
76
24
76,00 %
S&P 500
420
83
83,50 %
Je mi jasné, že výsledky pôvodných backtestov na celom univerze nemožno automaticky preniesť na takto zúžený zoznam. Pred nasadením by preto bolo potrebné stratégie nanovo otestovať na dostupných akciách.
Chcel by som sa opýtať, či podľa vašich skúseností má zmysel existujúce stratégie týmto spôsobom prispôsobiť a testovať, alebo môže byť rozsah chýbajúcich titulov natoľko zásadný že sa to neoplatí.
S tým súvisí aj používanie dashboardu, ktorý vychádza z celého univerza. Tým pádom by bolo pri obchodovaní upravených stratégií potrebné generovať signály samostatne čo mi tiež príde ako veľká prekážka.
Ešte mám samostatnú otázku k analyzátoru a breakout stratégii. Pri kombinácii troch stratégií na akciách a breakoutu long aj short som každej nastavil váhu 20 %, teda spolu 100 %. Breakout však v analyzátore vykazoval veľmi vysoké využitie kapitálu.
Zodpovedá tento údaj reálnej kapitálovej náročnosti breakout stratégie obchodovanej cez ETF, alebo ide o spôsob výpočtu či obmedzenie analyzátora? Ako ho mám správne interpretovať vzhľadom na nastavené váhy a ako to vyzerá pri reálnom obchodovaní?
Ďakujem prajem pekný večer.
Timotej
Dobrý den, Petře,
zdá se mi, že signály MRZ v dashboardu nezohledňují dividendy - resp. jsou tam vstupy zřejmě vyvolané tím, že akcie poklesne cca o výši dividendy v den ex-div; také mohou chybět vstupy kvůli tomu, že SMA v trendovém filtru není upraveno o dividendy.
To asi není úplně správně? Já tedy signály generuji z total return dat, protože mechanický ex-div drop bych nepovažoval za signál pro vstup do mean reversion trade, a stejně tak uptrend mi dává smysl vyhodnocovat na total return...?
Zdravím, ja používam na vps TWS verziu 10.45 stable aby mi to išlo aj s IBC. Zatiaľ som nič važne nespozoroval a všetko ide ako má. Tie kroky s aktualizáciou automatizovaného prostredia si myslím že budú minimálne.
Prajem pekný deň.
Timotej
Netestoval jsem to a popravdě ani nevím, jak to nasimulovat. Je to jen myšlenka, co jsem vypozoroval za poslední cca 2 měsíce.
Každopádně rozumím tomu, že přidávat toto do funkčního řešení je náročné.
M.
Otestoval jsem intradenní breakout na opcích GBTC.
Nově testuji možnost výběru opce - ITM (tak jak obchodujeme nyní) a OTM. Navíc bude v botu možnost přidat filtr pro minimální vzdálenost strike od opce.
Dnes obchodujeme verzi ITM1 se vzdáleností 0 - tj. první ITM od strike. Zde je backtest dalších variant na GBTC při risku 500 usd/obchod (započítán poplatek 0,7usd/opci):
ITM1 se vzdáleností alespoň 1 USD strike od breakout úrovně indikuje zhodnocení 24% ročně při drawdownu -7,5%. Dnes by tedy autotrader obchodoval modrou linku bez žádného filtru vzdálenosti - občas je ITM hodně blízko strike, jinde dále.
Takto pak vypadá backtest OTM varianty na GBTC:
OTM1 s min vzdáleností 1 usd má roční zhodnocení 45% při drawdownu -28,7%.
Backtest je proveden na sdílených pravidlech breakoutu.
Server od roku 2003 vydává
Centrum finančního vzdělávání, s.r.o. info@financnik.cz
Upozornění: Všechny informace poskytované na Financnik.cz jsou určeny výhradně ke studijním účelům témat týkajících se obchodování na burze a neslouží v žádném případě coby konkrétní investiční či obchodní doporučení. Provozovatel serveru ani jednotliví autoři nejsou registrovanými brokery či investičním poradcem ani makléřem. Jsou-li na stránkách zmiňovány konkrétní finanční produkty, komodity, akcie, forex či opce, vždy a pouze za účelem studia obchodování na burze. Vydavatel serveru není zodpovědný za konkrétní rozhodnutí jednotlivých uživatelů. Burzovní obchodování a investování s finančními instrumenty (a komoditami obzvláště) je vysoce rizikové. Rozhodnutí obchodovat komodity a akcie je odpovědností každého jednotlivce a jedině on sám nese za svá rozhodnutí plnou odpovědnost. Nikdy se nepouštějte do obchodů, jejichž podstatě plně nerozumíte. Pamatujte, že burza má svá pravidla, kterým je třeba porozumět, než začnu riskovat své vlastní peníze!