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.
Mean reversion strategie se vyplatí doplňovat časovým stop-lossem. Funguje to tak, že vstoupím proti tržnímu momentu a čekám na výstupní signál - například skrz profit target tak, jak to má Deep Dip. Takto vyčkávám několik dnů (u deep dip konkrétně 5) a pokud výstup na profit targetu nepřijde, ukončuji pátý den pozici na konci dne. V Dashboardu mi to indikuje tato ikonka:
V takový momentum zadávám výstup na konci dne (používám Market on Close - MOC příkaz, který je možné zadat kdykoliv před ukončením obchodní seance).
Čas by měl být za obchodní seanci. Tedy já používám 9:30 - 16:00. Je potřeba si ověřit jak která platforma označuje intradenní úsečky. Některé udávají čas začátku úsečky, jiné konce (proto třeba v TradeStation pracujeme s 9:31 - protože zde to znamená úsečku 9:30 - 9:31).
Jinak kromě času do děláme ve skriptech přesně jak píšete. Ve statistikách mých živých obchodů z Interactive Brokers (tedy to co sdílím například zde: https://www.financnik.cz/forum/topic/5062-aktualni-trhy/page/17/#findComment-322417 ) obchoduji MBT, MES, MNQ, M2K + zlato + dow jones.
Těch obchodů není zas tolik. V roce 2025 jsem měl denně následující počty:
Plus tedy je třeba brát v potaz, že obchoduji long i short průraz v jednom trhu každý den. Tj. teoreticky mohu mít za den 12 vstupů.
Jestli to správně chápu, postup je:
1. Vzít 1-minutové úsečky od 9:31 do 15:57 (America/New_York time) z každého dne
2. Převést je na denní úsečky
3. Na takto spočítaných denních úsečkách vyhodnotit kontextový filtr (overnight gap > včerejší range & gap je nahoru)
4. Pokud kontext vyhovuje, spočítat na našich denních úsečkách ATR a z něho si spočítat vstupní ceny pro daný den
Je toto správný postup? Ptám se i proto, že mi velmi málo často projde kontextový filtr (počítám pro MBT, MES, MNQ, M2K), takže mám hodně málo obchodů ve srovnání s equity křivkami, které sdílíte, Petře. Vrtá mi tedy hlavou, jestli nedělám někde chybu. Nebo je to tím, že mi tam chybí zlato a ropa, kde bylo poslední dobou signálů víc?
Nehledejte v tom žádné velké obtížnosti, ale současně je třeba pozornost věnovat detailům.
Futures a akcie mají například jinou délku seance. Abyste se dostal ke stejným číslům ATR jako v autotraderu je třeba:
1) vzít si Excel a vypsat si tam poslední x dnů (podle délky ATR) - open, high, low, close z intradenní seance podle rozsahu, který máme v autotraderu v konfigu. Tedy trading_start_time a trading_end_time. Nelze jednoduše použít EOD ceny, protože na nich se budou občas hodnoty lišit. A i drobné rozdíly povedou k rozdílným ATR.
2) nad vytvořenými cenami v Excelu udělat výpočet ATR a ceny by se měly shodovat s tím v autotraderu.
Jinak i když použijete ATR hodnoty z denních dat, tak by strategie měla fungovat. Jen budou výsledky trochu jiné, než jak je počítáme v autotraderu. Strategie funguje prakticky na všech rozsazích ATR, tedy pokud budete vstupovat na násobku 0.5*12.1 nebo 0.5*10.5 by nemělo způsobit rozdíl mezi funkčností a nefunkčností přístupu.
Zdravím,
já jsem upravoval pouze strategies.py a settings.py, tak jsem je smazal a použil ty ve staženém souboru. Pořád ale stejná chyba. Pak jsem stáhl celý skript znovu a nedělal jsem vůbec žádné úpravy a objevuje se chyba viz. screen. Asi tam budu mít ještě nějaký jiný problém ...
Napadá mě, nemá se skript spouštět s určitými knihovnami? Jestli třeba nemám špatné verze. Pak můžu nastavit virtuální prostředí.
T.
děkuju za info, trochu jsem se v tom ztratil. Nejprve jsem zkoumal rozdílnost ve výpočtu ATR u trhu futures MBT, kde mi získané ceny odpovídaly a rozdíl byl jen v ATR. Potom když jsem si vyzkoušel SPY, tak tam bylo obojí rozdílné (cena i ATR) a už jsem se v tom zamotal. Myslel jsem, že strategii si budu moct z části otestovat mechanicky pouze s použitím hodnot na grafu, ale to bych pak nejspíš dostal jiné výsledky, než které bych dostal s výpočty, které se používají ve skriptu.
S nástroji pro testování ještě nemám žádné zkušenosti, ale koukám, že je potřeba se začít vzdělávat i v tom
Dobrý den,
odkaz je přístupný pouze předplatitelům služby TechLab Automatizace, nebo účastníkům kteréhokoliv z Workshopů základů automatizace. Pokud patříte do některé z uvedených skupin, pak prosím napište na email kurzy@financnik.cz a ověříme kde nastala chyba.
B.
Zdravím.
Chtěl jsem si stáhnout novou verzi, ale odkaz v rozcestníku mě odkáže na Aktualizovaná verze autotraderu, kde Odkaz ke stažení nefunguje.
Jaromír
Kromě nekompletních parametrů u opcm a opcs tam na zásadní problém nevidím. Zkuste ještě spustit skript s výchozím konfiguračním souborem ze staženého archivu, abychom zjistili jestli hledat dál v nastavení nebo jinde.
B.
Kontrolu otevřených pozic dělám tak, že si kliknu nahoře na ikonku Account a následně procházím všechny pozice, které mají nenulový počet pozic v záložce Portfolio. To jsou ty, které máte na účtu otevřené. Na tomto demo účtu mám otevřeno např. 11 shares v akcii CL:
Pozor na to, že ta záložka Portfolio je scrolovatelná v případě, že pozic máte otevřeno více. Případně lze kliknout v záhlaví záložky např. na Position a podle toho pozice seřadit.
Děkuji za všechny odpovědi. Vytvořil jsem si záložky a seskupil tickery podle strategií. Ale asi jsem některé příkazy zadal chybně, takže mám otevřeno v TWS více pozic. Jak snadno poznám, jaké mám otevřené pozice? Je to v záložce Account, kde mám Position 0? Nebo jde ještě jinde v TWS otevřít přehledný seznam otevřených pozic? Díky, Roman
děkuji za reakci!
aktuálně otevírám Trade History pomocí ovládání myši, ale právě nedořešil jsem , jak zajistit aktivaci TWS live, pak paper ....
klávesová zkratka je možná dokonce elegantnější, ale opět je potřeba aktivace okna ..
Nadějně vypadala druhá možnost, zbavit se potřeby aktivovat okna TWS ale okno Trade History je nějaké zakleté. Nový layout vytvořím, naskládám tam kde která okna ( při jejich pohybu svítí zelený rámeček posunovaného okna), ale Trade History hrdě odolává a nenechá se do layaoutu přiřadit! a chová se jako samostatné okno.
Nevadí. Chystám se aktualizovat TWS, tak možná to půjde v nové instalaci...
Viz první příspěvek v tomto vláknu - u akcií se nedají přímo porovnávat close ceny vypočtené z intradenních cen (to co děláme a máme natestováno - tedy bereme jako denní close poslední close intradenní úsečky) s denním close cenami vzniklými uzavírací aukcí.
Dobrý den, Petře,
objevil jsem ještě jeden rozdíl, týkající se hodnot pro výpočet pro kontrakt typu STOCK.
Pokud si pustím autotrader pro opce, trh SPY, tak hodnoty které autotrader stahuje jsou jiné, než hodnoty které jsou vidět u IBKR. Dnes 10.3.2025 jsem při spuštění skriptu dostal tento výpis:
Zpracovávám trh: SPY
[INFO] 2025-03-10 09:34:36-0400 - Aktuální expirace pro trh SPY: 20250310
[INFO] 2025-03-10 09:34:40-0400 - Vypočítané hodnoty trhu: ATRD1: 13.4, CloseD1: 575.86, OpenD1: 570.86, HighD1: 577.39, HighD2: 580.16, LowD1: 565.63, LowD2: 570.12
[INFO] 2025-03-10 09:34:40-0400 - Stahuji intradenní data pro výpočet otevírací ceny
[INFO] 2025-03-10 09:34:40-0400 - Otevírací cena pro trh SPY je 567.58
při pohledu na graf pro den 7.3.2025, vidím tyto hodnoty:
Open: 570.90
High: 577.39
Low: 565.63
Close: 575.92
a Open dnešního dne 10.3. je 567.59
Pokud si skript upravím a pustím pro Futures kontrakty, tak se mi hodnoty OHLC stáhnou v pořádku. Když jsem zkusil upravit skript pro získání hodnot kontraktu STOCK takto:
# Stažení historických dat (1 měsíc zpět, denní data)
bars = ib.reqHistoricalData(
contract,
endDateTime='',
durationStr='1 M', # 1 měsíc zpět
barSizeSetting='1 day', # Denní data
whatToShow='TRADES', # Typ dat: obchodní transakce
useRTH=True, # Použít pouze data během regulovaných obchodních hodin
formatDate=1 # Formát dat: yyyymmdd
)
hodnoty pro trh SPY mi odpovídají tomu, co vidím v grafu:
Datum: 2025-03-07 | Open: 570.9 | High: 577.39 | Low: 565.63 | Close: 575.92 | Volume: 52103309.0
Datum: 2025-03-10 | Open: 567.59 | High: 569.54 | Low: 566.36 | Close: 567.24 | Volume: 4994071.0
Ale pokud bych uvedený skript pustil pro Futures kontrakt, tak hodnoty budou zase rozdílné....
Vypadá to na rozdíl stahování dat furures a stock kontraktů. Docela to dělá nepořádek v tom, že nevím, jak bych měl s daty pracovat a co je víc relevantní. Jestli to co vidím v grafu TWS u IBKR, nebo to co vypočítá a z čeho vychází skript.
Zdravím,
tak se snažím rozchodit skript a mám tam asi někde nějaký překlep. Hází mi to chybu viz. níže. Zkoušel jsem prvně rozběhnout skript sgtrader, který odkazoval na chybějící csv soubory ve složce data ... tak jsem zkusil spustit generaror, ale asi tam mám někde chybu v syntaxi.
Díky za radu. T.
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!